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