Симулација временских серија
До сада смо имали реалне временске серије, а у наредном коду ћемо симулирати временске серије, а затим испитивати њихове особине и покушати их уклопити у модел (који смо првобитно симулирали).
Гаусов бели шум
x <- seq(-3,3, length = 1000)
hist(rnorm(100), prob = TRUE)
points(x, dnorm(x), type = "l")
curve(dnorm(x),xlim=c(-3,3),add=TRUE) # ово је други начин за додавање линије на график Особине белог шума:
функција средње вредности \(\mu_w = 0\),
аутоковаријациона функција \[\gamma_k = Cov(w_t,w_{t+k}) = \begin{cases} \sigma^2, & k=0\\ 0, & k\neq 0, \end{cases}\]
аутокорелациона функција \[\rho_k = \begin{cases} 1, & k=0\\ 0, & k\neq 0. \end{cases}\]
При симулацијама ове вредности неће бити као теоријске, али довољно је да буду довољно близу.
Иако смо симулирали из \(\mathcal{N}(0,1)\) расподеле, на корелограму добијамо једну статистички значајну корелацију (\(k=7\)). Према претходном требало би одбацити нулту хипотезу да су све корелације 0 и направила би се грешка прве врсте, чија је вероватноћа 0.05.
Ако имамо серију резидуала и верујемо да је бели шум, потребно је оценити \(\sigma^2\).
## [1] 24.2727
Случајно лутање
Временска серија \(x_t\) је случајно лутање ако је \[x_t=x_{t-1}+w_t,\] где је \(w_t\) Гаусов бели шум. Сменом \(x_{t-1}=x_{t-2}+w_{t-1}\) у претходну једначину и настављањем истог поступка добијамо да је: \[x_t = w_1+w_2+w_3+\dots+w_{t-1}+w_t.\] Особине случајног лутања:
функција средње вредности \(\mu_x = 0\),
аутоковаријациона функција \[\gamma_k = Cov(w_t,w_{t+k}) = Cov\left(\sum_{i=1}^t w_i, \sum_{j=1}^{t+k} w_j\right) = \sum_{i=j}Cov(w_i,w_j) =t\sigma^2.\]
аутокорелациона функција \[\rho_k = \frac{Cov(x_t, x_{t+k})}{\sqrt{D(x_t)D(x_{t+k})}} = \frac{t\sigma^2}{\sqrt{t\sigma^2(t+k)\sigma^2}} = \frac{1}{\sqrt{1+k/t}}.\]
Приметимо да аутоковаријациона функција зависи од времена, па процес није стационаран. Приметимо да како време расте, то и функција \(t\sigma^2\) тежи бесконачно, па је случајно лутање поготно само за краткорочна предвиђања.
## [1] 0.9949234
acf(x, type = "covariance")$acf[2]# цртање аутоковаријационе функције и исписивање коваријације c(1)## [1] 382.1764
Аутокорелациона функција за случајноg лутањa је споро опадајућа. Код случајног лутања корелације полако опадају од \(r(0)=1\).
Имплементација фукнција \(acf\) и \(acvf\):
sample.acvf <- function(x,k){
n <- length(x)
s <- 0
for(i in 1:(n-k)){
s<-s+(x[i]-mean(x))*(x[i+k]-mean(x))
}
s<-s/n
return(s)
}
sample.acvf(x,1)## [1] 382.1764
## [1] 0.9949234
Да ли је неки процес случајно лутање може се проверити и коришћењем диференциране серије.
Оператори у анализи временских серија
Оператор кашњења (доцње) (енг. backward shift) првог реда се дефинише као: \[Lx_t = x_{t-1}.\]
Дакл,е оператор L “помера” серију један корак у прошлост - у претходни временски тренутак. Слично, оператор \(L^k\) би померао серију \(k\) корака у прошлост, прецизније: \[L^k x_t = x_{t-k}.\]
Користећи једначину белог шума и оператор кашњења, добијамо следеће једначине: \[x_t = Lx_t + w_t,\] \[(1-L)x_t = w_t \quad \Rightarrow \quad x_t = (1-L)^{-1}w_t,\] \[x_t = (1+L+L^2+\dots)w_t \quad \Rightarrow \quad x_t = w_t+w_{t-1}+w_{t-2}+\dots.\]
Оператор разлике (диференце) првог реда дефинише се као: \[\triangledown x_t = x_t-x_{t-1}.\] Оператор разлике \(\triangledown\) сваки члан серије замењује разликом тренутног и претходног члана. Приметимо везу између оператора кашњења и оператора разлике: \[\triangledown x_t = (1-L)x_t,\] односно у општем случају важи: \[\triangledown^k x_t = (1-L)^k x_t.\]
Код случајног лутања диференцирана серија је баш бели шум, а познато је како изгледа његов корелограм.
Брауново кретање
t <- seq(0,1,0.001) # 1001 подеона тачка
B <- vector()
B[1] <- 0
for(i in 1:1000){
B[i+1]=B[i]+rnorm(1)*sqrt(0.001)
}
plot(t,B, type="l")Пример 1
Z <- read.csv("pounds_nz.txt", sep="")# exchange rate
Z.ts <- ts(Z,frequency=4,start=1991)
plot(Z.ts, xlab="time (years)",ylab="quarterly exchange rate in $NZ/pound")Ако претпоставимо да је одговарајући модел случајно лутање, за проверу испитујемо диференцирану серију.
Да ли је диференцирана серија добро моделована овим процесом, сличним белом шуму? Потребно је проверити:
Да ли су вредности процеса некорелисане?
Да ли су нормално расподењене?
Да ли је дисперзија константна (једнака \(\sigma^2\)) током времена?
Како проверавамо ове особине?
На основу корелограма можемо закључити да ли постоји серијска корелација.
Најједноставније је нормалност проверити графички, помоћу графика
qqnorm.Ако се на основу графика резидуала може приметити да нема разлике у варирању током времена, закључићемо да је дисперзија константна током времена. Овим се нећемо бавити детаљније.
Ипак ћемо потражити бољи модел \(Holt-Winters\) методом.
Z.hw <- HoltWinters(Z.ts, gamma = FALSE)
# оправдано је поставити gamma=FALSE, јер се са графика не уочава сезонска компонента
Z.hw$alpha ## alpha
## 1
## beta
## 0.1670201
Добија се да је \(\alpha=1\), модел је сличан као Брауново кретање са додатним чланом. Корелограм је бољи, ниједна корелација није статистички значајна.
Једначине овог модела: \[x_t=x_{t-1}+b_{t-1}+w_t,\] \[b_{t-1}=0.167(x_{t-1}-x_{t-2})+0.8333b_{t-2}.\] Након основних алгебарских трансформација, претходне једначине се могу заменити са \[(1-0.167L + 0.167L^2)(1-L)x_t = w_t.\] (проверити!)
Случајно лутање са дрифтом
Временска серија \(x_t\) је случајно лутање са дрифтом \(\delta\) ако је \[x_t=x_{t-1}+\delta+w_t,\] где је \(w_t\) Гаусов бели шум.
HP <- read.csv("HP.txt", sep="")
attach(HP) # цене акција за Hewlett-Packard Company (до 7. јуна 2007)
plot(as.ts(Price))Диференцирањем ове временске серије добијамо процес који се од белог шума разликује само по томе што има средњу вредност \(\delta\ne0\).
## [1] 0.03986587
## [1] 0.004378275 0.075353468
Под претпоставком да DP има нормалну расподелу, интервал поверења у нашем случају је скуп тачака x за које не може да се одбаци нулта хипотеза да је средња вредност једнака x, добија се интервал који не садржи 0, што значи да се за тачку 0 нулта хипотеза одбацује. Дакле, одбацујемо хипотезу да је дрифт једнак нули.
Задатак
Симулирати једну реализацију (n =1000) временске серије која је дата моделом \(x_t = w_{t−1} + 2w_t + w_{t+1}\), где је \(w_t\) Гаусов бели шум са дисперзијом 2.
Написати израз за рачунање узорачке аутокорелационе функције и графички је приказати. Наћи и (теоријску) аутокорелациону функцију овог процеса и приказати је графички.