Actividad 2. Generación de escenarios futuros con modelos de pronósticos en series de tiempo
Los ejercicios de esta actividad realizados en equipo fueron elaborados por Astrid Paola González Diaz, José Santiago González Padilla, y Ana Estefanía López Alanís.
Teoría y Ejemplo de Producción Trimestral
Concepto
Una serie de tiempo es una colección de observaciones sobre un determinado fenómeno, efectuadas en momentos sucesivos, usualmente equiespaciados.
Algunos ejemplos de series de tiempo son:
1. Precios de acciones
2. Niveles de inventario
3. Rotación de personal
4. Ventas
5. PIB (GDP)
Mas información:
Libro R for Data Science
(2e)
Crear la serie de tiempo
Ejemplo:
Los siguientes datos de producción trimestral inician en el primer trimestre de 2020. Se busca pronosticar la producción de los siguientes 5 trimestres.
produccion <- c(50,53,55,57,55,60)
ts1 <- ts(data = produccion, start= c(2020,1), frequency = 4)
ts1## Qtr1 Qtr2 Qtr3 Qtr4
## 2020 50 53 55 57
## 2021 55 60
Crear modelo ARIMA
ARIMA significa Autoregressive Integrated Moving Average o Modelo Autorregresivo Integrado de Promedio Móvil.
## Series: ts1
## ARIMA(0,0,0)(0,1,0)[4] with drift
##
## Coefficients:
## drift
## 1.5000
## s.e. 0.1768
##
## sigma^2 = 2.01: log likelihood = -2.84
## AIC=9.68 AICc=-2.32 BIC=7.06
## Series: ts1
## ARIMA(0,0,0)(0,1,0)[4] with drift
##
## Coefficients:
## drift
## 1.5000
## s.e. 0.1768
##
## sigma^2 = 2.01: log likelihood = -2.84
## AIC=9.68 AICc=-2.32 BIC=7.06
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.03333332 0.5787923 0.3666667 0.03685269 0.6429133 0.06111111
## ACF1
## Training set -0.5073047
Actividad Hershey’s
Ejemplo:
Los siguientes datos de producción mensual inician en el primer mes de 2020. Se busca pronosticar la producción de los siguientes 5 meses.
Importar base de datos y crear serie de tiempo
lechita <- read.csv("C:/Users/alexa/OneDrive/YO/Ventas_Históricas_Lechitas.csv")
ts2 <- ts(data = lechita$Ventas, start= c(2017,1), frequency = 12)
ts2## Jan Feb Mar Apr May Jun Jul Aug
## 2017 25520.51 23740.11 26253.58 25868.43 27072.87 27150.50 27067.10 28145.25
## 2018 28463.69 26996.11 29768.20 29292.51 29950.68 30099.17 30851.26 32271.76
## 2019 32496.44 31287.28 33376.02 32949.77 34004.11 33757.89 32927.30 34324.12
## Sep Oct Nov Dec
## 2017 27546.29 28400.37 27441.98 27852.47
## 2018 31940.74 32995.93 32197.12 31984.82
## 2019 35151.28 36133.07 34799.91 34846.17
Crear modelo ARIMA
## Series: ts2
## ARIMA(1,0,0)(1,1,0)[12] with drift
##
## Coefficients:
## ar1 sar1 drift
## 0.6383 -0.5517 288.8980
## s.e. 0.1551 0.2047 14.5026
##
## sigma^2 = 202700: log likelihood = -181.5
## AIC=371 AICc=373.11 BIC=375.72
## Series: ts2
## ARIMA(1,0,0)(1,1,0)[12] with drift
##
## Coefficients:
## ar1 sar1 drift
## 0.6383 -0.5517 288.8980
## s.e. 0.1551 0.2047 14.5026
##
## sigma^2 = 202700: log likelihood = -181.5
## AIC=371 AICc=373.11 BIC=375.72
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 25.22163 343.863 227.1699 0.08059942 0.7069541 0.06491041
## ACF1
## Training set 0.2081043
Generar el pronóstico
## Point Forecast Lo 95 Hi 95
## Jan 2020 35498.90 34616.48 36381.32
## Feb 2020 34202.17 33155.29 35249.05
## Mar 2020 36703.01 35596.10 37809.92
## Apr 2020 36271.90 35141.44 37402.36
## May 2020 37121.98 35982.07 38261.90
En el pronóstico realizado anteriormente, se puede observar que a pesar de haber puntos más bajos en la producción en los próximos meses (causado probablemente por tendencias de estacionalidad), se espera que la tendencia sea positiva.
Actividad Finanzas Corporativas
Información disponible
Con la función finreportr podemos obtener la siguiente información:
- CompnayInfo() = Brinda información general como nombre, ubicación, ZIP, etc.
- AnnualReports() = Brinda el nombre, fecha y número de acceso.
- GetIncome() = Brinda el Estado de Resultados.
- GetBalanceSheet() = Brinda el Balance General.
- GetCashFlow() = Brinda el Flujo de Efectivo.
## company CIK SIC state state.inc FY.end street.address
## 1 JPMORGAN CHASE & CO 0000019617 6021 NY DE 1231 383 MADISON AVENUE
## city.state
## 1 NEW YORK NY 10017
## filing.name filing.date accession.no
## 1 20-F/A 2024-02-23 0001193125-24-044480
## 2 20-F 2023-07-21 0000950170-23-033752
## 3 20-F 2022-07-26 0001104659-22-082622
## 4 20-F 2021-07-27 0001104659-21-096092
## 5 20-F 2020-07-09 0001104659-20-082409
## 6 20-F 2019-06-05 0001047469-19-003492
## 7 20-F 2018-07-27 0001047469-18-005257
## 8 20-F 2017-06-15 0001047469-17-004019
## 9 20-F 2016-05-24 0001047469-16-013400
## 10 20-F 2015-06-25 0001047469-15-005768
Análisis Financiero de Empresa
La empresa seleccionada por el equipo 5 para llevar a cabo este análisis financiero fue Netflix. Los años que se extraerán para llevar a cabo este pronóstico son 2015 y 2018, para así obtener los datos de 6 años a partir del 2012.
Crear base de datos y serie de tiempo
En esta parte se crearán dos series de tiempo usando las métricas de marketing expense y revenue, con el fin de comparar los pronósticos de ambas métricas y ver si existe alguna relación entre las variables.
Selección métricas
options(HTTPUserAgent = "a a@gmail.com")
netflix18<- GetIncome("NFLX", 2018)
netflix15<- GetIncome("NFLX", 2015)
netflix15$Metric<- as.factor(netflix15$Metric)
netflix18$Metric<- as.factor(netflix18$Metric)
head(netflix15)## Metric Units Amount startDate endDate
## 1 Revenues usd 3609282000 2012-01-01 2012-12-31
## 2 Revenues usd 1023961000 2013-01-01 2013-03-31
## 3 Revenues usd 1069372000 2013-04-01 2013-06-30
## 4 Revenues usd 1105999000 2013-07-01 2013-09-30
## 5 Revenues usd 1175230000 2013-10-01 2013-12-31
## 6 Revenues usd 4374562000 2013-01-01 2013-12-31
## Metric Units Amount startDate endDate
## 1 Revenues usd 6779511000 2015-01-01 2015-12-31
## 2 Revenues usd 1957736000 2016-01-01 2016-03-31
## 3 Revenues usd 2105204000 2016-04-01 2016-06-30
## 4 Revenues usd 2290188000 2016-07-01 2016-09-30
## 5 Revenues usd 2477541000 2016-10-01 2016-12-31
## 6 Revenues usd 8830669000 2016-01-01 2016-12-31
Selección marketing expense
marketing_netflix1 <- netflix15[netflix15$Metric == "Marketing Expense",]
marketing_netflix2 <- netflix18[netflix18$Metric== "Marketing Expense",]
marketing <- rbind(marketing_netflix1, marketing_netflix2)
marketing$Amount<- as.numeric(marketing$Amount)
head(marketing)## Metric Units Amount startDate endDate
## 15 Marketing Expense usd 439208000 2012-01-01 2012-12-31
## 16 Marketing Expense usd 469942000 2013-01-01 2013-12-31
## 17 Marketing Expense usd 607186000 2014-01-01 2014-12-31
## 151 Marketing Expense usd 824092000 2015-01-01 2015-12-31
## 161 Marketing Expense usd 991078000 2016-01-01 2016-12-31
## 171 Marketing Expense usd 1278022000 2017-01-01 2017-12-31
## Time Series:
## Start = 2012
## End = 2017
## Frequency = 1
## [1] 439208000 469942000 607186000 824092000 991078000 1278022000
Selección revenues
revenue_netflix1 <- netflix15[netflix15$Metric == "Revenues",]
revenue_netflix2<- netflix18[netflix18$Metric== "Revenues",]
revenue<- rbind(revenue_netflix1, revenue_netflix2)
revenue$Amount<- as.numeric(revenue$Amount)
revenue <- revenue[-c(2:5, 7:10,13:16, 18:21),]
head(revenue)## Metric Units Amount startDate endDate
## 1 Revenues usd 3609282000 2012-01-01 2012-12-31
## 6 Revenues usd 4374562000 2013-01-01 2013-12-31
## 11 Revenues usd 5504656000 2014-01-01 2014-12-31
## 12 Revenues usd 6779511000 2015-01-01 2015-12-31
## 17 Revenues usd 8830669000 2016-01-01 2016-12-31
## 22 Revenues usd 11692713000 2017-01-01 2017-12-31
## Time Series:
## Start = 2012
## End = 2017
## Frequency = 1
## [1] 3609282000 4374562000 5504656000 6779511000 8830669000 11692713000
Crear modelo ARIMA
Modelo marketing expense
## Series: marketing
## ARIMA(0,1,0) with drift
##
## Coefficients:
## drift
## 167762800
## s.e. 38132573
##
## sigma^2 = 9.082e+15: log likelihood = -98.4
## AIC=200.8 AICc=206.8 BIC=200.02
## Series: marketing
## ARIMA(0,1,0) with drift
##
## Coefficients:
## drift
## 167762800
## s.e. 38132573
##
## sigma^2 = 9.082e+15: log likelihood = -98.4
## AIC=200.8 AICc=206.8 BIC=200.02
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 45240.85 77811930 56153374 -3.152125 8.268978 0.3347189 0.06935673
Modelo revenue
## Series: revenue
## ARIMA(0,2,0)
##
## sigma^2 = 3.536e+17: log likelihood = -86.49
## AIC=174.98 AICc=176.98 BIC=174.37
## Series: revenue
## ARIMA(0,2,0)
##
## sigma^2 = 3.536e+17: log likelihood = -86.49
## AIC=174.98 AICc=176.98 BIC=174.37
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 349207831 485496286 350251542 4.076958 4.100816 0.2166478
## ACF1
## Training set 0.3276528
Al analizar y utilizar los modelos seleccionados para llevar a cabo los pronósticos, se tiene que tomar en cuenta que el RMSE resultó elevado en el caso de ambos modelos estimados. Esto podría indicar que no se está prediciendo de manera precisa con estos modelos.
Generar el pronóstico
Pronóstico marketing expense
## Point Forecast Lo 95 Hi 95
## 2018 1445784800 1259000698 1632568902
## 2019 1613547600 1349394990 1877700210
## 2020 1781310400 1457790845 2104829955
## 2021 1949073200 1575504996 2322641404
## 2022 2116836000 1699174051 2534497949
En el pronóstico de la métrica marketing expense se puede observar un crecimiento positivo, ligeramente exponencial. Observando más a detalle los datos, se pronostica que para 2022 haya un incremento de 78.65% en el gasto dirigido a mercadotecnia.
Pronóstico revenue
## Point Forecast Lo 95 Hi 95
## 2018 14554757000 13389344605 15720169395
## 2019 17416801000 14810859663 20022742337
## 2020 20278845000 15918271104 24639418896
## 2021 23140889000 16757662426 29524115574
## 2022 26002933000 17360003361 34645862639
En el pronóstico de la métrica revenue se puede observar un crecimiento positivo lineal. Observando más a detalle los datos, se pronostica que para 2022 haya un incremento de 46.41% en los ingresos de la empresa.
Estos pronósticos nos muestran a grandes rasgos que los ingresos de Netflix incrementan, a medida que se invierte más en mercadotecnia. Sin embargo, hay que aclarar que esto necesariamente refleja correlación o causalidad, pero se podría comprobar con otras herramientas.