dati<-read.csv("c:/dati/esercitazione.csv",sep=",",dec=".") serie1<-dati[,2] serie2<-dati[,3] serie3<-dati[,4] serie4<-dati[,4] d.serie1<-diff(serie1) d.serie2<-diff(serie2) # Identificazione par(mfrow=c(2,1)) autoc<-acf(serie1,main="ACF - serie1 valori originari",ylim=c(-1,1)) pautoc<-pacf(serie1,main="PACF - serie1 valori originari",ylim=c(-1,1)) par(mfrow=c(1,1)) windows() ts.plot(d.serie1,main="Serie1 - Differenze prime") windows() par(mfrow=c(2,1)) autoc<-acf(d.serie2,main="ACF - serie2 differenze prime",ylim=c(-1,1)) pautoc<-pacf(d.serie2,main="PACF - serie2 differenze prime",ylim=c(-1,1)) par(mfrow=c(1,1)) # Stima est.ari2<-arima(serie1,order=c(2,1,0)) t.stat.ari2<-est.ari2$coef/sqrt(diag(est.ari2$var.coef)) p.value<-2*pt(abs(t.stat.ari2),df=1000-length(est.ari2$coef),lower.tail=F) ris<-rbind(est.ari2$coef,sqrt(diag(est.ari2$var.coef)),t.stat.ari2,p.value) print(ris) # Verifica sui residui res<-est.ari2$residuals windows() ts.plot(res) windows() par(mfrow=c(2,1)) autoc<-acf(res,main="ACF - residui MA(2)",ylim=c(-1,1)) pautoc<-pacf(res,main="PACF - residui MA(2)",ylim=c(-1,1)) par(mfrow=c(1,1)) autoc<-autoc$acf # Tabella del test di Ljung-Box per i rendimenti tabella.lb<-cbind(autoc,matrix(0,nrow(autoc),2)) for (m in 1:nrow(autoc)) { LB.test<-Box.test(res,lag=m,type="Ljung-Box") tabella.lb[m,2]<-as.numeric(LB.test[1]) tabella.lb[m,3]<-as.numeric(LB.test[3]) } print(tabella.lb) massimo<-max(max(res,na.rm=T),abs(min(res,na.rm=T))) # grafico ad istogrammi della distribuzione die frequenze della serie dei rend. hist(res,breaks=50,freq=F,xlim=c(-massimo,massimo),xlab="residui",main="distribuzione residui MA(2)",col="blue") mu <- mean(res,na.rm=TRUE) # calcola la media campionaria sigma <- sqrt(var(res,na.rm=TRUE)) # calcola la scarto quadratico medio campioanrio x <- seq(-massimo, massimo, length=5000) # definisce i valori x della funzione di densità di prob y <- dnorm(x, mu, sigma) # calcola la densità di prob della normale lines(x, y, col = 2, lty = 2, lwd = 2) # sovrappone la funz di densità della normale all'istogramma res<-as.matrix(res) n.oss<-nrow(res) var.res <- var(res, na.rm = T) # quadrato del momento secondo dalla media med2 <- var.res^2 # momento quarto dalla media med4 <- sum(( res- mean(res))^4, na.rm = T)/n.oss # momento terzo dalla media medtre <- sum((res - mean(res))^3, na.rm = T)/n.oss beta1 <- (medtre/(sqrt(var.res))^3) beta2 <- med4/med2 jb <- (n.oss/6) * (beta1^2 + 1/4 * (beta2 - 3)^2) pvalue<-1-pchisq(jb, 2)