Alpek es una empresa petroquĆmica lĆder en AmĆ©rica con operaciones en dos segmentos de negocio: PoliĆ©ster (PTA, PET y fibras de poliĆ©ster) y PlĆ”sticos y QuĆmicos (polipropileno, EPS, caprolactama y otros Especialidades QuĆmicas y QuĆmicos Industriales).
Alpek es uno de los principales productores a nivel mundial de PTA y PET, el fabricante mĆ”s grande de poliestireno expandible en AmĆ©rica y el Ćŗnico productor de caprolactama en MĆ©xico. Alpek opera tambiĆ©n una de las mayores fĆ”bricas de polipropileno en NorteamĆ©rica. Principales productos: Acido TereftĆ”lico (PTA), tereftalato de polietileno (PET), fibras de poliĆ©ster, polipropileno, poliestireno expandible, caprolactama, glicoles, especialidades quĆmicas y quĆmicos industriales.
Historia de la empresa: Inicio en 1994 con cinco empresas: Nylon de MĆ©xico (fibras sintĆ©ticas de nylon), Fibras quĆmicas (fibras sintĆ©ticas de poliĆ©ster), Polioles (PlĆ”sticos y quĆmicos), Petrocel y Tereftalatos mexicanos (materias primas para poliĆ©ster). Actualmente Alpek opera en dos segmentos de negocios: āPoliĆ©sterā (PTA, PET y fibras poliĆ©ster) y āPlĆ”sticos y QuĆmicosā (polipropileno, poliestireno expandible, caprolactama, especialidades quĆmicas y quĆmicos industriales). Alpek es un productor lĆder de PTA y PET a nivel mundial, es el principal productor de poliestireno expandible en AmĆ©rica y el Ćŗnico productor de caprolactama en MĆ©xico. AdemĆ”s, opera una de las plantas mĆ”s grandes de polipropileno en NorteamĆ©rica. En 2015, Alpek registró ingresos por U.S. $5,284 millones y un Flujo de Operación (EBITDA) de U.S. $630 millones. La empresa opera 21 plantas en los Estados Unidos, MĆ©xico, Brasil, Argentina y Chile, y emplea a mĆ”s de 5,000 personas aproximadamente.
En 2017, Alpek registró ingresos por U.S. $5,231 millones y un Flujo de Operación (EBITDA) de U.S. $384 millones. La empresa opera 26 plantas en los Estados Unidos, MĆ©xico, Brasil, Argentina, Chile y CanadĆ”, y emplea a 5,900 personas aproximadamente. Las acciones de Alpek cotizan en la Bolsa Mexicana de Valores con la denominación āALPEKā.
Precio de cierre
El siguiente grafico muestra el comportamiento del precio de cierre de ALPEK.MX apartir del primero de enero del 2013 al 10 de octubre del 2019. Las ventas del segmento de poliester en el tercer trimestre de 2019 cayeron 5% trimestre a trimestre, debido a que el ligero aumento en volumen fue contrarestado por menores precios promedio. Las ventas del 3T19 disminuyeron 18%, a?o contra a?no, principalmente en seguimiento del efecto combinado de un menor volumen desplazado y precios mas bajos de materias primas contra el 3T18. Los precios promedio en pesos de poliester en el 3T19, disminuyeron 6% y 14% en comparacion con el segundo trimestre del 2019 y el 3T18, respectivamente. Por lo cual se puede observar una tendencia en declive en los precios de cierre de alpek desde principios de aƱo. EL precio oscila entre los 23 y 20 en el aƱo 2019, anteriormente se encontraba entre los 31 el precio de cierre, en junio del 2018.
Rendimiento
En el siguiente grafico se muestra el comportamiento de los rendimientos generados por la compaƱia ALPEK.MX apertir del primero de enero 2013 al 09 de octubre del 2019. la empresa ALPEK.MX muestra un rendimiento que oscila entre el -0.5 y el 0.5, incluso hay dias en los que existe un rendimiento de 0.
El rendimiento que muestra la emisora alpek en los ultimos meses se ha mostrado en declive esto debido a que las ventas han disminuido y los precios promedio en pesos de poliester han, disminuido. La firma Alpek tuvo una reducción en su EBITDA de 27%, en comparación con el mismo periodo del aƱo anterior, esto derivado de una caĆda en el precio del petróleo, lo cual llevó a una reducción en el costo de las materias primas que produce como el paraxileno.
Como se puede observar en la grafica la mayor concentracion de volatilidad para la accion fue a principios de aƱo 2019, donde se aprecia una baja constante ya que el precio se encontraba en 26.69 y no se ha podido recuperar encontrando su mayor precio en 22 a lo largo del aƱo, esto es debido a la caida en sus ventas.
Los graficos Q-Q e Histogramas a niveles y en rendimientos
# Correlación entre activos a niveles (precio de cierre)
# Rango de correlaciones
corr_cierre<-cor(PreciosCierre)
corr_cierre
## ALPEKA.MX
## ALPEKA.MX 1
# Correlación entre activos en rendimientos
corr_rend<-cor(rendimientos)
corr_rend
## ALPEKA.MX
## ALPEKA.MX 1
El siguiente histograma muestra una distribucion normal con una sola curva, mesocurtica.
¿Considera que se ajusta a una distribución normal?
En cuanto a la grafica a niveles si se observa una distribucion normal ya que tal cual es empirica pero en el caso de la distribucion en rendimientos hay problemas en las colas ya que no se ajustan.
Pruebas de raĆces unitarias Dickey Fuller Aumentada (DFA), Phillips Perron (PP) y KPSS en las series a niveles y en rendimientos
La serie a niveles; Interpretación
Dickey Fuller Aumentada (DFA): 0.1665> 0.05 no se rechaza la hipotesis nula ( se acepta Ho), la serie es estacionaria.
adf.test(ALPEKA.MX)
##
## Augmented Dickey-Fuller Test
##
## data: ALPEKA.MX
## Dickey-Fuller = -2.9728, Lag order = 11, p-value = 0.1665
## alternative hypothesis: stationary
Phillips Perron (PP): 0.179 > 0.05 No rechazo que la serie tiene raiz unitaria
PP.test(ALPEKA.MX, lshort = TRUE)
##
## Phillips-Perron Unit Root Test
##
## data: ALPEKA.MX
## Dickey-Fuller = -2.9433, Truncation lag parameter = 8, p-value =
## 0.179
KPSS: 0.01 < 0.05 Se rechaza
kpss.test(ALPEKA.MX)
## Warning in kpss.test(ALPEKA.MX): p-value smaller than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: ALPEKA.MX
## KPSS Level = 0.96431, Truncation lag parameter = 8, p-value = 0.01
Los rendimientos; Interpretación
Dickey Fuller Aumentada (DFA): 0.01 < 0.05 se rechaza la hipotesis nula , la serie tiene problemas de raices unitarias, ya que no se sabe lo que pasara maƱana pero se ajusta, dependiendo del dia anterior.
adf.test(ALPEKA.MX_R)
## Warning in adf.test(ALPEKA.MX_R): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: ALPEKA.MX_R
## Dickey-Fuller = -11.262, Lag order = 11, p-value = 0.01
## alternative hypothesis: stationary
Phillips Perron (PP): 0.01 < 0.05 Se rechaza que la serie tiene raiz unitaria analizando los rendimientos.
PP.test(ALPEKA.MX_R, lshort = TRUE)
##
## Phillips-Perron Unit Root Test
##
## data: ALPEKA.MX_R
## Dickey-Fuller = -40.315, Truncation lag parameter = 8, p-value =
## 0.01
KPSS:0.1 > 0.05 No se rechaza
kpss.test(ALPEKA.MX_R)
## Warning in kpss.test(ALPEKA.MX_R): p-value greater than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: ALPEKA.MX_R
## KPSS Level = 0.089652, Truncation lag parameter = 8, p-value = 0.1
Pronosticos
## Warning: Removed 1 rows containing missing values (geom_point).
Al aplicar la prueba LJUNG-BOX nos muestra que el mejor ARIMA para la correción del modelo de la empresa es de (o,1,0) con un AIC=2044.42 AICc=2044.42 BIC=2049.86.
fit1<-auto.arima(ALPEKA.MX, seasonal=FALSE) #NOS DA EL MEJOR MODELO ARIMA SEGĆN R
fit1
## Series: ALPEKA.MX
## ARIMA(0,1,0)
##
## sigma^2 estimated as 0.1948: log likelihood=-1021.21
## AIC=2044.42 AICc=2044.42 BIC=2049.86
#Revisa autocorrelación en residuales y aplica prueba de Ljung Box
#H0: Los residuales se distribuyen normalmente
checkresiduals(fit1)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)
## Q* = 12.866, df = 10, p-value = 0.2313
##
## Model df: 0. Total lags used: 10
#GrÔfico del pronóstico
fit1 %>% forecast(h=12) %>% autoplot(200)
#Muestra los valores obtenidos por el pronóstico
forecast(fit1, h=12)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 1701 21.83 21.26436 22.39564 20.96493 22.69507
## 1702 21.83 21.03007 22.62993 20.60661 23.05339
## 1703 21.83 20.85028 22.80972 20.33165 23.32835
## 1704 21.83 20.69872 22.96128 20.09986 23.56014
## 1705 21.83 20.56519 23.09481 19.89564 23.76436
## 1706 21.83 20.44447 23.21553 19.71102 23.94898
## 1707 21.83 20.33346 23.32654 19.54124 24.11876
## 1708 21.83 20.23013 23.42987 19.38321 24.27679
## 1709 21.83 20.13308 23.52692 19.23479 24.42521
## 1710 21.83 20.04129 23.61871 19.09441 24.56559
## 1711 21.83 19.95399 23.70601 18.96089 24.69911
## 1712 21.83 19.87057 23.78943 18.83331 24.82669
#h incorpora el nĆŗmero de dĆas que quiero pronósticas
#en autoplot pongo a partir de que datos quiero que grafique la muestra
#Comprobar estabilidad y estacionariedad del modelo con raĆces invertidas
autoplot(fit1, title = "Raices invertidas sobre AR y MA")
#Muestra criterio de información
fit1[["aic"]]
## [1] 2044.421
#-------------------------propuesta 1--------------------------#
fit_chido = arima(ALPEKA.MX, order=c(0,1,0))
fit_chido
##
## Call:
## arima(x = ALPEKA.MX, order = c(0, 1, 0))
##
##
## sigma^2 estimated as 0.1948: log likelihood = -1021.21, aic = 2044.42
checkresiduals(fit_chido)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)
## Q* = 12.866, df = 10, p-value = 0.2313
##
## Model df: 0. Total lags used: 10
fit_chido %>% forecast(h=12) %>% autoplot(200)
forecast(fit_chido, h=12)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 1701 21.83 21.26436 22.39564 20.96493 22.69507
## 1702 21.83 21.03007 22.62993 20.60661 23.05339
## 1703 21.83 20.85029 22.80971 20.33166 23.32834
## 1704 21.83 20.69872 22.96128 20.09986 23.56014
## 1705 21.83 20.56520 23.09480 19.89565 23.76435
## 1706 21.83 20.44448 23.21552 19.71102 23.94898
## 1707 21.83 20.33346 23.32654 19.54124 24.11876
## 1708 21.83 20.23013 23.42987 19.38322 24.27678
## 1709 21.83 20.13309 23.52691 19.23479 24.42521
## 1710 21.83 20.04130 23.61870 19.09441 24.56559
## 1711 21.83 19.95399 23.70601 18.96089 24.69911
## 1712 21.83 19.87057 23.78943 18.83332 24.82668
autoplot(fit_chido, title = "Raices invertidas sobre AR y MA")
#Muestra criterio de información
fit_chido[["aic"]]
## [1] 2044.421
#-------------------------propuesta 2--------------------------#
fit_chidote = arima(ALPEKA.MX, order=c(0,1,0))
fit_chidote
##
## Call:
## arima(x = ALPEKA.MX, order = c(0, 1, 0))
##
##
## sigma^2 estimated as 0.1948: log likelihood = -1021.21, aic = 2044.42
checkresiduals(fit_chidote)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)
## Q* = 12.866, df = 10, p-value = 0.2313
##
## Model df: 0. Total lags used: 10
fit_chidote %>% forecast(h=12) %>% autoplot(200)
forecast(fit_chidote, h=12)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 1701 21.83 21.26436 22.39564 20.96493 22.69507
## 1702 21.83 21.03007 22.62993 20.60661 23.05339
## 1703 21.83 20.85029 22.80971 20.33166 23.32834
## 1704 21.83 20.69872 22.96128 20.09986 23.56014
## 1705 21.83 20.56520 23.09480 19.89565 23.76435
## 1706 21.83 20.44448 23.21552 19.71102 23.94898
## 1707 21.83 20.33346 23.32654 19.54124 24.11876
## 1708 21.83 20.23013 23.42987 19.38322 24.27678
## 1709 21.83 20.13309 23.52691 19.23479 24.42521
## 1710 21.83 20.04130 23.61870 19.09441 24.56559
## 1711 21.83 19.95399 23.70601 18.96089 24.69911
## 1712 21.83 19.87057 23.78943 18.83332 24.82668
autoplot(fit_chidote, title = "Raices invertidas sobre AR y MA")
#Muestra criterio de información
fit_chidote[["aic"]]
## [1] 2044.421
#----- ARIMAS ESTACIONALES------#
#Modelo original
ALPEKA.MX %>% diff() %>% ggtsdisplay(main="Función de Autocorrelación (MA) y Función de Autocorrelación parcial (AR)")
## Warning: Removed 1 rows containing missing values (geom_point).
fit_s = arima(ALPEKA.MX, order = c(0,1,0),
seasonal = list(order = c(0,1,0), period = 230))
fit_s
##
## Call:
## arima(x = ALPEKA.MX, order = c(0, 1, 0), seasonal = list(order = c(0, 1, 0),
## period = 230))
##
##
## sigma^2 estimated as 0.3877: log likelihood = -1392.13, aic = 2786.26
checkresiduals(fit_s)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)(0,1,0)[230]
## Q* = 15.607, df = 10, p-value = 0.1115
##
## Model df: 0. Total lags used: 10
fit_s %>% forecast(h=15) %>% autoplot(200)
forecast(fit_s, h=3)
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 1701 21.35 20.55204 22.14795 20.12963 22.57036
## 1702 21.47 20.34152 22.59848 19.74414 23.19586
## 1703 21.87 20.48790 23.25210 19.75626 23.98373
fit_s[["aic"]]
## [1] 2786.261
Sarima
## Warning in kpss.test(ALPEKA.MX2): p-value smaller than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: ALPEKA.MX2
## KPSS Level = 0.90737, Truncation lag parameter = 3, p-value = 0.01
##
## Call:
## arima(x = ALPEKA.MX2, order = c(0, 1, 0), seasonal = list(order = c(1, 1, 1),
## period = 12))
##
## Coefficients:
## sar1 sma1
## -0.0335 -0.4225
## s.e. 0.4273 0.4405
##
## sigma^2 estimated as 2919068: log likelihood = -586.27, aic = 1178.54
## $pred
## Time Series:
## Start = 80
## End = 99
## Frequency = 1
## [1] 40892.84 40563.75 37271.40 35310.35 35993.36 37533.16 36133.34
## [8] 36331.63 37721.88 35680.14 36852.10 36303.63 36327.35 36007.83
## [15] 32639.49 30670.11 31327.16 32894.01 31502.08 31709.05
##
## $se
## Time Series:
## Start = 80
## End = 99
## Frequency = 1
## [1] 1708.554 2416.260 2959.302 3417.107 3820.442 4185.085 4520.400
## [8] 4832.504 5125.640 5402.894 5666.599 5918.567 6479.898 6996.336
## [15] 7477.189 7928.934 8356.293 8762.835 9151.323 9523.977
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)(1,1,1)[12]
## Q* = 10.065, df = 8, p-value = 0.2605
##
## Model df: 2. Total lags used: 10
## [1] 1178.536
## ME RMSE MAE MPE MAPE MASE
## Training set -22.92562 1561.754 1091.72 -0.07738343 2.435326 0.9166443
## ACF1
## Training set -0.04749816
Realice una breve conclusión indicando su postura de compra con el ARIMA y el SARIMA.
La accion alpek indica un crecimiento negativo en sus proyecciones, por lo cual no compraria una accion en este momento debido a que este va a la baja y no me proyecta el rendimiento esperado en un futuro cercano.
Referencias