【python】Pandasで相関係数を求める方法

Python

各データ間の関係性を定量的に判断するために相関係数を用いることがあるかと思います。

pythonのPandasを使えば、データフレームのカラム間の相関係数を1行で求めることができるのでご紹介します。

【世界で5万人が受講】実践 Python データサイエンス・オンライン講座

そもそも相関係数って?

相関係数は、2変数間の直線的関係の強さを示す統計量で-1から1の値をとります。

  • 相関係数の絶対値が1に近いほど、相関が強い
  • 0に近いほど相関が弱い

統計学の勉強するときに下記を参考にしていました。

26-3. 相関係数 | 統計学の時間 | 統計WEB
統計学の「26-3. 相関係数」についてのページです。統計WEBの「統計学の時間」では、統計学の基礎から応用までを丁寧に解説しています。大学で学ぶ統計学の基礎レベルである統計検定2級の範囲をほぼ全てカバーする内容となっています。

【ゼロからおさらい】統計学の基礎講座

使用するエネルギーデータ

今回は、こちらのデータを使用します。

使用データ

Pandasで相関係数をさっくり作る

SampleCode

# ライブラリのimport
import pandas as pd

#csvファイルの読み込み
df = pd.read_csv('./sample.csv',encoding='shift-jis',index_col=[0],parse_dates=[0])

# データフレームを1日毎のデータにリサンプリングする
df_d = df.resample('d').mean()

# 相関係数を算出する
df_d.corr()
  • Outputは下記になります。
  • 同じデータ同士では、相関係数は1になります。
  • このデータだと、ガス量と熱源の温度は相関関係が強そうです。(相関係数>0.8のため)

コード解説

  • pandasをインポート
# ライブラリのimport
import pandas as pd
  • csvファイルを読み込んで、データフレームに格納する
#csvファイルの読み込み
df = pd.read_csv('./sample.csv',encoding='shift-jis',index_col=[0],parse_dates=[0])
  • データフレームを日毎にリサンプリングし、平均値をとる
# データフレームを1日毎のデータにリサンプリングする
df_d = df.resample('d').mean()
  • 相関係数を算出する
df_d.corr()

データフレームを作れば、最後の1行だけで、相関係数を出力できます。簡単ですね。

これを応用すれば、相関係数でヒートマップも簡単に作ることができます。ぜひ試してみてください。

【世界で5万人が受講】実践 Python データサイエンス・オンライン講座

コメント

タイトルとURLをコピーしました