始める無料で始める

ランダムウォークモデルを推定する

与えられた時系列 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_wnintercept の値を 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

コードを編集して実行