library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(forecast)
library(readxl)
datos <- read_excel("C:/Users/Alberto JIménez/Downloads/Ventas_Históricas_Lechitas.xlsx", skip = 2)
## New names:
## • `Mes` -> `Mes...1`
## • `Ventas` -> `Ventas...2`
## • `Mes` -> `Mes...3`
## • `Ventas` -> `Ventas...4`
## • `Mes` -> `Mes...5`
## • `Ventas` -> `Ventas...6`
datos <- na.omit(datos)
datos_unificados <- bind_rows(
datos %>% select(Mes = Mes...1, Ventas = Ventas...2),
datos %>% select(Mes = Mes...3, Ventas = Ventas...4),
datos %>% select(Mes = Mes...5, Ventas = Ventas...6)
)
datos_unificados$Mes <- as.Date(as.numeric(datos_unificados$Mes), origin = "1899-12-30")
# 1 Tendencia Secular
serie_de_tiempo <- ts(
data = datos_unificados$Ventas,
start = c(2018, 1),
frequency = 12
)
modelo <- auto.arima(serie_de_tiempo)
summary(modelo)
## Series: serie_de_tiempo
## ARIMA(1,0,0)(1,1,0)[12] with drift
##
## Coefficients:
## ar1 sar1 drift
## 0.6383 -0.5517 288.8979
## s.e. 0.1551 0.2047 14.5026
##
## sigma^2 = 202701: log likelihood = -181.5
## AIC=371 AICc=373.11 BIC=375.72
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 25.22158 343.864 227.17 0.08059932 0.7069542 0.06491044 0.2081026
pronostico <- forecast(
modelo,
level = 95,
h = 12 # 12 meses = 1 año
)
pronostico
## Point Forecast Lo 95 Hi 95
## Jan 2021 35498.90 34616.48 36381.32
## Feb 2021 34202.17 33155.28 35249.05
## Mar 2021 36703.01 35596.10 37809.92
## Apr 2021 36271.90 35141.44 37402.36
## May 2021 37121.98 35982.07 38261.90
## Jun 2021 37102.65 35958.90 38246.40
## Jul 2021 37151.04 36005.73 38296.34
## Aug 2021 38564.64 37418.70 39710.58
## Sep 2021 38755.22 37609.03 39901.42
## Oct 2021 39779.02 38632.72 40925.32
## Nov 2021 38741.63 37595.28 39887.97
## Dec 2021 38645.86 37499.50 39792.22
plot(pronostico)
