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

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 negativa en los precios de cierre de alpek desde principios de aƱo.

Figura 1. Precio de cierre de alpek

Fuente: Elaboración propia con datos de Yahoo Finance[^YF]

Rendimiento

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.

Noticia: https://www.elfinanciero.com.mx/empresas/petroquimica-alpek-y-automotriz-nemak-meten-reversa-a-flujo-operativo-de-alfa-en-3t19

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.

Figura 2. Grafica de rendimientos

## Don't know how to automatically pick scale for object of type xts/zoo. Defaulting to continuous.
Fuente: Elaboración propia con datos de Yahoo Finance[^YF]

Los graficos Q-Q e Histogramas a niveles y en rendimientos

Figura 3,4 Graficos Q-Q

##           ALPEKA.MX
## ALPEKA.MX         1
##           ALPEKA.MX
## ALPEKA.MX         1

Fuente: Elaboración propia con datos de Yahoo Finance[^YF]

¿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).

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

[1]http://www.alpek.com/es/our-companies.html

[2]https://www.bmv.com.mx/es/emisoras/perfil/ALPEK-5057