Primero guardamos los datos proporcionados en un vector para tener las 35 observaciones y se las asignamos a un variable a la cual denominamos variaciones.
variaciones<-c(67, 63,76,66,69,71,72,71,72,72,83,87,76,79,74,81,76,77,68,68,74,68,69,75,80,81,86,86,79,78,77,77,80,76,67)
plot.ts(variaciones_ts)
A partir de la gráfica podemos darnos cuenta que no es estacionaria pues no se ve una tendencia, es decir, en otras palabras las observaciones están muy alejadas las unas de las otras.
A continuación realizare un pequeño análisis exploratorio para conocer cómo se comportan los datos
Promedio
mean(variaciones_ts)
## [1] 74.88571
Desviacion estandar
sd(variaciones_ts)
## [1] 6.091322
Autocorrelacion
acf(variaciones)
Autocorrelacion parcial
pacf(variaciones)
Para intentar solucionar la dispersión de los datos vamos a obtener la diferencia de la serie, para tratar de suavizar ese comportamiento.
dif_variaciones_ts<-diff(variaciones_ts)
plot(dif_variaciones_ts)
Ahora vamos comprobar si es estacionaria o no, para ello se realizara la prueba de Dickey-Fuller aumentada para la hipótesis nula de una raíz unitaria de una serie temporal univariada x(de manera equivalente, x es una serie temporal no estacionaria).
adf.test(dif_variaciones_ts)
##
## Augmented Dickey-Fuller Test
##
## data: dif_variaciones_ts
## Dickey-Fuller = -2.9232, Lag order = 3, p-value = 0.2153
## alternative hypothesis: stationary
Con lo cual podemos deducir que no es estacionaria.
Ahora vamos a encontrar los parámetros que mejor se ajusta a nuestros datos con la función auto.arima().
parametros=auto.arima(variaciones_ts)
parametros
## Series: variaciones_ts
## ARIMA(1,0,0) with non-zero mean
##
## Coefficients:
## ar1 mean
## 0.5705 74.3293
## s.e. 0.1435 1.9151
##
## sigma^2 estimated as 26.34: log likelihood=-106.07
## AIC=218.15 AICc=218.92 BIC=222.81
Ahora solo queda calcular las predicciones con la funcion sarima.for() y los parametros encontrados en el paso anterior.
sarima.for(variaciones_ts, 1,0,0, n.ahead = 3)
## $pred
## Time Series:
## Start = 36
## End = 38
## Frequency = 1
## [1] 70.14757 71.94342 72.96803
##
## $se
## Time Series:
## Start = 36
## End = 38
## Frequency = 1
## [1] 4.983379 5.737436 5.962361
Con lo cual podemos notar que para los siguientes tres dias los pronosticos del color son \(36 =70.14757\) , \(7=71.94342\) y \(38=72.96803\)
Ejercicio 8
Datos=c(1,2,3,4,5,6,7,8,9,10)
Datos_1=c(0.31, 0.37, -0.05, 0.06, -0.21, 0.11, 0.8, 0.05, 0.12, -0.01)
plot(Datos,Datos_1, type = "h", ylim=c(-1,1), main="Correlograma")%>% abline(h=0)%>% abline(h=0.6325, col="blue", lty=2)%>%abline(h=-0.6325, col="blue", lty=2)
Notemos que estamos considerando una serie con 100 observaciones las cuales tienen \(r_1=0.31\) \(r_2=0.37\) \(r_3=0.05\), \(r_4=0.06\) \(r_5=0.21\) \(r_6=0.11\) \(r_7=0.08\) \(r_8=0.05\) \(r_9=0.12\) \(r_{10}=-0.01\)
El rango esta entre:
\[+_-0.20\]
Con esta observación nos podemos dar cuenta que \(r_1\) y \(r_1\) son las únicas realmente significativas, pues las demás son muy cercanas a 0, tal vez \(r_5\) puede ser significativa, pero no la tomamos en cuenta, ya que las observaciones son muy pocas.
Por lo tanto se sugiere un modelo MA(2).