Kód
<- readRDS("data/data.rds")[1:15000,]
dataset data("co2")
Funkce pro základní statistické zpracování časových řad opět nalezneme v balíčku stats
, jehož jmenný prostor je připojen po otevření R.
Budeme pracovat se dvěma datovými sadami:
co2
, kterou nahrajete pomocí funkce data()
<- readRDS("data/data.rds")[1:15000,]
dataset data("co2")
ACF slouží k posouzení, zda časová řada obsahuje cyklickou či periodickou složku a také, zda je či není řadou náhodnýhc čísel. Graficky je vyjádřena pomocí korelogramu.
par(mfrow = c(1, 2))
acf(dataset$R)
acf(co2)
Dekompozicí časové řady rozumíme rozklad na složky:
Předpokládáme, že řadu lze rozložit na součet složek
\[ Y_t =T_t +S_t +C_t +\epsilon_t, \]
<- decompose(co2)
dec_co2 plot(dec_co2)
plot(dec_co2$trend)
Ověřte, zda po dekompozici co2
residua \(\epsilon_t\) splňují definici bílého šumu tzn. mají nulovou střední hodnotu a konečný rozptyl a jsou nekorelované.
shapiro.test(dec_co2$random)
Shapiro-Wilk normality test
data: dec_co2$random
W = 0.99506, p-value = 0.1549
mean(dec_co2$random, na.rm = TRUE)
[1] 0.001743421
var(dec_co2$random, na.rm = TRUE)
[1] 0.07028142
# ...
par(mfrow = c(1, 2))
plot(dataset$Tmin, type = "l",
col = "slategray",
lwd = 0.5)
<- loess(Tmin ~ na.omit(1:length(dataset$Tmin)),
md1 data = dataset,
degree = 1)
lines(md1$fitted, col = "darkred")
plot(filter(x = dataset$R,
method = "convolution",
filter = c(rep(1/365.25, 365.25)),
sides = 1),
col = "dodgerblue3",
type = "l")
<- lm(Tmin ~ DTM, data = dataset)
md2 plot(dataset$Tmin, type = "l",
col = "slategray",
lwd = 0.5)
lines(md1$fitted, col = "darkred")
abline(coef(md2), col = "red")