今回は,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となりあまり相関は強くないということが言えます.