ランダムウォークモデルを推定する
与えられた時系列 y に対して、ドリフト付きランダムウォークモデルを当てはめるには、まずデータを一階差分し、その差分データに対して arima() コマンドで order = c(0, 0, 0) を指定してホワイトノイズ(WN)モデルを推定します。
arima() コマンドは当てはめたモデルに関する情報(出力)を表示します。Coefficients: の見出しの下に、推定されたドリフト変数(intercept という名前)が表示されます。その直下に、そのおおよその標準誤差(s.e.)が示されます。モデルの WN 部分の分散も、sigma^2 のラベルで推定値が示されます。
この演習はコースの一部です
Rで学ぶ時系列分析
演習の手順
- 時系列
random_walkはすでに読み込まれており、右の図に表示されています。diff()を使ってデータの一階差分を作成し、rw_diffに保存します。 ts.plot()を使って差分データをプロットします。arima()を使って差分データに対して WN モデルを推定します。x引数にrw_diffを、order引数にc(0, 0, 0)を指定します。モデルはmodel_wnに保存します。model_wnのinterceptの値をint_wnに保存します。この値はmodel_wn$coefで取得できます。ts.plot()を使って元のrandom_walkのプロットを再現します。- 推定した時間トレンドを、
abline()関数で右のプロットに追加します。第2引数にint_wnを指定できます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Difference your random_walk data
rw_diff <-
# Plot rw_diff
# Now fit the WN model to the differenced data
model_wn <-
# Store the value of the estimated time trend (intercept)
int_wn <-
# Plot the original random_walk data
# Use abline(0, ...) to add time trend to the figure