Librerías

library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

Ejemplo. Producción

Contexto

Una serie de tiempo es una colección de observaciones sobre un determinado fenómeno efectuadas en momentos de tiempo sucesivos, usualmente equispaciados.

Ejemplos de series de tiempo: 1. Precio de acciones 2. Niveles de inventario 3. Rotación de personal 4. Ventas 5. PIB (GDP)

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)

# TRIMESTRAL
st_produccion <- ts(data = produccion, start = c(2020, 1), frequency = 4)
# En este caso, la serie de tiempo inicia en 2020, en el 1° trimestre

# MENSUAL
st_produccion <- ts(data = produccion, start = c(2020, 1), frequency = 12)
# En este caso, la serie de tiempo inicia en 2020, en el 1° mes

# MENSUAL (iniciando en otro mes)
st_produccion <- ts(data = produccion, start = c(2020, 8), frequency = 12)
# En este caso, la serie de tiempo inicia en 2020, en el 8° mes

# ANUAL
st_produccion <- ts(data = produccion, start = c(2020), frequency = 1)
# En este caso, la serie de tiempo inicia en 2020

Crear el modelo ARIMA

ARIMA significa Modelo Autorregresivo Integrado de Promedio Móvil, en inglés.

library(forecast)

# Serie trimestral (igual que en clase)
produccion <- c(50, 53, 55, 57, 55, 60)
st_produccion <- ts(produccion, start = c(2020, 1), frequency = 4)

# ARIMA estacional: (0,0,0)(0,1,0)[4] con drift
modelo_produccion <- auto.arima(
  st_produccion,
  D = 1, seasonal = TRUE,
  stepwise = FALSE, approximation = FALSE,
  allowmean = TRUE, allowdrift = TRUE
)

modelo_produccion
## Series: st_produccion 
## 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

Generar el pronóstico

# Si no nos dicen otra cosa, el nivel de confiabilidad es 95%.
# Los periodos a pronosticar es h.
pronostico_produccion <- forecast(modelo_produccion, level = c(95), h = 5)
plot(pronostico_produccion)

## Ejercicio 1. México rumbo al 2050 En equipos de 2 o 3, seleccionar un estado de México, obtener los datos históricos de su población, generar un pronóstico hasta 2050.

Crear la serie de tiempo:

poblacion <- c(720753,906063,1229576,1757530,3050442,4870876,6874165,8831079,8235744,8605239,8851080,9209944)
st_poblacion <- ts(data=poblacion, start = c(1910), frequency = .1) #En este caso la serie inicia en 1910 y va a ser anualmente
modelo_poblacion <- auto.arima(st_poblacion, D=1) # D: diferenciacion estacional
modelo_poblacion
## Series: st_poblacion 
## ARIMA(0,1,0) with drift 
## 
## Coefficients:
##          drift
##       771744.6
## s.e.  246886.1
## 
## sigma^2 = 7.375e+11:  log likelihood = -165.38
## AIC=334.76   AICc=336.26   BIC=335.56
summary(modelo_poblacion)
## Series: st_poblacion 
## ARIMA(0,1,0) with drift 
## 
## Coefficients:
##          drift
##       771744.6
## s.e.  246886.1
## 
## sigma^2 = 7.375e+11:  log likelihood = -165.38
## AIC=334.76   AICc=336.26   BIC=335.56
## 
## Training set error measures:
##                     ME     RMSE      MAE       MPE     MAPE     MASE      ACF1
## Training set -4.249297 783937.7 664432.7 -6.400298 18.05876 0.126273 0.3933874

Crear el pronóstico:

pronostico_poblacion <- forecast(modelo_poblacion, level=c(95), h=3)
#Si no nos dicen otra cosa, el nivel de confiabilidad es 95%. Los periodos a pronosticar es h.
pronostico_poblacion
##      Point Forecast   Lo 95    Hi 95
## 2030        9981689 8298548 11664829
## 2040       10753433 8373114 13133753
## 2050       11525178 8609894 14440462
plot(pronostico_poblacion)

Ejercicio 2. Aplicación de Shiny

Agregar una pestaña en la aplicación de Shiny con el ejercicio México rumbo al 2050. En el menú se debe seleccionar la cantidad de años a pronosticar y el nivel de confiabilidad.

Ejercicio 3. Reflexion de Mis Materias

1.Yo me acuerdo que fue una introducción a los negocios, teoría, KPIs y principalmente cómo hacer análisis FODA.

2.Como crear un portafolio de inversión y flujos de efectivo, tambien amortizaciónes y el concepto del interés.

  1. Modelos estadísticos básicos y fórmulas

  2. Como comunicarse en los negocios y como sentirse comodo frente a la cámara.

5.Como funciona el mundo de la publicidad y las ventas, también análisis

6.Como crear flujos de efectivo para así poder decidir si invertir o no basado en indicadores como el WACC, VPN, TIR así como también escenarios pesimista, neutral y optimista.

7.Aprendí a programar por primera vez

  1. Aprendí los conceptos de aglomerados, clustering y redes neuronales, muy útil para poder sacar información valiosa y separarla del conjunto de datos.

9.Semana TEC de Finanzas, ya que tenía mucho interés en el tema y hice mi portafolio de inversion, la mas pesada pero fue voluntaria.

10.Semestre TEC de prácticas laborales donde aprendí a aplicar lo que aprendí al mundo laboral.

Actividad 2. Hershey’s

library(forecast)

library(forecast) library(readxl)

Leer los datos desde Excel

library(readxl)
Ventas <- read_excel("Ventas_Históricas_Lechitas.xlsx")
## New names:
## • `` -> `...1`
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...5`
## • `` -> `...6`

Convertir a serie de tiempo mensual

st_ventas <- ts(data = ventas, start = c(2017, 1), frequency = 12)

Crear el modelo ARIMA

modelo_ventas <- auto.arima(st_ventas) modelo_ventas summary(modelo_ventas)

Generar el pronóstico

pronostico_ventas <- forecast(modelo_ventas, level = c(95), h = 12) pronostico_ventas plot(pronostico_ventas)

##Link de App: https://francord.shinyapps.io/clasestabs/

LS0tDQp0aXRsZTogIkFjdGl2aWRhZCAyIHNlcmllcyBkZSB0aWVtcG8iDQphdXRob3I6ICJMdWlzIEZlbGlwZSBGcmFuY28gUm9kcsOtZ3VleiINCmRhdGU6ICIyMDI1LTA4LTE0Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IFRSVUUNCiAgICB0b2NfZmxvYXQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFDQogICAgdGhlbWU6IGNlcnVsZWFuDQotLS0NCg0KIVtdKGh0dHBzOi8vYXByZW5kZWNvbmVsaS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjAvMDUvQWRvYmVTdG9ja18zMDAxNjcxNjItc2NhbGVkLmpwZWcpDQoNCg0KIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPiBMaWJyZXLDrWFzIDwvc3Bhbj4NCg0KYGBge3J9DQoNCmxpYnJhcnkoZm9yZWNhc3QpDQoNCmBgYA0KDQojIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+IEVqZW1wbG8uIFByb2R1Y2Npw7NuIDwvc3Bhbj4NCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gQ29udGV4dG8gPC9zcGFuPg0KDQpVbmEgKnNlcmllIGRlIHRpZW1wbyogZXMgdW5hIGNvbGVjY2nDs24gZGUgb2JzZXJ2YWNpb25lcyBzb2JyZSB1biBkZXRlcm1pbmFkbw0KZmVuw7NtZW5vIGVmZWN0dWFkYXMgZW4gbW9tZW50b3MgZGUgdGllbXBvIHN1Y2VzaXZvcywgdXN1YWxtZW50ZQ0KZXF1aXNwYWNpYWRvcy4NCg0KRWplbXBsb3MgZGUgc2VyaWVzIGRlIHRpZW1wbzoNCjEuIFByZWNpbyBkZSBhY2Npb25lcw0KMi4gTml2ZWxlcyBkZSBpbnZlbnRhcmlvDQozLiBSb3RhY2nDs24gZGUgcGVyc29uYWwNCjQuIFZlbnRhcw0KNS4gUElCIChHRFApDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+IENyZWFyIGxhIHNlcmllIGRlIHRpZW1wbyA8L3NwYW4+DQpFamVtcGxvOiBMb3Mgc2lndWllbnRlcyBkYXRvcyBkZSBwcm9kdWNjacOzbiB0cmltZXN0cmFsIA0KaW5pY2lhbiBlbiBlbCBwcmltZXIgdHJpbWVzdHJlIGRlIDIwMjAuIFNlIGJ1c2NhIA0KcHJvbm9zdGljYXIgbGEgcHJvZHVjY2nDs24gZGUgbG9zIHNpZ3VpZW50ZXMgNSB0cmltZXN0cmVzLg0KDQpgYGB7cn0NCnByb2R1Y2Npb24gPC0gYyg1MCwgNTMsIDU1LCA1NywgNTUsIDYwKQ0KDQojIFRSSU1FU1RSQUwNCnN0X3Byb2R1Y2Npb24gPC0gdHMoZGF0YSA9IHByb2R1Y2Npb24sIHN0YXJ0ID0gYygyMDIwLCAxKSwgZnJlcXVlbmN5ID0gNCkNCiMgRW4gZXN0ZSBjYXNvLCBsYSBzZXJpZSBkZSB0aWVtcG8gaW5pY2lhIGVuIDIwMjAsIGVuIGVsIDHCsCB0cmltZXN0cmUNCg0KIyBNRU5TVUFMDQpzdF9wcm9kdWNjaW9uIDwtIHRzKGRhdGEgPSBwcm9kdWNjaW9uLCBzdGFydCA9IGMoMjAyMCwgMSksIGZyZXF1ZW5jeSA9IDEyKQ0KIyBFbiBlc3RlIGNhc28sIGxhIHNlcmllIGRlIHRpZW1wbyBpbmljaWEgZW4gMjAyMCwgZW4gZWwgMcKwIG1lcw0KDQojIE1FTlNVQUwgKGluaWNpYW5kbyBlbiBvdHJvIG1lcykNCnN0X3Byb2R1Y2Npb24gPC0gdHMoZGF0YSA9IHByb2R1Y2Npb24sIHN0YXJ0ID0gYygyMDIwLCA4KSwgZnJlcXVlbmN5ID0gMTIpDQojIEVuIGVzdGUgY2FzbywgbGEgc2VyaWUgZGUgdGllbXBvIGluaWNpYSBlbiAyMDIwLCBlbiBlbCA4wrAgbWVzDQoNCiMgQU5VQUwNCnN0X3Byb2R1Y2Npb24gPC0gdHMoZGF0YSA9IHByb2R1Y2Npb24sIHN0YXJ0ID0gYygyMDIwKSwgZnJlcXVlbmN5ID0gMSkNCiMgRW4gZXN0ZSBjYXNvLCBsYSBzZXJpZSBkZSB0aWVtcG8gaW5pY2lhIGVuIDIwMjANCg0KDQpgYGANCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+IENyZWFyIGVsIG1vZGVsbyBBUklNQSA8L3NwYW4+DQoqKkFSSU1BKiogc2lnbmlmaWNhIE1vZGVsbyBBdXRvcnJlZ3Jlc2l2byBJbnRlZ3JhZG8gZGUgUHJvbWVkaW8gTcOzdmlsLCBlbiBpbmdsw6lzLg0KDQpgYGB7cn0NCg0KbGlicmFyeShmb3JlY2FzdCkNCg0KIyBTZXJpZSB0cmltZXN0cmFsIChpZ3VhbCBxdWUgZW4gY2xhc2UpDQpwcm9kdWNjaW9uIDwtIGMoNTAsIDUzLCA1NSwgNTcsIDU1LCA2MCkNCnN0X3Byb2R1Y2Npb24gPC0gdHMocHJvZHVjY2lvbiwgc3RhcnQgPSBjKDIwMjAsIDEpLCBmcmVxdWVuY3kgPSA0KQ0KDQojIEFSSU1BIGVzdGFjaW9uYWw6ICgwLDAsMCkoMCwxLDApWzRdIGNvbiBkcmlmdA0KbW9kZWxvX3Byb2R1Y2Npb24gPC0gYXV0by5hcmltYSgNCiAgc3RfcHJvZHVjY2lvbiwNCiAgRCA9IDEsIHNlYXNvbmFsID0gVFJVRSwNCiAgc3RlcHdpc2UgPSBGQUxTRSwgYXBwcm94aW1hdGlvbiA9IEZBTFNFLA0KICBhbGxvd21lYW4gPSBUUlVFLCBhbGxvd2RyaWZ0ID0gVFJVRQ0KKQ0KDQptb2RlbG9fcHJvZHVjY2lvbg0KDQpgYGANCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+IEdlbmVyYXIgZWwgcHJvbsOzc3RpY28gPC9zcGFuPg0KDQpgYGB7cn0NCg0KIyBTaSBubyBub3MgZGljZW4gb3RyYSBjb3NhLCBlbCBuaXZlbCBkZSBjb25maWFiaWxpZGFkIGVzIDk1JS4NCiMgTG9zIHBlcmlvZG9zIGEgcHJvbm9zdGljYXIgZXMgaC4NCnByb25vc3RpY29fcHJvZHVjY2lvbiA8LSBmb3JlY2FzdChtb2RlbG9fcHJvZHVjY2lvbiwgbGV2ZWwgPSBjKDk1KSwgaCA9IDUpDQpwbG90KHByb25vc3RpY29fcHJvZHVjY2lvbikNCg0KYGBgDQojIyA8c3BhbiBzdHlsZT0iY29sb3I6Ymx1ZTsiPiBFamVyY2ljaW8gMS4gTcOpeGljbyBydW1ibyBhbCAyMDUwIDwvc3Bhbj4NCkVuIGVxdWlwb3MgZGUgMiBvIDMsIHNlbGVjY2lvbmFyIHVuIGVzdGFkbyBkZSBNw6l4aWNvLCBvYnRlbmVyIGxvcyBkYXRvcyBoaXN0w7NyaWNvcyBkZSBzdSBwb2JsYWNpw7NuLCBnZW5lcmFyIHVuIHByb27Ds3N0aWNvIGhhc3RhIDIwNTAuDQoNCkNyZWFyIGxhIHNlcmllIGRlIHRpZW1wbzoNCmBgYHtyfQ0KcG9ibGFjaW9uIDwtIGMoNzIwNzUzLDkwNjA2MywxMjI5NTc2LDE3NTc1MzAsMzA1MDQ0Miw0ODcwODc2LDY4NzQxNjUsODgzMTA3OSw4MjM1NzQ0LDg2MDUyMzksODg1MTA4MCw5MjA5OTQ0KQ0Kc3RfcG9ibGFjaW9uIDwtIHRzKGRhdGE9cG9ibGFjaW9uLCBzdGFydCA9IGMoMTkxMCksIGZyZXF1ZW5jeSA9IC4xKSAjRW4gZXN0ZSBjYXNvIGxhIHNlcmllIGluaWNpYSBlbiAxOTEwIHkgdmEgYSBzZXIgYW51YWxtZW50ZQ0KbW9kZWxvX3BvYmxhY2lvbiA8LSBhdXRvLmFyaW1hKHN0X3BvYmxhY2lvbiwgRD0xKSAjIEQ6IGRpZmVyZW5jaWFjaW9uIGVzdGFjaW9uYWwNCm1vZGVsb19wb2JsYWNpb24NCnN1bW1hcnkobW9kZWxvX3BvYmxhY2lvbikNCg0KYGBgDQpDcmVhciBlbCBwcm9uw7NzdGljbzoNCmBgYHtyfQ0KcHJvbm9zdGljb19wb2JsYWNpb24gPC0gZm9yZWNhc3QobW9kZWxvX3BvYmxhY2lvbiwgbGV2ZWw9Yyg5NSksIGg9MykNCiNTaSBubyBub3MgZGljZW4gb3RyYSBjb3NhLCBlbCBuaXZlbCBkZSBjb25maWFiaWxpZGFkIGVzIDk1JS4gTG9zIHBlcmlvZG9zIGEgcHJvbm9zdGljYXIgZXMgaC4NCnByb25vc3RpY29fcG9ibGFjaW9uDQpwbG90KHByb25vc3RpY29fcG9ibGFjaW9uKQ0KYGBgDQoNCiMjIDxzcGFuIHN0eWxlPSJjb2xvcjpibHVlOyI+IEVqZXJjaWNpbyAyLiBBcGxpY2FjacOzbiBkZSBTaGlueSA8L3NwYW4+DQpBZ3JlZ2FyIHVuYSBwZXN0YcOxYSBlbiBsYSBhcGxpY2FjacOzbiBkZSBTaGlueSBjb24gZWwgZWplcmNpY2lvIE3DqXhpY28gcnVtYm8gYWwgMjA1MC4gRW4gZWwgbWVuw7ogc2UgZGViZSBzZWxlY2Npb25hciBsYSBjYW50aWRhZCBkZSBhw7FvcyBhIHByb25vc3RpY2FyIHkgZWwgbml2ZWwgZGUgY29uZmlhYmlsaWRhZC4NCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gRWplcmNpY2lvIDMuIFJlZmxleGlvbiBkZSBNaXMgTWF0ZXJpYXMgPC9zcGFuPg0KMS5ZbyBtZSBhY3VlcmRvIHF1ZSBmdWUgdW5hIGludHJvZHVjY2nDs24gYSBsb3MgbmVnb2Npb3MsIHRlb3LDrWEsIEtQSXMgeSBwcmluY2lwYWxtZW50ZSBjw7NtbyBoYWNlciBhbsOhbGlzaXMgRk9EQS4NCg0KMi5Db21vIGNyZWFyIHVuIHBvcnRhZm9saW8gZGUgaW52ZXJzacOzbiB5IGZsdWpvcyBkZSBlZmVjdGl2bywgdGFtYmllbiBhbW9ydGl6YWNpw7NuZXMgeSBlbCBjb25jZXB0byBkZWwgaW50ZXLDqXMuDQoNCjMuIE1vZGVsb3MgZXN0YWTDrXN0aWNvcyBiw6FzaWNvcyB5IGbDs3JtdWxhcyANCg0KNC4gQ29tbyBjb211bmljYXJzZSBlbiBsb3MgbmVnb2Npb3MgeSBjb21vIHNlbnRpcnNlIGNvbW9kbyBmcmVudGUgYSBsYSBjw6FtYXJhLg0KDQo1LkNvbW8gZnVuY2lvbmEgZWwgbXVuZG8gZGUgbGEgcHVibGljaWRhZCB5IGxhcyB2ZW50YXMsIHRhbWJpw6luIGFuw6FsaXNpcw0KDQo2LkNvbW8gY3JlYXIgZmx1am9zIGRlIGVmZWN0aXZvIHBhcmEgYXPDrSBwb2RlciBkZWNpZGlyIHNpIGludmVydGlyIG8gbm8gYmFzYWRvIGVuIGluZGljYWRvcmVzIGNvbW8gZWwgV0FDQywgVlBOLCBUSVIgYXPDrSBjb21vIHRhbWJpw6luIGVzY2VuYXJpb3MgcGVzaW1pc3RhLCBuZXV0cmFsIHkgb3B0aW1pc3RhLg0KDQo3LkFwcmVuZMOtIGEgcHJvZ3JhbWFyIHBvciBwcmltZXJhIHZleiANCg0KOC4gQXByZW5kw60gbG9zIGNvbmNlcHRvcyBkZSBhZ2xvbWVyYWRvcywgY2x1c3RlcmluZyB5IHJlZGVzIG5ldXJvbmFsZXMsIG11eSDDunRpbCBwYXJhIHBvZGVyIHNhY2FyIGluZm9ybWFjacOzbiB2YWxpb3NhIHkgc2VwYXJhcmxhIGRlbCBjb25qdW50byBkZSBkYXRvcy4NCg0KOS5TZW1hbmEgVEVDIGRlIEZpbmFuemFzLCB5YSBxdWUgdGVuw61hIG11Y2hvIGludGVyw6lzIGVuIGVsIHRlbWEgeSBoaWNlIG1pIHBvcnRhZm9saW8gZGUgaW52ZXJzaW9uLCBsYSBtYXMgcGVzYWRhIHBlcm8gZnVlIHZvbHVudGFyaWEuDQoNCjEwLlNlbWVzdHJlIFRFQyBkZSBwcsOhY3RpY2FzIGxhYm9yYWxlcyBkb25kZSBhcHJlbmTDrSBhIGFwbGljYXIgbG8gcXVlIGFwcmVuZMOtIGFsIG11bmRvIGxhYm9yYWwuDQoNCg0KIyMgPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWU7Ij4gQWN0aXZpZGFkIDIuIEhlcnNoZXkncyA8L3NwYW4+DQohW10oaHR0cHM6Ly93d3cuaGVyc2hleWxhbmQubXgvY29udGVudC9kYW0vSGVyc2hleWxhbmRfTWV4aWNvL2VzX214L2NyYWZ0cy9DSFVCLUNvbnRlbnRIdWJEaWFEZWxDaG9jb2xhdGUtRlRPLUZhYnJpY2FkZWNob2NvbGF0ZS1QMS53ZWJwKQ0KbGlicmFyeShmb3JlY2FzdCkNCg0KbGlicmFyeShmb3JlY2FzdCkNCmxpYnJhcnkocmVhZHhsKQ0KDQojIExlZXIgbG9zIGRhdG9zIGRlc2RlIEV4Y2VsDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQpWZW50YXMgPC0gcmVhZF9leGNlbCgiVmVudGFzX0hpc3TDs3JpY2FzX0xlY2hpdGFzLnhsc3giKQ0KDQpgYGANCg0KIyBDb252ZXJ0aXIgYSBzZXJpZSBkZSB0aWVtcG8gbWVuc3VhbA0Kc3RfdmVudGFzIDwtIHRzKGRhdGEgPSB2ZW50YXMsIHN0YXJ0ID0gYygyMDE3LCAxKSwgZnJlcXVlbmN5ID0gMTIpDQoNCiMjIENyZWFyIGVsIG1vZGVsbyBBUklNQQ0KbW9kZWxvX3ZlbnRhcyA8LSBhdXRvLmFyaW1hKHN0X3ZlbnRhcykNCm1vZGVsb192ZW50YXMNCnN1bW1hcnkobW9kZWxvX3ZlbnRhcykNCg0KIyMgR2VuZXJhciBlbCBwcm9uw7NzdGljbw0KcHJvbm9zdGljb192ZW50YXMgPC0gZm9yZWNhc3QobW9kZWxvX3ZlbnRhcywgbGV2ZWwgPSBjKDk1KSwgaCA9IDEyKQ0KcHJvbm9zdGljb192ZW50YXMNCnBsb3QocHJvbm9zdGljb192ZW50YXMpDQoNCiMjTGluayBkZSBBcHA6DQpodHRwczovL2ZyYW5jb3JkLnNoaW55YXBwcy5pby9jbGFzZXN0YWJzLw0KDQoNCg==