\(\color{deepskyblue}{\text{Симулација временских серија}}\)

До сада смо имали реалне временске серије, а у наредном коду ћемо симулирати временске серије, а затим испитивати њихове особине и покушати их уклопити у модел (који смо првобитно симулирали).

\(\color{deepskyblue}{\text{Гаусов бели шум}}\)

set.seed(1) # cemu sluzi?
w <- rnorm(100)
plot(w, type = "l")

x <- seq(-3,3, length = 1000)
hist(rnorm(100), prob = TRUE) # histogram bas i ne odgovara gustini
points(x, dnorm(x), type = "l") 
curve(dnorm(x),xlim=c(-3,3),add=TRUE) # ovo je drugi nacin za dodavanje linije na grafik

Како препознати бели шум?

  • функција средње вредности

  • аутоковаријациона функција

  • аутокорелациона функција

При симулацијама ове вредности неће бити као теоријске, али довољно је да буду довољно близу.

set.seed(2)
acf(rnorm(100))$acf

## , , 1
## 
##               [,1]
##  [1,]  1.000000000
##  [2,] -0.059133045
##  [3,]  0.044884671
##  [4,] -0.095926012
##  [5,] -0.083802543
##  [6,] -0.061176135
##  [7,]  0.152904998
##  [8,] -0.249237520
##  [9,]  0.003383697
## [10,] -0.075437137
## [11,]  0.015429529
## [12,] -0.038828638
## [13,]  0.145619667
## [14,]  0.036044420
## [15,]  0.144361369
## [16,]  0.030733687
## [17,]  0.032022779
## [18,] -0.084755218
## [19,] -0.011582477
## [20,] -0.005482997
## [21,] -0.051471441

Иако смо симулирали из \(\mathcal{N}(0,1)\) расподеле, на корелограму добијамо једну статистички значајну корелацију (\(k=7\)). Према претходном требало би одбацити нулту хипотезу о томе да су све корелације 0 и направила би се грешка прве врсте, чија је вероватноћа 0.05.

Ако имамо серију резидуала и верујемо да је бели шум, потребно је оценити \(\sigma^2\).

x <- rnorm(100,mean=0,sd=5)
var(x)
## [1] 24.2727

\(\color{deepskyblue}{\text{Случајно лутање}}\)

Временска серија \(x_t\) је случајно лутање ако је \[x_t=x_{t-1}+w_t,\] где је \(w_t\) Гаусов бели шум.

x <- w <- rnorm(1000)
for (t in 2:1000) x[t] <- x[t-1] + w[t]
plot(x, type = "l") # rastuci trend

acf(x)$acf[2] # crta grafik i ispisuje vrednost r(1) - koja je bliska 1

## [1] 0.9949234
acf(x, type = "covariance")$acf[2]# crtanje autokovarijacione funkcije i ispisivanje kovarijacije 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
sample.acf<-function(x,k){
  return(sample.acvf(x,k)/sample.acvf(x,0))
}
sample.acf(x,1)
## [1] 0.9949234

Да ли је неки процес случајно лутање може се проверити и коришћењем диференциране серије.

Диференцирана серија се добија: \[\triangledown x_t = x_t-x_{t-1}.\]

Код случајног лутања диференцирана серија је баш бели шум, а познато је како изгледа његов корелограм.

acf(diff(x))

\(\color{deepskyblue}{\text{Брауново кретање}}\)

t <- seq(0,1,0.001) # 1001 podeona tacka
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")

\(\color{deepskyblue}{\text{Пример}}\)

Z <- read.csv("pounds_nz.txt", sep="")# exchange rate - koliko jedne valute se dobija za jedinicnu vrednost druge
Z.ts <- ts(Z,frequency=4,start=1991)
plot(Z.ts, xlab="time (years)",ylab="quarterly exchange rate in $NZ/pound")

Ако претпоставимо да је одговарајући модел случајно лутање, за проверу испитујемо диференцирану серију.

acf(diff(Z.ts))

Да ли је диференцирана серија добро моделована овим процесом, сличним белом шуму? Потребно је проверити:

  1. Да ли су вредности процеса некорелисане?

  2. Да ли су нормално расподењене?

  3. Да ли је дисперзија константна (једнака \(\sigma^2\)) током времена?

Како проверавамо ове особине?

  1. На основу корелограма можемо закључити да ли постоји серијска корелација.

  2. Најједноставније је нормалност проверити графички, помоћу графика qqnorm.

  3. Ако се на основу графика резидуала може приметити да нема разлике у варирању током времена, закључићемо да је дисперзија константна током времена. Овим се нећемо бавити детањније.

Ипак ћемо потражити бољи модел \(Holt-Winters\) методом.

Z.hw <- HoltWinters(Z.ts, gamma = FALSE) 
# ima smisla sto smo stavili gamma=FALSE, jer se sa grafika ne uocava sezonska komponenta
Z.hw$alpha 
## alpha 
##     1
Z.hw$beta
##      beta 
## 0.1670201
acf(resid(Z.hw))

Добија се да је \(\alpha=1\), модел је сличан као Брауново кретање са додатним чланом. Корелограм је бољи, ниједна корелација није статистички значајна.

За проверу написати једначине овог модела!

\(\color{deepskyblue}{\text{Случајно лутање са дрифтом}}\)

Временска серија \(x_t\) је случајно лутање са дрифтом \((\delta)\) ако је \[x_t=x_{t-1}+\delta+w_t,\] где је \(w_t\) Гаусов бели шум.

HP <- read.csv("HP.txt", sep="")
attach(HP) # cene akcija za Hewlett-Packard Company (do 7. juna 2007)
plot (as.ts(Price))

Диференцирањем ове временске серије добијамо процес који се од белог шума разликује само по томе што има средњу вредност \(\delta\ne0\).

DP <- diff(Price) # Provere za beli sum
acf(DP)

plot(as.ts(DP))

mean(DP) # ocena drifta
## [1] 0.03986587
qqnorm(DP,lty=2) #jedino ovo bas i ne prolazi

mean(DP) + c(-2, 2) * sd(DP)/sqrt(length(DP)) # 95% interval poverenja za drift delta
## [1] 0.004378275 0.075353468

Под претпоставком да DP има нормалну расподелу, интервал поверења у нашем случају је скуп тачака x за које не може да се одбаци нулта хипотеза да је средња вредност једнака x, добија се интервал који не садржи 0, што значи да се за тачку 0 нулта хипотеза одбацује. Дакле, одбацујемо хипотезу да је дрифт једнак нули.

\(\color{deepskyblue}{\text{Задатак}}\)

  • Симулирати једну реализацију (n =1000) временске серије која је дата моделом \(x_t = w_{t−1} + 2w_t + w_{t+1}\), где је \(w_t\) Гаусов бели шум са дисперзијом 2. Написати израз за рачунање узорачке аутокорелационе функције и графички је приказати. Наћи и (теоријску) аутокорелациону функцију овог процеса и приказати је графички.
  • Симулирати једну реализацију (n =500) временске серије која је дата моделом \(x_t = x_{t−1} + x_{t−12} − x_{t−13} + w_t − 0.5w_{t−1} − 0.5w_{t−12} + 0.25w_{t−13}\), где је \(w_t\) Гаусов бели шум са дисперзијом 1. Испитати стационарност и графички је приказати.