Estymacja i prognozowanie modelu MA

Analiza szeregów czasowych w R

David S. Matteson

Associate Professor at Cornell University

  • Miesięczna stopa inflacji w USA (w procentach, w ujęciu rocznym)
  • Obserwacje miesięczne od 1950 do 1990 r.
data(Mishkin, package = "Ecdat")
inflation <- as.ts(Mishkin[, 1])

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

Analiza szeregów czasowych w R

Procesy MA: zmiany stopy inflacji – II

  • Inflation_changes: zmiany miesięcznej stopy inflacji w USA
  • Wykres szeregu i próbkowa ACF:
ts.plot(inflation_changes)
acf(inflation_changes, lag.max = 24)

Analiza szeregów czasowych w 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}}$

Analiza szeregów czasowych w R

Procesy MA: dopasowane wartości – I

  • Dopasowane wartości MA:

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

  • Reszty =

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

Analiza szeregów czasowych w 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)

Analiza szeregów czasowych w R

Prognozowanie

  • Prognozy 1-krokowe:
predict(MA_inflation_changes)$pred
Jan
1991 4.831632
predict(MA_inflation_changes)$se
Jan
1991 2.980203
Analiza szeregów czasowych w R

Prognozowanie (cd.)

  • Prognozy h-krokowe:
    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
Analiza szeregów czasowych w R

Czas na praktykę!

Analiza szeregów czasowych w R

Preparing Video For Download...