library(astsa)
y <- log(AirPassengers)
plot(y)
model1 <- sarima(y,
p = 0, d = 1, q = 1,
P = 1, D = 1, Q = 0,
12)
## initial value -3.076314
## iter 2 value -3.274045
## iter 3 value -3.281041
## iter 4 value -3.281670
## iter 5 value -3.281680
## iter 5 value -3.281680
## iter 5 value -3.281680
## final value -3.281680
## converged
## initial value -3.262921
## iter 2 value -3.263947
## iter 3 value -3.263997
## iter 4 value -3.263997
## iter 4 value -3.263997
## iter 4 value -3.263997
## final value -3.263997
## converged
model2 <- sarima(y,
p = 0, d = 1, q = 1,
P = 0, D = 1, Q = 1,
12)
## initial value -3.086228
## iter 2 value -3.267980
## iter 3 value -3.279950
## iter 4 value -3.285996
## iter 5 value -3.289332
## iter 6 value -3.289665
## iter 7 value -3.289672
## iter 8 value -3.289676
## iter 8 value -3.289676
## iter 8 value -3.289676
## final value -3.289676
## converged
## initial value -3.286464
## iter 2 value -3.286855
## iter 3 value -3.286872
## iter 4 value -3.286874
## iter 4 value -3.286874
## iter 4 value -3.286874
## final value -3.286874
## converged
Klasické ARMA modely:
set.seed(123)
# x_t = 0.7 x_{t-1} + u_t + 0.8 u_{t-1}
# (1 - 0.7 L)x_t = (1 + 0.8 L)u_t
x <- arima.sim(model = list(ar = 0.7, ma = 0.8), n = 1000)
m <- sarima(x, 1, 0, 1, details = FALSE)
m$fit$coef
## ar1 ma1 xmean
## 0.67321585 0.79735653 0.09837353
Sezónne AR modely:
# (1 - 0.8 L)*(1 - 0.7 L^4)x_t = u_t
# (1 - 0.8 L - 0.7 L^2 + 0.56 L^5)x_t = u_t
# x_t = 0.8 x_{t-1} + 0.7 x_{t-4} - 0.56 x_{t-5} + u_t
x <- arima.sim(model = list(ar = c(0.8, 0, 0, 0.7, -0.56)), n = 1000)
m <- sarima(x, 1, 0, 0, 1, 0, 0, 4, details = FALSE)
m$fit$coef
## ar1 sar1 xmean
## 0.7796146 0.7087060 0.3265276
Cvičenie 1. Sezónne MA modely:
# x_t = (1 - 0.8 L)*(1 - 0.7 L^4)u_t
x <- arima.sim(...)
sarima(...)
Cvičenie 2. Zapíšte modely z prednášky.
library(seasonal)
# exp {seasonal}
# Monthly exports and imports of China (July 1983 to December 2013).
plot(exp) # export
xTrain <- window(log(exp), start=c(2000,1), end = c(2012,12))
xTest <- window(log(exp), start=c(2013,1))
Nájdite SARIMA model pre dáta xTrain
, zapíšte odhadnutý
model a ukážte, že je stacionárny a invertovateľný. Spravte predikcie
pre nasledujúci rok. Porovnajte so skutočnými hodnotami
xTest.
Uvažujme dva modely odhadnuté na prednáške. Porovnajte: