MAモデルの推定と予測

Rで学ぶ時系列分析

David S. Matteson

Associate Professor at Cornell University

  • 米国の1か月インフレ率(パーセント、年率換算)
  • 1950年から1990年までの月次観測データ
data(Mishkin, package = "Ecdat")
inflation <- as.ts(Mishkin[, 1])

inflation_changes <- diff(inflation)
ts.plot(inflation) ; ts.plot(inflation_changes)

Rで学ぶ時系列分析

MAプロセス:インフレ率の変化 - II

  • Inflation_changes:米国の1か月インフレ率の変化
  • 系列とサンプルACFをプロットします:
ts.plot(inflation_changes)
acf(inflation_changes, lag.max = 24)

Rで学ぶ時系列分析

$Today = Mean + Noise + Slope * (Yesterday's Noise)$ $$Y_t = \mu + \epsilon_t + \theta\epsilon_{t-1}$$ $$\epsilon_t ~ WhiteNoise(0, \sigma_{\epsilon}^2)$$

MA_inflation_changes <- arima(inflation_changes, 
                              order = c(0, 0, 1))

print(MA_inflation_changes)
Coefficients:
         ma1  intercept
      -0.7932    0.0010
s.e.   0.0355    0.0281
sigma^2 estimated as 8.882

ma1 = $\hat{\theta}$, intercept = $\hat{\mu}$, sigma^2 = $\hat{\sigma^2_{\epsilon}}$

Rで学ぶ時系列分析

MAプロセス:適合値 - I

  • MAの適合値:

$$\hat{Y_t} = \hat{\mu} +\hat{\theta}\hat{\epsilon_{t-1}}$$

  • 残差 =

$$\hat{\epsilon_t} = Y_t - \hat{Y_t}$$

Rで学ぶ時系列分析
ts.plot(inflation_changes)
MA_inflation_changes_fitted <- 
    inflation_changes - residuals(MA_inflation_changes)

points(MA_inflation_changes_fitted, type = "l", col = "red", lty = 2)

Rで学ぶ時系列分析

予測

  • 1ステップ先予測:
predict(MA_inflation_changes)$pred
Jan
1991 4.831632
predict(MA_inflation_changes)$se
Jan
1991 2.980203
Rで学ぶ時系列分析

予測(続き)

  • hステップ先予測:
    predict(MA_inflation_changes, n.ahead = 6)$pred
    
           Jan       Feb       Mar       Apr       May       Jun
1991  4.831632  0.001049  0.001049  0.001049  0.001049  0.001049
predict(MA_inflation_changes, n.ahead = 6)$se
           Jan       Feb       Mar       Apr       May       Jun
1991  2.980203  3.803826  3.803826  3.803826  3.803826  3.803826
Rで学ぶ時系列分析

練習しましょう!

Rで学ぶ時系列分析

Preparing Video For Download...