Pythonで相関行列・偏相関行列(1)
(1)相関行列を計算する
統計解析の第1歩が続いていますが、まだ第1歩です。今回は相関行列の計算と図の作成をしたいと思います。次回は偏相関行列です。
(2)使うデータ
いつもどおりirisデータです。
(3)相関行列を計算する。
相関行列今回のコードはこちらです。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('iris.csv')
#相関行列の計算
x = df.corr(method='pearson').round(2)
#ヒートマップを作成。
import seaborn as sns
sns.heatmap(x, #データの指定
vmin=-1.0, #最小値の指定
vmax=1.0, #最大値の指定
center=0, #中央の値の指定
annot=True, # True:格子の中に値を表示
xticklabels=x.columns.values, #x軸の名前を指定
yticklabels=x.columns.values #y軸の名前を指定
)
plt.show()
出来上がりの図はこちらです。
以下、解説です。
■5行目
x = df.corr(method='pearson').round(2)
相関行列の計算はこれだけです。Pandasの標準機能です。相関係数は、ピアソン、ケンドール、スピアマンから選べます。今回はピアソンを選択しています。最後のround(2)は、小数点以下3桁で四捨五入しています。
■7~17行目
import seaborn as sns
sns.heatmap(x, #データの指定
vmin=-1.0, #最小値の指定
vmax=1.0, #最大値の指定
center=0, #中央の値の指定
annot=True, # True:格子の中に値を表示
xticklabels=x.columns.values, #x軸の名前を指定
yticklabels=x.columns.values #y軸の名前を指定
)
plt.show()
計算した相関行列を図にします。今回はseabornを用いています。これまで使っていたmatplotlibでももちろん作成できますが、seabornが楽です。
(4)まとめ
相関行列はデータ分析を始める際にまず見る項目ですので、1行で計算できるのはありがたいです。次回は偏相関行列です。
(5)参考
Pandasの相関行列についてはここです。
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html?highlight=corr