Posted at

相関行列


相関行列

「新国民生活指標データ」を例に説明します。

# 数値計算やデータフレーム操作に関するライブラリをインポートする

import numpy as np
import pandas as pd
from pandas.tools import plotting # 高度なプロットを行うツールのインポート

# 「#」(シャープ)以降の文字はプログラムに影響しません。

# 図やグラフを図示するためのライブラリをインポートする。
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
%matplotlib inline

# URL によるリソースへのアクセスを提供するライブラリをインポートする。

# import urllib # Python 2 の場合
import urllib.request # Python 3 の場合

url = 'https://raw.githubusercontent.com/maskot1977/ipython_notebook/master/toydata/PLIlive_dataJ.txt'

# 指定したURLからリソースをダウンロードし、名前をつける。
# urllib.urlretrieve(url, 'PLIlive_dataJ.txt') # Python 2 の場合
urllib.request.urlretrieve(url, 'PLIlive_dataJ.txt') # Python 3 の場合

# データの読み込み

df = pd.read_csv('PLIlive_dataJ.txt', sep='\t', index_col=0)

df

df.T

# 相関行列

df.corr()

corrcoef = df.corr()

fig = plt.figure(figsize=(12, 10))
plt.imshow(corrcoef, interpolation='nearest', cmap=plt.cm.coolwarm)
plt.colorbar()
tick_marks = np.arange(len(corrcoef))
plt.xticks(tick_marks, corrcoef.index, rotation=90)
plt.yticks(tick_marks, corrcoef.index)
plt.tight_layout()

# 相関行列

df.T.corr()

corrcoef = df.T.corr()

plt.figure(figsize=(12, 10))
plt.imshow(corrcoef, interpolation='nearest', cmap=plt.cm.coolwarm)
plt.colorbar()
tick_marks = np.arange(len(corrcoef))
plt.xticks(tick_marks, corrcoef.columns, rotation=90)
plt.yticks(tick_marks, corrcoef.columns)
plt.tight_layout()