Los pronósticos se utilizan en forma constante en diversos campos: economÍa, finanzas, mercadeo, medio ambiente, ingeniería. Una finalidad es proveer una guÍa para las decisiones que deben tomarse. Algunos ejemplos en estos campos pueden ser los siguientes. 1. Planeación y Control de Operaciones. Por ejemplo, las decisiones de producción de un artículo con base en los pronósticos de ventas. Es posible por ejemplo, detectar una disminucIÓon en la tendencia de ventas que conlleve a reducir la producción, o al contrario.
Se procederá al pronóstico del conusmo de leche
#install.packages("mFilter")
#library(mFilter)
#install.packages("astsa")
#library(astsa)
#install.packages("forecast")
#library(forecast)
#install.packages("tseries")
#library(tseries)
#install.packages("CombMSC")
#library(CombMSC)
#install.packages("foreign")
#library(foreign)
#install.packages("sarima")
#library(sarima)
#install.packages("snow")
#library(snow)
series_practica_comodities <- read.csv("series_practica_comodities_1.csv", sep=";",dec = ",")
View(series_practica_comodities)
d=dim(series_practica_comodities)
icom=ts(series_practica_comodities[24:104,2],start=c(2010,1),frequency=12)# dos opciones toda la serie [.2)] parte de la serie 10:100
plot(icom)
icom_com=decompose(icom,type = "additive")
plot(icom_com)
mod1=arima(icom, order = c(1,1,1))
mod1
##
## Call:
## arima(x = icom, order = c(1, 1, 1))
##
## Coefficients:
## ar1 ma1
## 0.2278 0.1956
## s.e. 0.2882 0.2966
##
## sigma^2 estimated as 35.46: log likelihood = -256.34, aic = 518.69
mod2=arima(icom, order = c(1,1,0))
mod2
##
## Call:
## arima(x = icom, order = c(1, 1, 0))
##
## Coefficients:
## ar1
## 0.3920
## s.e. 0.1022
##
## sigma^2 estimated as 35.65: log likelihood = -256.55, aic = 517.11
mod3=arima(icom, order = c(0,1,1))
mod3
##
## Call:
## arima(x = icom, order = c(0, 1, 1))
##
## Coefficients:
## ma1
## 0.3972
## s.e. 0.0980
##
## sigma^2 estimated as 35.72: log likelihood = -256.63, aic = 517.26
acf(residuals(mod2))
pacf(residuals(mod2))
acf(residuals(mod3))
pacf(residuals(mod3))
r2<-resid(mod2)^2
acf((r2))
#adf.test(residuals(mod2),alternative=c("stationary"))
#adf.test(residuals(mod3),alternative=c("stationary"))
#plot(mod2)
proye_1 <- predict(mod2, n.ahead=12)
proye_1
## $pred
## Jan Feb Mar Apr May Jun Jul
## 2016
## 2017 102.7222 102.7217 102.7215 102.7214 102.7213 102.7213 102.7213
## Aug Sep Oct Nov Dec
## 2016 102.7365 102.7273 102.7237
## 2017 102.7213 102.7213
##
## $se
## Jan Feb Mar Apr May Jun Jul
## 2016
## 2017 16.788139 19.403619 21.731018 23.841099 25.782268 27.588368 29.283720
## Aug Sep Oct Nov Dec
## 2016 5.971082 10.233983 13.780608
## 2017 30.886317 32.409826
U <- proye_1$pred + 2*proye_1$se # el 2 es nivel de confinaza por el error estandar
L <- proye_1$pred - 2*proye_1$se # el 2 es nivel de confinaza por el error estandar
ts.plot(icom, proye_1$pred, U, L, col=c(1,2,4,4), lty = c(1,1,2,2))