Python

【Python】相関係数の求め方

 

 今回は,Pythonを用いたピアソンの積率相関係数の求め方を紹介します.

ピアソンの積率相関係数とは,最も良く使われる相関係数で以後本記事でも相関係数と呼ぶこととします.

相関係数とは

凄くざっくり相関係数について説明します.

相関係数とは,+1 に近ければ近いほど「強い正の相関がある」、−1 に近ければ近いほど「強い負の相関がある」、0に近ければ近いほど「ほとんど相関がない」と評価される統計量です。

上の図のように,+1に近ければ近いほど右上がりの直線状にデータがプロットされていきます.

逆に-1に近いほど真ん中の図のように右下がりの直線状にプロットされます.

》徹底解説!相関係数

SciPyを使って相関係数を求める

Pythonでは,SciPyライブラリを用いることで簡単に相関行列を求めることができます.相関行列は以下の行列です.

ここで,\(\rho_{xy}\)が変数xと変数yの相関係数を示しています.

では,実際のコードをcity.csvといった独自のデータセットを使って紹介します.

# ライブラリのインポート
import pandas as pd
import scipy as sp

# データの読み込み
city_info = pd.read_csv("city.csv")
print(city_info)
  Class  Population  Area
A  town          10     50
B  town          15     40
C  city            30     80
D  city            20    100
E  city            50     70
F  town          10     10

# データの取り出し
x = city_info["Population"]
y = city_info["Area"]

# 相関行列を求める
print(sp.corrcoef(x, y))
[[1.         0.49859163]
 [0.49859163 1.        ]]

このように,corrcoef関数を用いることで相関行列を求めることができます.

上記の結果から,PopulationとAreaの相関係数は0.499となりあまり相関は強くないということが言えます.