Exponenciálne zhladzovanie: príklad

Načítame dáta:
x <- read.table("http://www.iam.fmph.uniba.sk/institute/stehlikova/cr14cv/data/motor.txt", col.names=c("Complaints"))

Z premennej x urobíme časový rad pomocou funkcie ts, pričom ako jej parametre zadávame:

Takže v našom prípade:
x <- ts(x, frequency=12, start=c(1996,1))
plot(x)

plot of chunk unnamed-chunk-2

Na exponenciálne zhladzovanie použijeme funkciu HoltWinters (je to špeciálny prípad Holt-Wintersovej metódy, o ktorej budeme hovoriť neskôr), pričom zadáme beta=FALSE, gamma=FALSE

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

plot of chunk unnamed-chunk-4

Vieme pristupovať k dosiahnutej hodnote sumy štvorcov chýb
model1$SSE
## [1] 2502.028
a takisto zadať vlastné hodnoty parametrov:
model1 <- HoltWinters(x, alpha=0.2, beta=FALSE, gamma=FALSE)
model1$SSE
## [1] 2526.39

Holt-Wintersova metóda: príklad

data <- read.table("http://www.iam.fmph.uniba.sk/institute/stehlikova/cr14cv/data/wine.txt", header=TRUE)
attach(data)
head(data)
##   winet fortw dryw sweetw  red rose spark
## 1     1  2585 1954     85  464  112  1686
## 2     2  3368 2302     89  675  118  1591
## 3     3  3210 3054    109  703  129  2304
## 4     4  3111 2414     95  887   99  1712
## 5     5  3756 2226     91 1139  116  1471
## 6     6  4216 2725     95 1077  168  1377

Budeme modelovať premennú sweetw. Spravte z nej časový rad podľa popisu v slajdoch a vykreslite priebeh.

plot of chunk unnamed-chunk-8

HWsweet <- HoltWinters(sweetw, seasonal="mult")
plot(HWsweet)

plot of chunk unnamed-chunk-9

Funkciou predict vieme vypočítat predikcie, parameter n.ahead určuje, na koľko období chceme predikcie robit. Funkcia ts.plot je užitočná pri kreslení grafov časových radov, ktoré sú definované na rôznych časových intervaloch.

sweetP <- predict(HWsweet, n.ahead=48)
ts.plot(sweetw, sweetP, gpars=list(col=c("blue","green")))

plot of chunk unnamed-chunk-10

Holt-Wintersova metóda: dáta k cvičeniu

data(AirPassengers)
plot(AirPassengers)

plot of chunk unnamed-chunk-11

Hodrick-Prescottov filter: príklad

Budeme potrebovať knižnicu mFilter

library(mFilter)
Použitie:
hpf1 <- hpfilter(x, freq=100)

K odhadnutým zložkám môžeme pristupovať nasledovne: hpf1$trend, resp. hpf$cycle. Nakreslite pomocou nich tento graf:

plot of chunk unnamed-chunk-14