Está en la página 1de 9

> getwd()

[1] "/Users/ceciliariveradelgado"
> ipc<-read.table(file="1111.csv",dec=".",fill=T)
> ipc.ts<-ts(ipc,start=c(1996,01),fr=12)
> ipc.ts
> plot.ts(ipc.ts)

>
>
>
>

#como no tiene varianza constante ni media cero se saca logaritmo


ly=log(ipc.ts)
plot.ts(ly)
plot(ly)

> ipcadf<-adf.test(ly)
> ipcadf
Augmented Dickey-Fuller Test
data: ly
Dickey-Fuller = -2.8566, Lag order = 6, p-value
= 0.2156
alternative hypothesis: stationary
> #como el p-values no es menor a 5% entonces sacamos diferencia
> #el componente estacional se da en series mensuales, diarias,
trimestrales, etc, en una serie anual no se puede tener componente
estacionario
> dif<-diff(ipc.ts,lag=1)
> difipc12<-diff(ipc.ts,lag=12)
> adf2<-adf.test(difipc12)
> adf2
Augmented Dickey-Fuller Test
data: difipc12
Dickey-Fuller = -2.4504, Lag order = 6, p-value
= 0.3867
alternative hypothesis: stationary
> difipc12<-diff(dif,lag=12)

> adf2<-adf.test(difipc12)
> adf2
Augmented Dickey-Fuller Test
data: difipc12
Dickey-Fuller = -3.9447, Lag order = 6, p-value
= 0.01263
alternative hypothesis: stationary
> plot(difipc12)

> acf(difipc12)
> #la sig funcion cuenta cuantas observaciones hay y las divide en 4, se
hace con la serie que no esta diferenciada
> max.ret<-trunc(length(ipc.ts)/4)
> acf(difipc12,lag.max=max.ret)

> #nos concentramos en los numeros enteros, 1,2 ,3 4,5 . en este caso
el ultimo resago que se sale por la aprte de abajo es el 1, entonces sera
de orden 1. si ninguno se sale hay dos opciones, si hay un
comportamiento sinusoidal se considera como AR(1) aunque no se salga
de las bandas.
> #si tiene comportamiento exponencial tambien es 1
> pacf(difipc12)
> pacf(difipc12,lag.max=max.ret)

>
>
>
>

#ultimo resago que se sale es el 5 entonces MA(5)


#tenemos ARIMA (1,1,5)
ARIMA<-arima(ipc.ts,order=c(1,1,5))
ARIMA

Call:
arima(x = ipc.ts, order = c(1, 1, 5))
Coefficients:
ar1
ma1
ma2
ma3
ma4
0.9632 -0.7715 -0.0845 0.0963 -0.1830
s.e. 0.0368 0.0732 0.0838 0.0809 0.0908
ma5
0.0943
s.e. 0.0722
sigma^2 estimated as 3604643: log likelihood = -2152.55, aic =
4319.09
> #comprobacion supuestos ruido blanco
> Box.test(ARIMA$residuals)
Box-Pierce test
data: ARIMA$residuals
X-squared = 0.00037516, df = 1, p-value = 0.9845

> #no rechaza la hipotesis de ruido blanco ya que el valor p es mayor


de 0.05
> plot(ARIMA$residuals)

> qqnorm(ARIMA$residuals)

> #CONTRASTES
> tsdiag(ARIMA)
> t.test(ARIMA$residuals,mu=0)

One Sample t-test


data: ARIMA$residuals
t = 1.1139, df = 240, p-value = 0.2664
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
-104.4169 376.1751
sample estimates:
mean of x
135.8791
> jarque.bera.test(ARIMA$residuals)
Jarque Bera Test
data: ARIMA$residuals
X-squared = 1284.4, df = 2, p-value < 2.2e-16
> shapiro.test(ARIMA$residuals)
Shapiro-Wilk normality test
data: ARIMA$residuals
W = 0.85275, p-value = 2.111e-14
> layout(1:3)
> tsdiag(ARIMA)

> #HORIZONTE 12
> horizonte<-12
> ipc.pr<-predict(ARIMA,n.ahead=horizonte)
> ipc.pr
$pred
Jan
Feb
Mar
Apr
May
Jun
Jul
2016
174536.6 174421.1 172864.9 172182.7 171414.9 170675.2
2017 166774.8
Aug
Sep
Oct
Nov
Dec
2016 169962.8 169276.6 168615.6 167978.9 167365.6
2017
$se
Jan

Feb
Mar
Apr
May
Jun
2016
1898.590 2953.630 3839.222 4762.772 5536.868
2017 10840.556
Jul
Aug
Sep
Oct
Nov
Dec
2016 6300.986 7060.108 7816.906 8572.815 9328.562 10084.457
2017
> plot(ipc.ts)
> lines(ipc.pr$pred, col=4)

> plot(ipc.ts)
> lines(ipc.pr$pred,col=4)

También podría gustarte