見出し画像

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