Budeme pracovať s dátami z knižnice datasets, konkrétne nhtemp. Podľa popisu v helpe: The mean annual temperature in degrees Fahrenheit in New Haven, Connecticut, from 1912 to 1971.

library(datasets)
plot(nhtemp)

Zoberieme posledných hodnôt tohto časového radu a budeme pracovať s nimi. Bude nás zaujímať, či ich môžeme považovať za biely šum posunutý o konštantu, a preto budeme zisťovať, či majú signifikantnú autokoreláciu alebo nie.

y <- window(nhtemp, start=1947)
length(y)
## [1] 25
plot(y)

Zobrazíme autokorelačnú funkciu po lag 10:

acf(y, lag.max = 10)

Otázka 1: Pre ktoré autokorelácie (pre lagy od 1 do 10, ktoré sú zobrazené na grafe) zamietame hypotézu o nulovosti korelácií na hladine významnosti 0.05?

Zobrazme si teraz numerické hodnoty autokorelácií:

acf(y, lag.max = 10, plot = FALSE)
## 
## Autocorrelations of series 'y', by lag
## 
##      0      1      2      3      4      5      6      7      8      9 
##  1.000  0.012  0.281 -0.089  0.270 -0.210 -0.012 -0.087  0.056 -0.285 
##     10 
## -0.091

Otázka 2: Uvažujme autokoreláciu s najväčšou absolútnou hodnotou. Ak testujeme jej nulovosť, aká je získaná p-hodnota? Čo to znamená - pre aké hladiny významnosti by sme túto hypotézu zamietli?

Poznámka: Na prednáške použijeme zaokrúhlnú hodnotu z výstupu, na cvičení si vyskúšame, ako pristupovať k jednotlivým zložkám autokorelačnej funkcie.

pnorm(-0.285, mean=0, sd=1/5, lower.tail=T)*2
## [1] 0.1541572

Otázka 3: Ljung-Boxovým testom budeme testovať hypotézu, že prvé tri autokorelácie sú nulové. Vypočítajte hodnotu testovacej štatistiky pomocou zaokrúhlených hodnôt autokorelácií z horeuvedeného výstupu. Napíšte kritickú hodnotu testu, ak použijeme 5 percentnú hladinu významnosti a záver - zamietame nulovú hypotézu alebo nie?

r1 <- 0.012; r2 <- 0.281; r3 <- -0.089
LB <- (27/24 * r1^2 + 27/23 * r2^2 + 27/22 * r3^2)*25
LB
## [1] 2.564414
qchisq(0.95, df=3, lower.tail = T)
## [1] 7.814728

Otázka 4: Testujte teraz hypotézu z predchádzajúceho bodu pomocou presných dát v R-ku a napíšte dosiahnutú p-hodnotu.

Box.test(y, lag=3, type="Ljung")
## 
##  Box-Ljung test
## 
## data:  y
## X-squared = 2.5647, df = 3, p-value = 0.4637

Otázka 5: Ako sa zmení odpoveď na predchádzajúcu otázku, ak dáta prevedieme na stupne Celsia?

Otázka 6: Aké dostaneme p-hodnoty pri testovaní, že autokorelácie rádu \(1, 2, \dots, k\) sú súčasne nulové (postupne \(k \in \{1, 2, \dots, 10\}\))? Aký záver z toho spravíte ohľadom otázky z úvodu, či majú dáta signifikantnú autokoreláciu alebo nie?

for (i in 1:10) print(Box.test(y, lag=i, type="Ljung")$p.value)
## [1] 0.9493876
## [1] 0.3130632
## [1] 0.4637194
## [1] 0.2970938
## [1] 0.2701579
## [1] 0.3804531
## [1] 0.463186
## [1] 0.5583043
## [1] 0.3332449
## [1] 0.3903295