始める無料で始める

相関

機械学習モデルを構築する前に相関を確認しておくと、どの特徴量がターゲットと強く相関しているかを把握できます。よく使われるピアソンの相関係数は、線形の関係のみを検出します。データが正規分布に従っていることが前提とされており、ヒストグラムで大まかに確認できます。強い相関を持つ変数のピアソン相関係数は 1(正の相関)または -1(負の相関)に近くなります。0 に近い値は、2 つの変数の間に線形相関がないことを示します。

過去の価格変化と将来の価格変化に同じ期間を使うことで、株価が平均回帰型(上下に振れる)なのか、トレンド追随型(直近で上昇していればさらに上昇する)なのかを確認できます。

この演習はコースの一部です

Python による金融のための Machine Learning

コースを見る

演習の手順

lng_df DataFrame の Adj_Close を使って、以下の操作を行いましょう。

  • pandas の .shift(-5) を使って、5 日後の将来株価(5d_future_close)を作成します。
  • 5d_future_closeAdj_Close に対して pct_change(5) を適用し、将来の 5 日間の価格変化率(5d_close_future_pct)と現在の 5 日間の価格変化率(5d_close_pct)を作成します。
  • lng_df に対して .corr() を使い、2 つの 5 日間価格変化率の列の相関を確認します。
  • plt.scatter() を使って、5d_close_pct5d_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()
コードを編集して実行