2023-04-18

Introducción

Introducción

Objetivos

Objetivos

Objetivo general

Evaluar los modelos de pronóstico ARIMA, Holt-Winters y redes neuronales artificiales con los precios de futuros de aceite de soya para que los compradores y vendedores de este producto tengan una herramienta para la toma de decisiones.

Objetivos

Objetivos específicos

Evaluar los tres métodos estadístico-computacionales de pronóstico de series de tiempo en los datos históricos de los precios del aceite de soya.

Analizar y seleccionar cuál de los modelos pronostica mejor los precios mediante un análisis comparativo de indicadores.

Crear una herramienta de monitoreo y pronóstico para facilitar la comunicación e interpretación de los resultados.

Marco teórico

Marco teórico

Serie de tiempo

Marco teórico

Pronóstico

Marco teórico

Descomposicón de una serie de tiempo

Marco teórico

Notación

\(Y_t =\) valor de una serie en el periodo \(t\)

\(\hat{Y_t} =\) valor pronosticado de la serie en el periodo \(t\)

\(\varepsilon_t=Y_t - \hat{Y_t}\) error de pronostico

Marco teórico

Autocorrelación

\[r_k=\dfrac{\sum_{t=k+1}^{n}(Y_t-\overline{Y})(Y_{t-k}-\overline{Y})}{\sum_{t=1}^{n}(Y_t-\overline{Y})^2}\]

Marco teórico

Medidas de error

\[MAE=\dfrac{1}{n}\sum_{t=1}^{n}|Y_t - \hat{Y_t}|\]

\[MSE=\dfrac{1}{n}\sum_{t=1}^{n}(Y_t - \hat{Y_t})^2\]

\[RMSE=\sqrt{\dfrac{1}{n}\sum_{t=1}^{n}(Y_t - \hat{Y_t})^2}\]

\[MAPE=\dfrac{1}{n}\sum_{t=1}^{n}\dfrac{|Y_t - \hat{Y_t}|}{|Y_t|}\]

\[MPE=\dfrac{1}{n}\sum_{t=1}^{n}\dfrac{(Y_t - \hat{Y_t})}{Y_t}\]

Marco teórico

Modelos ARIMA

Modelos AR(\(p\)):

\[Y_t=\phi_0 + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} +...+ \phi_p Y_{t-p} + \varepsilon_t\]

Modelos MA(\(q\)):

\[Y_t=\mu + \varepsilon_t - \omega_1\varepsilon_{t-1} - \omega_2\varepsilon_{t-2}- ... - \omega_q\varepsilon_{t-q}\]

Modelos ARMA(\(p\),\(q\))

Modelos ARIMA(\(p\),\(d\),\(q\))

Modelos SARIMA(\(p\),\(d\),\(q\))(\(P\),\(D\),\(Q\))[\(m\)]

Marco teórico

Modelos ARIMA

Criterio de información Akeike (AIC)

\[AIC=\ln\hat{\sigma}^2+\dfrac{2}{n}r\]

donde

\(\hat{\sigma}^2=\) Error cuadrático medio.

\(n=\) Número de observaciones.

\(r=\) Número total de parámetros en el modelo ARIMA.

Marco teórico

Redes Neuronales

Marco teórico

Redes Neuronales

Marco teórico

Redes Neuronales

Marco teórico

Modelo Holt-Winters multiplicativo

\[\hat{Y}_{t+h}=(l_t + h b_t)s_{t+h}\]

\(l_t=\alpha( \dfrac{Y_t}{s_{t-m}}) + (1-\alpha)(l_{t-1}+b_{t-1})\)

\(b_t=\beta(l_t-l_{t-1}) + (1-\beta)b_{t-1}\)

\(s_t=\gamma( \dfrac{Y_t}{l_t}) + (1-\gamma)s_{t-m}\)

Resultados principales

Análisis de la serie

Análisis de la serie

Serie

Análisis de la serie

Descomposición

Análisis de la serie

Gráfico de estacionalidad

Estimación de modelos

Estimación de modelos

ARIMA

Estimación de modelos

ARIMA

ndiffs(train)
## [1] 1
nsdiffs(train)
## [1] 0

Estimación de modelos

ARIMA

Estimación de modelos

ARIMA

adf.test(diff(train))
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff(train)
## Dickey-Fuller = -6.7249, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
kpss.test(diff(train))
## 
##  KPSS Test for Level Stationarity
## 
## data:  diff(train)
## KPSS Level = 0.12196, Truncation lag parameter = 5, p-value = 0.1

Estimación de modelos

ARIMA

Estimación de modelos

ARIMA

Estimación de modelos

ARIMA

a1=Arima(train,order=c(0,1,3),seasonal=c(1,0,0))
a2=Arima(train,order=c(0,1,3),seasonal=c(0,0,1))
a3=Arima(train,order=c(0,1,3),seasonal=c(1,0,1))

a4=Arima(train,order=c(3,1,0),seasonal=c(0,0,1))
a5=Arima(train,order=c(3,1,0),seasonal=c(1,0,0))
a6=Arima(train,order=c(3,1,0),seasonal=c(1,0,1))

a7=Arima(train,order=c(3,1,3),seasonal=c(1,0,0))
a8=Arima(train,order=c(3,1,3),seasonal=c(0,0,1))
a9=Arima(train,order=c(3,1,3),seasonal=c(1,0,1))

Estimación de modelos

ARIMA

AIC(a1,a2,a3,a4,a5,a6,a7,a8,a9)
##    df      AIC
## a1  5 1534.074
## a2  5 1531.809
## a3  6 1533.677
## a4  5 1532.050
## a5  5 1534.221
## a6  6 1533.892
## a7  8 1527.494
## a8  8 1524.778
## a9  9 1526.720

Estimación de modelos

ARIMA

a8
## Series: train 
## ARIMA(3,1,3)(0,0,1)[52] 
## 
## Coefficients:
##          ar1      ar2      ar3      ma1     ma2     ma3    sma1
##       0.5997  -0.2645  -0.5609  -0.6977  0.4627  0.3886  0.3407
## s.e.  0.1625   0.1813   0.1504   0.1753  0.1909  0.1700  0.0653
## 
## sigma^2 = 3.742:  log likelihood = -754.39
## AIC=1524.78   AICc=1525.18   BIC=1555.93

Estimación de modelos

ARIMA

a10=auto.arima(train,
               approximation=FALSE,
               stepwise=FALSE,
               allowdrift = FALSE,
               max.P = 1,
               max.Q = 1)
a10
## Series: train 
## ARIMA(4,1,0)(0,0,1)[52] 
## 
## Coefficients:
##           ar1     ar2      ar3      ar4    sma1
##       -0.0651  0.1413  -0.1026  -0.0872  0.3193
## s.e.   0.0525  0.0522   0.0530   0.0534  0.0669
## 
## sigma^2 = 3.842:  log likelihood = -759.7
## AIC=1531.39   AICc=1531.63   BIC=1554.76

Estimación de modelos

ARIMA

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(3,1,3)(0,0,1)[52]
## Q* = 89.505, df = 66, p-value = 0.02871
## 
## Model df: 7.   Total lags used: 73

Estimación de modelos

ARIMA

##             Pron Lo.80 Hi.80 Lo.95 Hi.95
## 2022-12-23 66.15 63.67 68.63 62.36 69.94
## 2022-12-30 66.89 63.55 70.23 61.78 72.00
## 2023-01-06 65.99 61.77 70.21 59.54 72.44
## 2023-01-13 66.92 62.05 71.78 59.47 74.36
## 2023-01-20 67.08 61.66 72.50 58.79 75.36
## 2023-01-27 68.06 62.21 73.90 59.12 77.00
## 2023-02-03 68.24 62.00 74.49 58.70 77.79
## 2023-02-10 69.19 62.55 75.83 59.04 79.34
## 2023-02-17 70.17 63.11 77.23 59.38 80.97
## 2023-02-24 71.53 64.05 79.01 60.09 82.97
## 2023-03-03 71.31 63.43 79.18 59.27 83.34
## 2023-03-10 69.52 61.31 77.73 56.97 82.07
## 2023-03-17 69.79 61.29 78.29 56.79 82.79
## 2023-03-24 69.20 60.42 77.99 55.77 82.63
## 2023-03-31 70.36 61.29 79.44 56.48 84.24

Estimación de modelos

ARIMA

Estimación de modelos

ARIMA

Estimación de modelos

Redes Neuronales

## MLP fit with 5 hidden nodes and 20 repetitions.
## Series modelled in differences: D1.
## Univariate lags: (3,7,9,16,18,19,20,25,27,28,29,35,37,38,41,44,46,48,49,51,52)
## Forecast combined using the median operator.
## MSE: 0.469.

Estimación de modelos

Redes Neuronales

##             Pron
## 2022-12-23 62.94
## 2022-12-30 63.28
## 2023-01-06 68.56
## 2023-01-13 67.39
## 2023-01-20 57.30
## 2023-01-27 67.13
## 2023-02-03 60.06
## 2023-02-10 61.78
## 2023-02-17 68.23
## 2023-02-24 66.84
## 2023-03-03 68.97
## 2023-03-10 62.14
## 2023-03-17 63.76
## 2023-03-24 66.65
## 2023-03-31 63.43

Estimación de modelos

Redes Neuronales

Estimación de modelos

Redes Neuronales

Estimación de modelos

Redes Neuronales

Estimación de modelos

Redes Neuronales

##             Pron
## 2022-12-23 62.53
## 2022-12-30 58.66
## 2023-01-06 58.22
## 2023-01-13 59.83
## 2023-01-20 55.53
## 2023-01-27 56.91
## 2023-02-03 51.21
## 2023-02-10 51.16
## 2023-02-17 50.33
## 2023-02-24 56.78
## 2023-03-03 57.33
## 2023-03-10 55.13
## 2023-03-17 55.15
## 2023-03-24 55.83
## 2023-03-31 50.01

Estimación de modelos

Redes Neuronales

Estimación de modelos

Holt-Winters

## Holt-Winters exponential smoothing with trend and multiplicative seasonal component.
## 
## Call:
## HoltWinters(x = train, seasonal = "multiplicative")
## 
## Smoothing parameters:
##  alpha: 0.8801211
##  beta : 0
##  gamma: 1
## 
## Coefficients:
##            [,1]
## a   61.45092644
## b    0.01120482
## s1   1.06735077
## s2   1.07802075
## s3   1.06323514
## s4   1.06058322
## s5   1.04630881
## s6   1.04550431
## s7   1.01531628
## s8   0.99464726
## s9   1.01102819
## s10  1.00280407
## s11  0.97684593
## s12  0.96061237
## s13  0.96720968
## s14  0.93681863
## s15  0.94439235
## s16  0.95147301
## s17  0.95461477
## s18  0.97332767
## s19  0.95524024
## s20  0.97267208
## s21  0.94985071
## s22  0.95077113
## s23  0.95458479
## s24  0.97080545
## s25  0.92818217
## s26  0.95091092
## s27  0.94759788
## s28  0.92939668
## s29  0.94297587
## s30  0.92010033
## s31  0.93257123
## s32  0.94064894
## s33  0.99621633
## s34  0.98211853
## s35  0.99423043
## s36  0.98374386
## s37  0.96855290
## s38  0.99596880
## s39  0.99621487
## s40  0.99953933
## s41  1.01064342
## s42  1.03002130
## s43  1.05961434
## s44  1.05887225
## s45  1.06694372
## s46  1.04207667
## s47  1.06573578
## s48  1.11193263
## s49  1.09927081
## s50  1.10604910
## s51  1.09075354
## s52  1.07077317

Estimación de modelos

Holt-Winters

##             Pron Lo.80 Hi.80 Lo.95 Hi.95
## 2022-12-23 65.60 62.56 68.64 60.95 70.25
## 2022-12-30 66.27 62.20 70.34 60.05 72.49
## 2023-01-06 65.37 60.54 70.20 57.99 72.76
## 2023-01-13 65.22 59.71 70.73 56.79 73.65
## 2023-01-20 64.36 58.29 70.42 55.08 73.63
## 2023-01-27 64.32 57.69 70.94 54.18 74.45
## 2023-02-03 62.47 55.49 69.45 51.80 73.14
## 2023-02-10 61.21 53.86 68.56 49.98 72.45
## 2023-02-17 62.23 54.30 70.16 50.10 74.36
## 2023-02-24 61.74 53.43 70.04 49.03 74.44
## 2023-03-03 60.15 51.62 68.68 47.10 73.20
## 2023-03-10 59.16 50.35 67.97 45.69 72.63
## 2023-03-17 59.58 50.31 68.84 45.41 73.74
## 2023-03-24 57.72 48.34 67.09 43.38 72.05
## 2023-03-31 58.19 48.38 68.01 43.18 73.21

Estimación de modelos

Holt-Winters

Estimación de modelos

Holt-Winters

## 
##  Ljung-Box test
## 
## data:  Residuals from HoltWinters
## Q* = 136.47, df = 73, p-value = 9.748e-06
## 
## Model df: 0.   Total lags used: 73

Comparación de modelos

Comparación de modelos

Tabla

##            ARIMA    RN    HW  REAL
## 2022-12-23 66.15 62.53 65.60 66.40
## 2022-12-30 66.89 58.66 66.27 62.94
## 2023-01-06 65.99 58.22 65.37 63.25
## 2023-01-13 66.92 59.83 65.22 63.15
## 2023-01-20 67.08 55.53 64.36 60.79
## 2023-01-27 68.06 56.91 64.32 60.94
## 2023-02-03 68.24 51.21 62.47 59.04
## 2023-02-10 69.19 51.16 61.21 61.90
## 2023-02-17 70.17 50.33 62.23 62.04
## 2023-02-24 71.53 56.78 61.74 61.39
## 2023-03-03 71.31 57.33 60.15 56.57
## 2023-03-10 69.52 55.13 59.16 57.73
## 2023-03-17 69.79 55.15 59.58 52.17
## 2023-03-24 69.20 55.83 57.72 54.37
## 2023-03-31 70.36 50.01 58.19 55.49

Comparación de modelos

Gráfico

Comparación de modelos

Medidas de error

##           ARIMA       RN        HW
## ME    -8.815694 4.237089 -2.360649
## RMSE  10.140009 5.756702  3.111805
## MAE    8.848979 4.931488  2.558942
## MPE  -15.303344 6.848777 -4.114901
## MAPE  15.353473 8.149510  4.423591

Pronóstico

Pronóstico

Modelo

## Holt-Winters exponential smoothing with trend and multiplicative seasonal component.
## 
## Call:
## HoltWinters(x = soja.ts, seasonal = "multiplicative")
## 
## Smoothing parameters:
##  alpha: 0.8798101
##  beta : 0
##  gamma: 1
## 
## Coefficients:
##            [,1]
## a   58.62124574
## b    0.01120482
## s1   0.95149066
## s2   0.95463718
## s3   0.97335404
## s4   0.95522100
## s5   0.97267481
## s6   0.94983029
## s7   0.95080498
## s8   0.95460066
## s9   0.97078440
## s10  0.92811895
## s11  0.95084081
## s12  0.94765555
## s13  0.92937752
## s14  0.94296181
## s15  0.92014383
## s16  0.93262177
## s17  0.94061876
## s18  0.99614750
## s19  0.98204932
## s20  0.99426640
## s21  0.98374737
## s22  0.96856155
## s23  0.99592566
## s24  0.99620256
## s25  0.99953153
## s26  1.01066802
## s27  1.02997132
## s28  1.05958640
## s29  1.05885860
## s30  1.06696665
## s31  1.04213142
## s32  1.06566633
## s33  1.11185553
## s34  1.09918127
## s35  1.10600577
## s36  1.09082589
## s37  1.07086286
## s38  1.06893825
## s39  1.06978479
## s40  1.06460563
## s41  1.06088246
## s42  1.04323514
## s43  1.04553765
## s44  1.01503266
## s45  1.00255904
## s46  1.01027901
## s47  1.00244937
## s48  0.97015750
## s49  0.96398837
## s50  0.95454299
## s51  0.94340934
## s52  0.94658517

Pronóstico

Tabla

##             Pron Lo.80 Hi.80 Lo.95 Hi.95
## 2022-12-23 65.60 62.56 68.64 60.95 70.25
## 2022-12-30 66.27 62.20 70.34 60.05 72.49
## 2023-01-06 65.37 60.54 70.20 57.99 72.76
## 2023-01-13 65.22 59.71 70.73 56.79 73.65
## 2023-01-20 64.36 58.29 70.42 55.08 73.63
## 2023-01-27 64.32 57.69 70.94 54.18 74.45
## 2023-02-03 62.47 55.49 69.45 51.80 73.14
## 2023-02-10 61.21 53.86 68.56 49.98 72.45
## 2023-02-17 62.23 54.30 70.16 50.10 74.36
## 2023-02-24 61.74 53.43 70.04 49.03 74.44
## 2023-03-03 60.15 51.62 68.68 47.10 73.20
## 2023-03-10 59.16 50.35 67.97 45.69 72.63
## 2023-03-17 59.58 50.31 68.84 45.41 73.74
## 2023-03-24 57.72 48.34 67.09 43.38 72.05
## 2023-03-31 58.19 48.38 68.01 43.18 73.21

Pronóstico

Gráfico

Conclusiones

Conclusiones

Los modelos de Holt-Winters y de Redes Neuronales tuvieron prońosticos muy acertados. Sin embargo, se elije el primero de ellos debido a su sencilles y velocidad de ejecución.

Se construýo un dashboard de monitoreo y prońostico para facilitar la comunicación e interpretación de los resultados.

Para próximas investigaciones se propone el desarrollo de redes neuronales recurrentes del tipo LSTM (Long Short Term Memory), las cuales podrían mejorar la precisión de los pronósticos, aunque se requiere de un amplio manejo del tema para programarlas correctamente.