統計・確率のお勉強

統計学を中心に色々勉強するブログ

収益率の相関を見る

相関係数

二つの銘柄X, Yの収益率データを \{x_1,\ldots, x_T \}, \{y_1,\ldots, y_T\} とする。この時相関係数

$$
corr(X,Y) = \frac{ \sum_{t=1}^T (x_t - \bar{x})(y_t - \bar{y}) }{\sqrt{\sum_{t=1}^T (x_t - \bar{x})^2} \sqrt{\sum_{t=1}^T (y_t - \bar{y})^2} }
$$

で定義される。今回は散布図行列をプロットして見ることにする。
今回は

の3銘柄で試してみた。

%matplotlib inline
import matplotlib.pyplot as plt
import quandl
import pandas as pd
import seaborn as sns
import numpy as np
from scipy.stats import norm

# データの取得

df_quick = quandl.get('TSE/4318')  # Quick
df_hitachi = quandl.get('TSE/6501') # 日立製作所
df_takeda = quandl.get('TSE/4502')  #武田薬品工業

# 対数差収益率に変換
Quick_RoR = np.diff(np.log(df_quick.loc["2013-07-16":, ['Close']]), axis=0)*100
Hitachi_RoR = np.diff(np.log(df_hitachi.loc["2013-07-16":, ['Close']]), axis=0)*100
Takeda_RoR = np.diff(np.log(df_takeda.loc["2013-07-16":, ['Close']]), axis=0)*100
Nikkei_RoR = np.diff(np.log(df_Nikkei.loc["2013-07-16":, ['Close Price']]), axis=0)*100

# データフレームに収益率をまとめる
df = pd.DataFrame(np.concatenate((Quick_RoR, Hitachi_RoR, Takeda_RoR), axis=1), columns=['QUICK', 'HITACHI', 'TAKEDA'])

# seaboard で散布図行列を出力
sns.pairplot(df, kind='reg',size=8)

得られた結果が以下

f:id:doratai:20180207003104p:plain

これを見る限り、武田薬品と日立の相関が比較的強いように見える。実際に相関を計算すると

df.corr()
QUICK HITACHI TAKEDA
QUICK 1.000000 0.324614 0.307317
HITACHI 0.324614 1.000000 0.511227
TAKEDA 0.307317 0.511227 1.000000

となる。日立と武田薬品は約0.5と相関があり、日立とQUICKと比べて大きい事がわかる。



少し短いけどここまでにします。