相関
機械学習モデルを構築する前に相関を確認しておくと、どの特徴量がターゲットと強く相関しているかを把握できます。よく使われるピアソンの相関係数は、線形の関係のみを検出します。データが正規分布に従っていることが前提とされており、ヒストグラムで大まかに確認できます。強い相関を持つ変数のピアソン相関係数は 1(正の相関)または -1(負の相関)に近くなります。0 に近い値は、2 つの変数の間に線形相関がないことを示します。
過去の価格変化と将来の価格変化に同じ期間を使うことで、株価が平均回帰型(上下に振れる)なのか、トレンド追随型(直近で上昇していればさらに上昇する)なのかを確認できます。
この演習はコースの一部です
Python による金融のための Machine Learning
演習の手順
lng_df DataFrame の Adj_Close を使って、以下の操作を行いましょう。
- pandas の
.shift(-5)を使って、5 日後の将来株価(5d_future_close)を作成します。 5d_future_closeとAdj_Closeに対してpct_change(5)を適用し、将来の 5 日間の価格変化率(5d_close_future_pct)と現在の 5 日間の価格変化率(5d_close_pct)を作成します。lng_dfに対して.corr()を使い、2 つの 5 日間価格変化率の列の相関を確認します。plt.scatter()を使って、5d_close_pctと5d_close_future_pctの散布図を作成します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create 5-day % changes of Adj_Close for the current day, and 5 days in the future
lng_df['5d_future_close'] = lng_df['Adj_Close'].shift(____)
lng_df['5d_close_future_pct'] = lng_df['5d_future_close'].pct_change(5)
lng_df['5d_close_pct'] = lng_df['Adj_Close'].pct_change(____)
# Calculate the correlation matrix between the 5d close pecentage changes (current and future)
corr = lng_df[['5d_close_pct', '5d_close_future_pct']].____
print(corr)
# Scatter the current 5-day percent change vs the future 5-day percent change
plt.scatter(lng_df['5d_close_pct'], lng_df[____])
plt.show()