1 Inštalácia knižníc v R-ku

Začneme s inštaláciou knižníc potrebných na toto cvičenie. Spustením nasledovného príkazu sa nainštalujú tie z knižníc, ktoré nainštalované nie sú, a zároveň sa aj načítajú.

# názvy balíkov, ktoré budú potrebné pre cvičenie 5
packages <- c("astsa", "urca", "datasets", "ggplot2", "seasonal","fpp3")

# inštalácia balíkov, ak nie sú nainštalované
installed_packages <- packages %in% rownames(installed.packages())
if (any(installed_packages == FALSE)) {
  install.packages(packages[!installed_packages],dependencies=TRUE)
}

# načítanie balíkov
invisible(lapply(packages, library, character.only = TRUE))

2 Zápis modelov v R-ku

Uvažujme najprv klasický ARMA(1,1) proces, napríklad \((1 - 0.7 L)x_t = (1 + 0.8 L)u_t\), ktorý možno prepísať na \(x_t = 0.7 x_{t-1} + u_t + 0.8 u_{t-1}\).

V R-ku vieme takýto proces simulovať pomocou funkcie arima.sim ako

set.seed(123)
x <- arima.sim(model = list(ar = 0.7, ma = 0.8), n = 1000)

Pre simulovaný proces x vieme potom spätne odhadnúť ARMA koeficienty.

m <- sarima(x, 1, 0, 1, details = FALSE)
m$fit$coef
##        ar1        ma1      xmean 
## 0.67321585 0.79735653 0.09837353

Zopakujte uvedený postup pre sezónne procesy.

Cvičenie 1: Sezónny AR proces \((1 - 0.8 L)(1 + 0.9 L^4) x_t = u_t\).

x <- arima.sim(...)
m <- sarima(...)
m$fit$coef

Cvičenie 2: Sezónny MA proces \(x_t = (1 - 0.8 L)(1 + 0.9 L^4) u_t\)

x <- arima.sim(...)
m <- sarima(...)
m$fit$coef

3 Modelovanie sezónnych časových radov

Hlavnou náplňou tohto cvičenia je modelovanie sezónnych časových radov. Na začiatok si zopakujeme postup z prednášky na dátach AirPassengers a dokončime hľadanie SARIMA modelu pre druhé dáta z prednášky, dáta chicken. Následne budeme hľadať SARIMA model pre rôzne reálne dáta.

3.1 Dáta z prednášky

3.1.1 AirPassengers

Zopakujeme postup hľadania SARIMA modelu pre dáta AirPassengers o počtoch cestujúcich aerolínkami.

plot(AirPassengers)

Z prednášky vieme, že treba pracovať s logaritmami dát, ktoré treba diferencovať dvakrát - raz sezónne a raz normálne. Po prvom sezónnom diferencovaní sa ďalej pozeráme na medziročné zmeny. Dvakrát diferencované logaritmy následne uložme do premennej y a vykreslíme.

x <- log(AirPassengers)
y <- diff(diff(x, lag = 12))
plot(y)
abline(h=0, col="red")
abline(h=mean(y), col="blue")

Overíme, že v dátach y už nie je jednotkový koreň a preto dáta ďalej diferencovať netreba.

summary(ur.df(y, type="none", lags = 12, selectlags = "BIC" ))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression none 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.130088 -0.026418 -0.000534  0.022915  0.124528 
## 
## Coefficients:
##            Estimate Std. Error t value Pr(>|t|)    
## z.lag.1    -1.36043    0.15459  -8.800 1.52e-14 ***
## z.diff.lag -0.01173    0.09256  -0.127    0.899    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.04295 on 116 degrees of freedom
## Multiple R-squared:  0.6916, Adjusted R-squared:  0.6863 
## F-statistic: 130.1 on 2 and 116 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: -8.8001 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau1 -2.58 -1.95 -1.62

Hodnota testovej štatistiky je výrazne menšia ako kritická hodnota testu. Dáta nemajú jednotkový koreň a preto ich ďalej nediferencujeme.

Zobrazme ACF a PACF.

acf2(y)

Pozrime sa najprv na hodnoty ACF a PACF pre celé roky. Z ACF vidíme výrazne nenulovú hodnotu pre lag 12. Pre lagy 24, 36, 48, sú autokorelácie takmer nulové. PACF je rovnako výrazne nenulová pre lag 12. Pre nasledujúce lagy síce sú hodnoty PACF vnútri intervalu spoľahlivosti, ale klesajú pomalšie ako pri ACF. To nás motivuje skúsiť pri modelovaní použiť jeden sezónny MA člen.

Aby sme zachytili autokorelácie a parciálne autokorelácie na začiatku, musíme do modelu pridať klasické členy. Priebeh však nie je jednoznačný - zdá sa, že ani ACF ani PACF sa po niektorom lagu nevynuluje. Obe majú naviac výrazne nenulové prvé hodnoty. Skúsme preto použiť zmiešaný ARMA(1,1) model. Teda spolu so sezónnym MA členom, uvažujme model sarima(x, 1, 1, 1, 0, 1, 1, 12). Dostávame

sarima(x, 1, 1, 1, 0, 1, 1, 12)  
## initial  value -3.085211 
## iter   2 value -3.225399
## iter   3 value -3.276697
## iter   4 value -3.276902
## iter   5 value -3.282134
## iter   6 value -3.282524
## iter   7 value -3.282990
## iter   8 value -3.286319
## iter   9 value -3.286413
## iter  10 value -3.288141
## iter  11 value -3.288262
## iter  12 value -3.288394
## iter  13 value -3.288768
## iter  14 value -3.288969
## iter  15 value -3.289089
## iter  16 value -3.289094
## iter  17 value -3.289100
## iter  17 value -3.289100
## iter  17 value -3.289100
## final  value -3.289100 
## converged
## initial  value -3.288388 
## iter   2 value -3.288459
## iter   3 value -3.288530
## iter   4 value -3.288649
## iter   5 value -3.288753
## iter   6 value -3.288781
## iter   7 value -3.288784
## iter   7 value -3.288784
## iter   7 value -3.288784
## final  value -3.288784 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##      Estimate     SE t.value p.value
## ar1    0.1960 0.2475  0.7921  0.4298
## ma1   -0.5784 0.2132 -2.7127  0.0076
## sma1  -0.5643 0.0747 -7.5544  0.0000
## 
## sigma^2 estimated as 0.001341097 on 128 degrees of freedom 
##  
## AIC = -3.678622  AICc = -3.677179  BIC = -3.59083 
## 

Všetky p-hodnoty Ljung-Boxovho testu sú väčšie ako 5%. Model vyzerá dobre. Z tabuľky koeficientov však vidíme, že koeficient ar1 nie je signifikantný (p.value = 0.4298), preto ho môžeme skúsiť vynechať.

sarima(x, 0, 1, 1, 0, 1, 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
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##      Estimate     SE t.value p.value
## ma1   -0.4018 0.0896 -4.4825       0
## sma1  -0.5569 0.0731 -7.6190       0
## 
## sigma^2 estimated as 0.001348035 on 129 degrees of freedom 
##  
## AIC = -3.690069  AICc = -3.689354  BIC = -3.624225 
## 

P-hodnoty sa vylepšili, hodnota BIC klesla, oba koeficienty tohto modelu sú signifikantné. Dostali sme teda lepší model pre naše dáta. Uvedený model sa nazýva aj airline model.

Spravme predikcie na nasledujúce 2 roky.

sarima.for(x, 24, 0, 1, 1, 0, 1, 1, 12)  

Vidíme, že sa zachováva rast aj pravidelná sezónnosť.

3.1.2 Dáta chicken

Nájdeme SARIMA model pre dáta chicken z prednášky.

data("chicken")
plot(chicken)

V dátach pozorujeme rastúci trend, preto dáta diferencujeme.

plot(diff(chicken))
abline(h=0, col="red")
abline(h=mean(diff(chicken)), col="blue")

Zobrazme autokorelačnú funkciu pre diferencie.

acf1(diff(chicken))

Z ACF nie je zrejmé, či dáta majú jednotkový koreň. Otestujte ho.

summary(ur.df(..., lag = ..., type = ..., selectlags = ...))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression drift 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.14194 -0.41020  0.03508  0.42470  1.68715 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.10610    0.05407   1.962   0.0515 .  
## z.lag.1     -0.35199    0.05458  -6.448 1.24e-09 ***
## z.diff.lag   0.30224    0.07438   4.063 7.52e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6642 on 162 degrees of freedom
## Multiple R-squared:  0.217,  Adjusted R-squared:  0.2074 
## F-statistic: 22.45 on 2 and 162 DF,  p-value: 2.472e-09
## 
## 
## Value of test-statistic is: -6.4484 20.7942 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau2 -3.46 -2.88 -2.57
## phi1  6.52  4.63  3.81

Mali by ste dostať, že v dátach skutočne nie je jednotkový koreň. Preto dáta ďalej nie je potrebné diferencovať.

Zobrazte ACF a PACF pre diferencie.

acf2(diff(chicken))

ACF sa nevynuluje, má sínusový charakter. PACF má prvé dve hodnoty výrazne nenulové, tretia hodnota je na hranici. To je typické pre autoregresný proces. Očakávame preto buď AR(2) alebo AR(3).

PACF nemá výrazné hodnoty pri celých rokoch. Všimnime si však, že pravideľnosť priebehu ACF evidentne súvisí s celými rokmi. Preto očakávame prítomnosť sezónneho členu. Skúsme sezónny AR(1).

Otestujme ako prvý model sarima(chicken, 3, 1, 0, 1, 0, 0, 12).

sarima(chicken, 3, 1, 0, 1, 0, 0, 12)
## initial  value 0.012640 
## iter   2 value -0.162710
## iter   3 value -0.432041
## iter   4 value -0.463369
## iter   5 value -0.471514
## iter   6 value -0.474594
## iter   7 value -0.474874
## iter   8 value -0.474878
## iter   9 value -0.474885
## iter  10 value -0.474885
## iter  11 value -0.474887
## iter  12 value -0.474887
## iter  12 value -0.474887
## final  value -0.474887 
## converged
## initial  value -0.480069 
## iter   2 value -0.480175
## iter   3 value -0.480258
## iter   4 value -0.480392
## iter   5 value -0.480422
## iter   6 value -0.480426
## iter   7 value -0.480426
## iter   7 value -0.480426
## iter   7 value -0.480426
## final  value -0.480426 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1        0.8885 0.0746 11.9031  0.0000
## ar2       -0.1459 0.0996 -1.4647  0.1448
## ar3       -0.1151 0.0750 -1.5352  0.1265
## sar1       0.3113 0.0724  4.2976  0.0000
## constant   0.2387 0.1735  1.3760  0.1706
## 
## sigma^2 estimated as 0.3779479 on 174 degrees of freedom 
##  
## AIC = 1.944065  AICc = 1.946002  BIC = 2.050905 
## 

Model vyzerá dobre, ale v tabuľke koeficientov si môžeme všimnúť, že koeficient ar3 nie je signifikantný. Znížme preto počet klasických AR členov na 2.

sarima(chicken, 2, 1, 0, 1, 0, 0, 12)
## initial  value 0.015039 
## iter   2 value -0.226398
## iter   3 value -0.412955
## iter   4 value -0.460882
## iter   5 value -0.470787
## iter   6 value -0.471082
## iter   7 value -0.471088
## iter   8 value -0.471090
## iter   9 value -0.471092
## iter  10 value -0.471095
## iter  11 value -0.471095
## iter  12 value -0.471096
## iter  13 value -0.471096
## iter  14 value -0.471096
## iter  15 value -0.471097
## iter  16 value -0.471097
## iter  16 value -0.471097
## iter  16 value -0.471097
## final  value -0.471097 
## converged
## initial  value -0.473585 
## iter   2 value -0.473664
## iter   3 value -0.473721
## iter   4 value -0.473823
## iter   5 value -0.473871
## iter   6 value -0.473885
## iter   7 value -0.473886
## iter   8 value -0.473886
## iter   8 value -0.473886
## iter   8 value -0.473886
## final  value -0.473886 
## converged
## <><><><><><><><><><><><><><>
##  
## Coefficients: 
##          Estimate     SE t.value p.value
## ar1        0.9154 0.0733 12.4955  0.0000
## ar2       -0.2494 0.0739 -3.3728  0.0009
## sar1       0.3237 0.0715  4.5238  0.0000
## constant   0.2353 0.1973  1.1923  0.2347
## 
## sigma^2 estimated as 0.3828137 on 175 degrees of freedom 
##  
## AIC = 1.945971  AICc = 1.947256  BIC = 2.035005 
## 

Všetky p-hodnoty sú stále nad 5%. Model je vyhovujúci.

Uvedené modely môžeme porovnať aj na základe BIC, pričom volíme model s nižším BIC. V našom prípade je to model sarima(chicken, 2, 1, 0, 1, 0, 0, 12). Pre tento model urobme predikcie na nasledujúci rok.

sarima.for(chicken, 12, 2, 1, 0, 1, 0, 0, 12)

3.2 Dáta exp o čínskom exporte

Pozrime sa ďalej na dáta exp o čínskom exporte z knižnice seasonal.

plot(exp)

Aby sme odstránili rastúcosť disperzie, budeme pracovať s logaritmami dát. Na modelovanie použijeme dáta x z rokov 2000 - 2012, teda bez posledného roku. Dáta za posledný rok uložíme do premennej x.pred a použijeme ich na zhodnotenie kvality predikcií.

x <- window(..., start= ... , end = ... )
x.pred <-  window(..., start=...)
plot(x)

Zodpovedajte otázky:

  • Sú dáta stacionárne?
  • Je v dátach prítomný trend?
  • Pozorujeme v dátach sezónnosť?
  • Je potrebné dáta diferencovať? Ak áno, sezónne alebo klasicky? Koľkokrát?

Pre stacionárne dáta, ktoré ďalej netreba diferencovať, by ste mali dostať nasledovnú ACF a PACF.

acf2(x.d12.d1)

  • Aké tipy na sarima modely máte na základe ACF a PACF?

  • Určte najlepší z vyhovujúcich modelov na základe BIC.

  • Pre najlepší z modelov spravte predikcie na jeden rok. Porovnajte s reálnymi dátami odloženými v premennej x.pred.

Výsledok pre porovnanie:

3.3 Harmonizovaný index spotrebiteľských cien na Slovensku

Analyzujme harmonizovaný index spotrebiteľských cien (HICP) na Slovensku. HICP je štatistický ukazovateľ používaný na meranie inflácie, resp. zmien v cenovej hladine spotrebiteľských tovarov a služieb. Tento index je štandardizovaný pre krajiny Európskej únie a ďalšie štáty, aby umožnil porovnanie medzi krajinami.

Zdroj dát: https://fred.stlouisfed.org/series/CP0000SKM086NEST

Dáta môžete do R-ka jednoducho načítať príkazom

HICP.SK <- read.table("https://anna-hlubinova.github.io/HICP_Slovakia.txt", header = TRUE)
head(HICP.SK)
##       DATE Value
## 1 1.1.1996 43.01
## 2 1.2.1996 43.12
## 3 1.3.1996 43.22
## 4 1.4.1996 43.35
## 5 1.5.1996 43.56
## 6 1.6.1996 43.63

Vytvorte z dát časový rad. Dáta za rok 2024 odložte do premennej hicp.pred. Pomocou týchto dát zhodnotíme predikcie. Pri modelovaní budeme pracovať so skráteným časovým radom do konca roka 2023.

hicp.ts <- ts(... , frequency = ..., start = ...)

hicp <- window(hicp.ts, end = ...)
hicp.pred <- window(hicp.ts , start = ...)

Priebeh časového radu:

plot(hicp, type = "l")

Zodpovedajte otázky:

  • Sú dáta stacionárne?
  • Je v dátach prítomný trend?
  • Pozorujeme v dátach sezónnosť?
  • Je potrebné dáta diferencovať? Ak áno, sezónne alebo klasicky? Koľkokrát?

Pre stacionárne dáta, ktoré ďalej netreba diferencovať, by ste mali dostať nasledovnú ACF a PACF.

acf2(hicp.d1.d12)

  • Aké tipy na sarima model máte na základe ACF a PACF?

  • Určte najlepší z vyhovujúcich modelov na základe BIC.

  • Pre najlepší z modelov spravte predikcie na jeden rok. Porovnajte s reálnymi dátami odloženými v premennej hicp.pred.

Výsledok pre porovnanie:

3.4 Dáta o nezamestnanosti v USA

Modelujme dáta o nezamestanosti v USA dostupné v balíku fpp3 pod názvom us_employment. Informácie o dátach nájdete v helpe pomocou ?us_employment.

Konkrétne budeme modelovať dáta v sektore Leisure and Hospitality (rekreácia a pohostinstvo) od januára 2001 do septembra 2019. Z dát vytvoríme časový rad.

leisure <- us_employment %>%
  filter(Title == "Leisure and Hospitality",
         year(Month) > 2000) %>%
  mutate(Employed = Employed/1000) %>%
  select(Month, Employed)

leisure <- ts(leisure$Employed, start = c(2001,1), end = c(2019,9),
              frequency = 12)

Do premennej leisure.pred si odložíme posledný rok dát na zhodnotenie predikcií. Pri modelovaní budeme preto pracovať s časovým radom skráteným o tento jeden rok.

leisure.pred <- window(leisure, start = ... )
leisure <- window(leisure, end = ... )

Priebeh časového radu:

Zodpovedajte otázky:

  • Sú dáta stacionárne?
  • Je v dátach prítomný trend?
  • Pozorujeme v dátach sezónnosť?
  • Je potrebné dáta diferencovať? Ak áno, sezónne alebo klasicky? Koľkokrát?

Pre stacionárne dáta, ktoré už netreba diferencovať, by ste mali dostať nasledovnú ACF a PACF.

acf2(leisure.d12.d1)

  • Aké tipy na sarima modely máte na základe ACF a PACF?

  • Určte najlepší z vyhovujúcich modelov na základe BIC.

  • Pre najlepší z modelov spravte predikcie na jeden rok. Porovnajte s reálnymi dátami odloženými v premennej leisure.pred.

Výsledok pre porovnanie:

4 Modelovanie trendu

4.1 Exponenciálne zhladzovanie

  • Majme dáta \(x_1, x_2, \dots x_n\) a chceme predikovať hodnotu \(x_{n+k}\)
  • Predpoklad: v dátach nie je trend ani sezónnosť
  • Model: \[ x_t = \mu_t + w_t ,\] kde \(\mu_t\) je stredná hodnota (môže závisieť od času) a \(w_t\) sú nezávislé náhodné odchýlky s nulovou strednou hodnotu.
  • Označme \(a_t\) náš odhad strednej hodnoty \(\mu_t\)
  • Základná myšlienka: ďalší odhad strednej hodnoty bude váženým priemerom predchádzajúceho odhadu (teda \(a_{t-1}\)) a novej relizovanej hodnoty \(x_t\) : \[ a_t = \alpha x_t + (1-\alpha) a_{t-1}, \] kde \(a \in (0,1)\) je parameter zhladzovania.
  • Platí:
    • \(a \approx 1\): slabé zhladzovanie, \(a_t \approx x_t\),
    • \(a \approx 0\): silné zhladzovanie, \(a_t \approx a_{t-1}\).
  • Keďže nemáme trend ani sezónnosť, vieme spraviť iba \[ \hat{x}_{n+k|n} = a_n \]
  • Pre daný parameter \(\alpha\):
    • \(a_1 = x_1\) a potom rekurentne
    • máme teda predikčné chyby: \(e_t = x_t - \hat{x}_{t|t-1} = a_n\)
  • Optimálny parameter: minimalizuje sumu štvorcov predikčných chýb: \[ \sum_{t=2}^n e_t \rightarrow \min_{\alpha} \]

4.1.1 Dáta o prietokoch Nílu

Postup aplikujeme na dáta o prietokoch Nílu z Cvičenia 2.

Pozn: Dáta neobsahujú sezónnosť, pretože ide o ročné údaje.

x <- Nile
plot(x)

V R-ku použijeme všeobecnejšiu funkciu HoltWinters, pričom zadáme parametre beta=FALSE, gamma=FALSE, čo zodpovedá práve exponenciálnemu zhladzovaniu.

model <- HoltWinters(x, beta=FALSE, gamma=FALSE)
model
## Holt-Winters exponential smoothing without trend and without seasonal component.
## 
## Call:
## HoltWinters(x = x, beta = FALSE, gamma = FALSE)
## 
## Smoothing parameters:
##  alpha: 0.2465579
##  beta : FALSE
##  gamma: FALSE
## 
## Coefficients:
##       [,1]
## a 805.0389

Vykreslenie:

plot(model)

Hodnotu sum of squared errors, podľa ktorej sa vybrala optimálna \(\alpha\) vieme vypísať pomocou príkazu:

model$SSE
## [1] 2038872

Otázka: Viete nájsť fixné \(\alpha\) také, že dostanete menšiu hodnotu SSE?

Cvičenie: Vykreslite závislosť SSE od parametra \(\alpha\) pre tieto dáta. Výpočet má potvrdiť optimálnu hodnotu, ktorú našlo R-ko.

Výtup na porovnanie:

Detail:

4.2 Holt-Wintersova metóda

Charakteristiky časového radu:

  • \(a_t\) = level, sezónne očistená stredná hodnota

  • \(b_t\) = slope, zmena hodnoty level z jednej periódy na druhú (zachytáva rôzne, aj krátkodobé trendy)

  • \(s_t\) = seasonal component, sezónna zložka (závisí napr. od mesiaca)

Typ sezónnosti:

  • aditívna - napr. v januári je hodnota o 100 vyššia
  • multiplikatívna - napr. v januári je hodnota o 10 percent vyššia

4.2.1 Dáta exp o čínskom exporte

Vráťme sa k dátam exp o čínskom exporte z knižnice seasonal. Na modelovanie opäť použijeme dáta z rokov 2000-2012, teda vynecháme posledný rok. Ten použijeme na zhodnotenie kvality predikcií.

x <- window(log(exp), start=c(2000,1), end = c(2012,12))
x.pred <-  window(log(exp), start=c(2013,1))

plot(x)

Cvičenie 1: Odhadnite optimálne parametre Holt-Wintersovej metódy (s aditívnou sezónnosťou, keďže sme logaritmovaním dosiahli stabilizovanie disperzie) a spravte predikcie na rok 2013.

Na nájdenie predikcií použite funkciu predict. Predikcie spolu s reálnymi dátami môžete vykresliť napríklad pomocou funkcie ts.plot.

Predikcie:

Cvičenie 2: Spravte predikcie z Holt-Wintersovej metódy s aditívnou sezónnosťou a pevne zvolenými parametrami \(\alpha=\beta=\gamma=\frac{1}{2}\) (teda každý člen sa berie s rovnakou váhou).

Predikcie:

Vykreslite do jedného obrázka dáta, predikcie nájdené pomocou SARIMA modelu a obe predikcie nájdené pomocou Holt-Wintersovej metódy.

4.2.2 Dáta AirPassengers

Vráťme sa k dátam AirPassengers o počtoch cestujúcich aerolínkami.

plot(AirPassengers)

Vynechajte posledné dva roky, odhadnite Holt-Wintersov model a spravte predikcie. Porovnajte ich so skutočnými hodnotami.

Výstup pre kontrolu: