始める無料で始める

MAモデルを適用する

株価がビッドとアスクの間で行き来することで、1期先の自己相関が負になり、ラグ1より大きいラグでは自己相関がなくなります。これはMA(1)モデルのACFパターンと同じです。そこで、前の演習で扱った日中株価データにMA(1)モデルを当てはめてみます。

最初のステップは、intraday にある価格から1分ごとのリターンを計算し、自己相関関数をプロットすることです。ACFはMA(1)過程のそれに似ているはずです。続いて、シミュレーションデータで行ったのと同じ方法で、データにMA(1)をフィットさせます。

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

Pythonで学ぶ時系列解析

コースを見る

演習の手順

  • statsmodels から plot_acfARIMA モジュールをインポートします
  • 価格から1分ごとのリターンを計算します:
    • .pct_change() メソッドでリターンを計算します
    • pandas の .dropna() メソッドで、NaN になる最初の行を落とします
  • ラグ60分までのACFをプロットします
  • リターンデータにMA(1)モデルをフィットし、MA(1)のパラメータを出力します

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import plot_acf and ARIMA modules from statsmodels
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.tsa.arima.model import ARIMA

# Compute returns from prices and drop the NaN
returns = intraday.___
returns = returns.___

# Plot ACF of returns with lags up to 60 minutes
plot_acf(___, ___)
plt.show()

# Fit the data to an MA(1) model
mod = ARIMA(___, order=(0,0,1))
res = mod.fit()
print(res.params[1])
コードを編集して実行