Tietokoneharjoitus 4

Tehtävä 5

Piirra kuvio SP500 indeksin tuottojen korrelaatiofunktiosta ja tuottojen itseisarvon korrelaatiofunktiosta.

file<-"http://cc.oulu.fi/~jklemela/timeseries/sp500.csv"
data<-read.csv(file=file)
sp500<-data[,7]                # otetaan kunkin paivan lopetuskurssi
sp500<-sp500[length(sp500):1]  # aloitetaan aikasarja vanhimmasta havainnosta

# piiretaan aikasarja
plot(sp500,type="l")

# tulostetaan tuotot
y<-sp500[2:length(sp500)]-sp500[1:(length(sp500)-1)]
r<-y/sp500[1:(length(sp500)-1)]
plot(r,type="l")


n<-length(r)
k<-300
cors<-matrix(0,k,1)
for (i in 1:k){
   x<-r[1:(n-i)]
   y<-r[(1+i):n]
   cors[i]<-cor(x,y)
}
a<-n^(-1/2)*1.96  # qnorm(0.975)
plot(cors,type="l")
segments(0,a,k,a)
segments(0,-a,k,-a)

sum(abs(cors)<=a)/k

cors

 [1,]  2.849787e-02
 [2,] -4.365698e-02
 [3,] -3.868074e-05
 [4,] -3.745309e-03
 [5,] -1.469485e-02
 [6,] -6.888570e-03
 [7,] -2.035406e-02
 [8,]  8.168811e-03
 [9,] -7.241974e-03
[10,]  1.023363e-02

# acf ja pacf #########################

acf(r)

pacf(r)


# tuottojen itseisarvojen autokorrelaatio #################

n<-length(r)
k<-1000
cors<-matrix(0,k,1)
for (i in 1:k){
   x<-abs(r[1:(n-i)])
   y<-abs(r[(1+i):n])
   cors[i]<-cor(x,y)
}
plot(cors,type="l")
a<-n^(-1/2)*1.96  # qnorm(0.975)
segments(0,a,k,a)
segments(0,-a,k,-a)

sum(abs(cors)<=a)/k


# acf ja pacf #########################

acf(abs(r),lag.max=1000)

pacf(abs(r),lag.max=100)