library(stats) library(tseries) library(fSeries) library(moments) library(Rcmdr) library(fGarch) # entrada de dados ibv<-indices$IBV petro<-indices$PETROBRAS banespa<-indices$BANESPA cemig<-indices$CEMIG # grafico das series par(mfrow=c(4,1)) ts.plot(ibv) ts.plot(petro) ts.plot(banespa) ts.plot(cemig) # calculo dos log retornos ribv<-diff(log(ibv),lag=1,differences=1) rpetro<-diff(log(petro),lag=1,differences=1) rbanespa<-diff(log(banespa),lag=1,differences=1) rcemig<-diff(log(cemig),lag=1,differences=1) # graficos séries-log retornos par(mfrow=c(4,2)) ts.plot(ibv) ts.plot(ribv) ts.plot(petro) ts.plot(rpetro) ts.plot(banespa) ts.plot(rbanespa) ts.plot(cemig) ts.plot(rcemig) # calculo das fac da série e do retorno par(mfrow=c(4,2)) acf(ibv) acf(ribv) acf(petro) acf(rpetro) acf(banespa) acf(rbanespa) acf(cemig) acf(rcemig) #calculo das fac e facp dos log retornos par(mfrow=c(4,2)) acf(ribv) pacf(ribv) acf(rpetro) pacf(rpetro) acf(rbanespa) pacf(rbanespa) acf(rcemig) pacf(rcemig) # ler conjunto de dados ibv ( dados de 1999 a 2008) IBV<-IBV$Preço rIBV<-diff(log(IBV),lag=1,differences=1) par(mfrow=c(2,3)) ts.plot(ibv) ts.plot(ribv) acf(ribv) ts.plot(IBV) ts.plot(rIBV) acf(rIBV) # calculo da curtose e da`assimetria skewness(ribv) kurtosis(ribv) skewness(rIBV) kurtosis(rIBV) skewness(ribv) kurtosis(rpetro) skewness(rpetro) kurtosis(rbanespa) skewness(rbanespa) #ajuste de um modelo arma usando o pacote tseries rpetromod<- arma(rpetro,order=c(9,0),include.intercept= TRUE) summary(rpetromod) rpetromod2<-arma(rpetro,lag=list(ar=c(1,3,6,9),ma=NULL)) summary(rpetromod2) rpetromod2<-arma(rpetro,lag=list(ar=c(1,3,6,9),ma=NULL)) rpetromod3<-arma(rpetro,lag=list(ar=c(1,3,9),ma=NULL),include.intercept= FALSE) summary(rpetromod3) par(mfrow=c(2,1)) acf(residuals(rpetromod3)^2, na.action=na.remove) pacf(residuals(rpetromod3)^2, na.action=na.remove) # ajuste de um modelo usando o pacote Stats (não faz modelo reduzido) rpetromod6<-arima(rpetro, order = c(9,0,0),include.mean = FALSE) summary(rpetromod6) coeficientes<-rpetromod6$coef coeficientes residuos<-rpetromod6$residuals par(mfrow=c(2,1)) acf(residuos) pacf(residuos) tsdiag(rpetromod6) # ajuste de um modelo ARCH aos dados da Petrobras e Cemig ?garchFit rpetromod1<- garchFit(~arma(10,0)+garch(1,1), rpetro,cond.dist = c("dnorm"),include.mean = TRUE) summary(rpetromod1) rcemigmod1<- garchFit(~arma(0,1)+garch(1,1), rcemig,cond.dist = c("dnorm"),include.mean = TRUE) summary(rcemigmod1) res <- rcemigmod1@residuals desvpad <- rcemig@sigma.t respad <- res/desvpad rcemigmod2<- garchFit(~arma(0,1)+garch(1,1), rcemig,cond.dist = c("dnorm"),include.mean = FALSE) par(mfrow=c(3,1)) ts.plot(respad) acf(respad) pacf(respad) rcemigmod3<- garchFit(~arma(6,0)+garch(1,1), rcemig,cond.dist = c("dnorm"),include.mean = FALSE) summary(rcemigmod3) par(mfrow=c(3,1)) ts.plot(respad^2) acf(respad^2) pacf(respad^2) qq.plot(respad) skewness(respad) kurtosis(respad) hist(respad,prob=T,ylim=c(0,0.45),breaks=20) x<-seq(-6,6,0.01) lines(x,dnorm(x,mean=mean(respad),sd=sd(respad)),col=2) fitg2<-garchFit(formula = ~arma(10,0)+ garch(1,1), leverage=TRUE, data = lribv, cond.dist = "dstd",include.mean = TRUE, standardize=T) res <- fitg2@residuals desvpad <- fitg2@sigma.t respad <- res/desvpad par(mfrow=c(3,1)) ts.plot(respad) acf(respad) pacf(respad) par(mfrow=c(3,1)) ts.plot(respad^2) acf(respad^2) pacf(respad^2) qq.plot(respad) skewness(respad) kurtosis(respad) hist(respad,prob=T,ylim=c(0,0.45),breaks=20) x<-seq(-6,6,0.01) lines(x,dnorm(x,mean=mean(respad),sd=sd(respad)),col=2) rpetromod3<-arma(rpetro,lag=list(ar=c(1,3,9),ma=NULL),include.intercept= FALSE) summary(rpetromod3) par(mfrow=c(2,1)) acf(residuals(rpetromod3)^2, na.action=na.remove) pacf(residuals(rpetromod3)^2, na.action=na.remove) pacf(rpetro^2) qq.plot(respad) skewness(respad) kurtosis(respad) hist(respad,prob=T,ylim=c(0,0.45),breaks=20) x<-seq(-6,6,0.01) lines(x,dnorm(x,mean=mean(respad),sd=sd(respad)),col=2) fitg2<-garchFit(formula = ~arma(10,0)+ garch(1,1), leverage=TRUE, data = lribv, cond.dist = "dstd",include.mean = TRUE, standardize=T) res <- fitg2@residuals desvpad <- fitg2@sigma.t respad <- res/desvpad par(mfrow=c(3,1)) ts.plot(respad) acf(respad) pacf(respad) par(mfrow=c(3,1)) ts.plot(respad^2) acf(respad^2) pacf(respad^2) qq.plot(respad) skewness(respad) kurtosis(respad) hist(respad,prob=T,ylim=c(0,0.45),breaks=20) x<-seq(-6,6,0.01) lines(x,dnorm(x,mean=mean(respad),sd=sd(respad)),col=2)