library(tseries)
## Warning: package 'tseries' was built under R version 4.5.1
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.1
library(readxl)
## Warning: package 'readxl' was built under R version 4.5.1
library(TTR)
## Warning: package 'TTR' was built under R version 4.5.1
d2s=co2
plot(co2)
El presente grafico muestra un comportamiento de los datos los cuales son de forma multiplicativa y tiene tendencia creciente.
d2sl=log(d2s)
plot(d2sl)
plot(d2sl,col="Green")
d2slw=HoltWinters(d2sl, seasonal = "multiplicative")
d2slwp=predict(d2slw,4)
d2slwp
## Jan Feb Mar Apr
## 1998 5.900201 5.902574 5.904801 5.908735
plot(d2slw,d2slwp)
Se pronostica que la serie sera creciente que tendra una subida amplia.
adf.test(d2sl)
##
## Augmented Dickey-Fuller Test
##
## data: d2sl
## Dickey-Fuller = -3.2669, Lag order = 7, p-value = 0.0765
## alternative hypothesis: stationary
la serie no es estacionaria por que el p-valor es mayor a alfa.
d2sld=diff(d2sl)
adf.test(d2sld)
## Warning in adf.test(d2sld): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: d2sld
## Dickey-Fuller = -30.215, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
d2sldd=diff(d2sl,12)
adf.test(d2sldd)
## Warning in adf.test(d2sldd): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: d2sldd
## Dickey-Fuller = -4.8087, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
el p-valor es menor que alfa. Por tanto se procede a realizar el modelo de mejor ajuste. La prueba de Dickey Fuller de la serie en diferencia regular y estacional es estacionario, porque el p-valor es menor que alfa.
acf(d2sldd,main="función de autocorrelación")
Se observa en la función de autocorrelación un resago de forma significativa en la parte regular (MA(1))y en la parte estacional luego del resago 11 ninguno de los resagos es significativo (SMA(0)).
pacf(d2sldd,main="función de autocorrelación parcial")
mod1 = arima(d2sl, order=c(2,1,2), seasonal=list(order=c(1,1,0), period=12))
mod1
##
## Call:
## arima(x = d2sl, order = c(2, 1, 2), seasonal = list(order = c(1, 1, 0), period = 12))
##
## Coefficients:
## ar1 ar2 ma1 ma2 sar1
## -0.1425 0.2495 -0.2202 -0.2948 -0.4445
## s.e. 0.2734 0.1045 0.2702 0.1355 0.0431
##
## sigma^2 estimated as 9.732e-07: log likelihood = 2502.17, aic = -4992.34
Box.test(d2s,lag = 12,type = "Ljung-Box")
##
## Box-Ljung test
##
## data: d2s
## X-squared = 5104.1, df = 12, p-value < 2.2e-16
#Modelos SARIMA candidatos
mod2 = arima(d2sl, order = c(0,1,0), seasonal = list(order=c(0,1,0), period=12))
mod3 = arima(d2sl, order = c(0,1,1), seasonal = list(order=c(0,1,0), period=12))
mod4 = arima(d2sl, order = c(1,1,1), seasonal = list(order=c(0,1,0), period=12))
mod5 = arima(d2sl, order = c(1,1,1), seasonal = list(order=c(0,1,1), period=12))
#comparamos aic
mod1$aic
## [1] -4992.343
Box.test(mod1$residuals)
##
## Box-Pierce test
##
## data: mod1$residuals
## X-squared = 4.9356, df = 1, p-value = 0.02631
mod2$aic
## [1] -4848.593
Box.test(mod2$residuals)
##
## Box-Pierce test
##
## data: mod2$residuals
## X-squared = 4.1612, df = 1, p-value = 0.04136
mod3$aic
## [1] -4896.719
Box.test(mod3$residuals)
##
## Box-Pierce test
##
## data: mod3$residuals
## X-squared = 4.9078, df = 1, p-value = 0.02674
mod4$aic
## [1] -4897.973
Box.test(mod4$residuals)
##
## Box-Pierce test
##
## data: mod4$residuals
## X-squared = 3.1766, df = 1, p-value = 0.0747
mod5$aic
## [1] -5132.064
Box.test(mod5$residuals)
##
## Box-Pierce test
##
## data: mod5$residuals
## X-squared = 5.5533, df = 1, p-value = 0.01845