Principal Series de tiempo
Javier sanchez
Instalación de librerías
2024-02-15
library(datasets)
library(fpp2)
library(fpp3)
library(stats)
library(forecast)
library(psych)
library(car)
library(tseries)
library(tidyverse)
library(imputeTS)
require(reshape)
library(lmtest)
library(stats)
library(ISLR)
library(RCurl)
library(ggplot2)
library(readxl)
library(PerformanceAnalytics)
library(summarytools)
library(gridExtra)
library(corrplot)
library(readxl)
En el análisis de series temporales (ST), el enfoque se ha centrado en
modelos ARIMA univariados, lo que implica que se han considerado modelos
ARIMA y sus derivados aplicados individualmente a cada serie temporal.
Sin embargo, esta limitación no excluye la posibilidad de extender el
análisis a modelos ARIMA multivariados, que involucran dos o más series
temporales.
En el contexto del archivo de Excel "PIB_Banco_Central_Ecuador", que
abarca desde el primer trimestre de 2000 hasta el tercer trimestre de
2019, se disponen de datos relacionados con 19 variables económicas
representando los tres sectores de producción que contribuyen al Producto
Interno Bruto (PIB) de Ecuador.
El proceso de depuración, imputación y detección de datos atípicos, en
caso de existir, se realizará en la base de datos proporcionada,
específicamente en el Análisis Exploratorio de Datos del Sector Primario
(AED). Este enfoque busca configurar la base de datos para su utilización
en análisis de series temporales, asegurando la calidad y coherencia de
los datos en el contexto del sector primario.
Cargar archivos
#[Link]()
data <-
read_excel(""C://Users//ASUS//Downloads//Principal_ST//Principal_ST//PIB_Banco_Central_Ecuador.
xlsx", sheet = "ST",na = "NA")
str(data_1)
tibble [80 × 21] (S3: tbl_df/tbl/[Link])
$ Agricultura
: num [1:80] 634745 611366 602134 608212 694417 ...
$ Acuicultura y pesca de camarón
: num [1:80] 45386 42379 40888 42843 35677 ...
$ Pesca (excepto camarón)
: num [1:80] 45693 50231 46360 51660 45419 ...
$ Petróleo y minas
: num [1:80] 224543 233749 256513 252510 166203 ...
$ Refinación de Petróleo
: num [1:80] 129776 158356 225940 231777 189751 ...
$ Manufactura (excepto refinación de petróleo)
: num [1:80] 733303 818696 883252 918491 962302 ...
$ Suministro de electricidad y agua
: num [1:80] 30943 35209 56894 62151 94268 ...
$ Construcción
: num [1:80] 182545 221729 244717 257179 322710 ...
$ Comercio
: num [1:80] 590756 650579 722533 744484 875810 ...
$ Alojamiento y servicios de comida
: num [1:80] 45397 57811 68812 81689 110803 ...
$ Transporte
: num [1:80] 264568 364157 372880 371625 545405 ...
$ Correo y Comunicaciones
: num [1:80] 59868 64229 67277 70813 134313 ...
$ Actividades de servicios financieros
: num [1:80] 68572 85676 93178 113788 102605 ...
$ Actividades profesionales, técnicas y administrativas
: num [1:80] 209119 244012 277070 297937 352692 ...
$ Enseñanza y Servicios sociales y de salud
: num [1:80] 117432 127019 138909 172032 221584 ...
$ Administración pública, defensa; planes de seguridad social
obligatoria: num [1:80] 52649 220392 314953 382539 352061 ...
$ Servicio doméstico
: num [1:80] 16456 16528 17795 18740 20785 ...
$ Otros Servicios (*)
: num [1:80] 171484 173863 180547 184289 239349 ...
$ TOTAL VAB
: num [1:80] 3623235 4175981 4610652 4862759 5466154 ...
$ OTROS ELEMENTOS DEL PIB (**)
: num [1:80] 195891 226498 296001 327584 437928 ...
$ PIB
: num [1:80] 3819126 4402479 4906653 5190343 5904082 ...
Sector primario:
Dato_s <- data[,c(1,2,3,4)]
str(dato_s)
tibble [80 × 4] (S3: tbl_df/tbl/[Link])
$ Agricultura : num [1:80] 634745 611366 602134 608212
694417 ...
$ Acuicultura y pesca de camarón: num [1:80] 45386 42379 40888 42843
35677 ...
$ Pesca (excepto camarón) : num [1:80] 45693 50231 46360 51660
45419 ...
$ Petróleo y minas : num [1:80] 224543 233749 256513 252510
166203 ...
Imputación
# Existen NA's en mi base de datos?
anyNA(dato_s)
[1] TRUE
# Cuántos existen?
sum([Link](dato_s)) cuatro
[1] 4
# Imputacion con la media, es decir, reemplazamos los datos perdidos NA
por la media
[Link] <- na_mean(dato_s)
a Describir gráfica y numéricamente las variables en estudio
[Link]([Link])
colnames(dato_s.Imputados) <-
c("Agricultura","Acuicultura","Pesca","Petroleo_y_minas")
boxplot([Link],horizontal = T, col = blue ,main = "Sector
primario")
summary(dato_s.Imputados)
Agricultura Acuicultura Pesca Petroleo_y_minas
Min. : 602134 Min. : 28411 Min. : 44684 Min. : 136325
1st Qu.: 811486 1st Qu.: 47869 1st Qu.: 66888 1st Qu.: 707868
Median :1437970 Median : 70722 Median :102304 Median :1342002
Mean :1413828 Mean : 90563 Mean :103460 Mean :1417937
3rd Qu.:2043285 3rd Qu.:126369 3rd Qu.:134647 3rd Qu.:1948675
Max. :2256361 Max. :211432 Max. :161915 Max. :3099026
descr(dato_s.Imputados)
estadistica descriptiva
[Link]
N: 80
Acuicultura Agricultura Pesca
Petroleo_y_minas
----------------- ------------- ------------- ----------- ---------------
---
Mean 90563.38 1413828.27 103460.47
1417936.76
[Link] 50030.59 572043.17 35324.32
909670.17
Min 28411.00 602134.00 44684.00
136325.00
Q1 47041.00 810959.50 66503.00
690307.00
Median 70722.00 1437970.13 102303.50
1342001.50
Q3 126635.00 2046520.00 134980.00
1975877.00
Max 211432.00 2256361.00 161915.00
3099026.00
MAD 52881.38 918849.50 50153.39
966202.27
IQR 78500.00 1231798.25 67758.50
1240807.50
CV 0.55 0.40 0.34
0.64
Skewness 0.61 0.06 -0.24
0.36
[Link] 0.27 0.27 0.27
0.27
Kurtosis -0.76 -1.56 -1.30 -
0.99
[Link] 80.00 80.00 80.00
80.00
[Link] 100.00 100.00 100.00
100.00
b)Gráficos de componentes (tendencia, estacionalidad y aleatoriedad)
Debido a que existe variación en el tiempo en las 4 series de tiempo en función a su
media y varianza, considero que todas son modelos multiplicativos
# Gráfica de decomposición (por trimestre)
plot(decompose(ts([Link]$Agricultura,frequency = 4),type =
"multiplicative"))
plot(decompose(ts([Link]$Acuicultura,frequency = 4),type =
"multiplicative"))
plot(decompose(ts([Link]$Pesca,frequency = 4),type =
"multiplicative"))
plot(decompose(ts([Link]$Petroleo_y_minas,frequency = 4),type =
"multiplicative"))
Analisis
En resumen, se observa que en la serie de tiempo de Agricultura hay indicios de
tendencia ascendente y descendente al final, con estacionalidad no confirmada y
presencia de aleatoriedad. En Acuicultura, también se evidencia una tendencia
ascendente y descendente al final, confirmada estacionalidad y presencia de
aleatoriedad. En Pesca, se nota una tendencia ascendente, estacionalidad no segura y
aleatoriedad. Por último, en Petróleo y Minas se observa una tendencia ascendente y
descendente, estacionalidad no segura y presencia de aleatoriedad.
c) Características (tendencia, estacionalidad y heteroscedasticidad) y
Todas las series de tiempo muestran heterocedasticidad. La tendencia y
estacionalidad son evidentes en el literal b.
d) Modelos (aditivo o multiplicativo) Justifique su selección.
Considero que todas las series de tiempo son multiplicativas, como demuestro en el
literal b
𝑌𝑡 = 𝑇𝑡 ∗ 𝑆𝑡 ∗ 𝐼𝑡
Realizar un estudio en quintiles de la relación de variables de la
matriz de datos considerando el inciso 1
[Link]([Link])
[Link](dato_s.Imputados)
cor([Link])# Matriz de correlacion
Agricultura Acuicultura Pesca Petroleo_y_minas
Agricultura 1.0000000 0.9268881 0.8951502 0.5562804
Acuicultura 0.9268881 1.0000000 0.8253031 0.5296322
Pesca 0.8951502 0.8253031 1.0000000 0.7674490
Petroleo_y_minas 0.5562804 0.5296322 0.7674490 1.0000000
l <- round(cor([Link]),2);l # Matriz de correlacion con 2 cifras
decimales
Agricultura Acuicultura Pesca Petroleo_y_minas
Agricultura 1.00 0.93 0.90 0.56
Acuicultura 0.93 1.00 0.83 0.53
Pesca 0.90 0.83 1.00 0.77
Petroleo_y_minas 0.56 0.53 0.77 1.00
corrplot(l, method= "circle")
3Análisis inferencial: predecir el PIB, desarrollando un modelo ARIMA y/o
derivados, previamente configure los datos definiendo las fechas para que
determine los pronósticos indicados. Aplique la metodología Box-Jenkins que
toma en cuenta:
# Actualizar los datos
Agri <- ts([Link]$Agricultura,end = c(2023,4),frequency = 4)
Acui <- ts([Link]$Acuicultura,end = c(2023,4),frequency = 4)
Pez <- ts([Link]$Pesca,end = c(2023,4),frequency = 4)
Petr <- ts([Link]$Petroleo_y_minas,end = c(2023,4),frequency =
4)
data1 <- [Link](Agri,Acui,Pez,Petr);data1
Agri Acui Pez Petr
1 634745 45386.00 45693.0 224543
2 611366 42379.00 50231.0 233749
3 602134 40888.00 46360.0 256513
4 608212 42843.00 51660.0 252510
5 694417 35677.00 45419.0 166203
6 685989 36007.00 48171.0 174998
7 691706 35697.00 48091.0 182099
8 693776 37387.00 44684.0 136325
9 712344 29525.00 49434.0 162039
10 716477 29357.00 52857.0 214427
11 720378 28411.00 54697.0 233733
12 725922 29471.00 57437.0 221497
13 809906 33768.00 64958.0 335679
14 766746 34112.00 61503.0 246109
15 769141 34752.00 63575.0 320327
16 784513 34510.00 59308.0 383904
17 821418 35356.00 53908.0 516683
18 791437 37251.00 58022.0 574940
19 746388 39839.00 62085.0 655186
20 792703 42295.00 65733.0 616748
21 865034 48696.00 67273.0 800196
22 812013 53996.00 68357.0 891471
23 809690 58170.00 96413.0 1082961
24 903750 63951.00 88014.0 1008227
25 983420 64037.00 84538.0 1261019
26 890436 63144.00 102152.0 1468217
27 904030 69014.00 102133.0 1460435
28 982911 68098.00 89287.0 1128104
29 1042733 54229.00 80410.0 1094971
30 1009183 53214.00 93269.0 1417464
31 1033313 56029.00 100306.0 1536216
32 1089435 59547.00 100444.0 1921473
33 1175474 68846.00 91348.0 2243057
34 1185253 69540.00 109145.0 2761057
35 1239441 74048.00 127268.0 2614673
36 1213289 70416.00 113374.0 1309711
37 1330370 58447.00 97262.0 843420
38 1367609 59045.00 92374.0 1260854
39 1412285 60173.00 97899.0 1445902
40 1462112 62366.00 98223.0 1570581
41 1559707 64085.00 102100.0 1884477
42 1478574 71028.00 102455.0 1885679
43 1462659 77874.00 100243.0 1775112
44 1570217 85175.00 95789.0 2030281
45 1623868 96173.00 105595.0 2474753
46 1634715 105197.00 113064.0 2711035
47 1687046 109391.00 143351.0 2471299
48 1756802 110136.00 126107.0 2805769
49 1655918 113054.00 136268.0 3008341
50 1623187 118043.00 145961.0 2842930
51 1623752 116247.00 150304.0 2855290
52 1661496 114749.00 139823.0 2674259
53 1740048 114691.00 129366.0 2990265
54 1777310 128235.00 156811.0 2892812
55 1816142 130314.00 161915.0 3091849
56 1897202 142399.00 147813.0 2876240
57 1970555 136728.00 147439.0 2992597
58 2005316 149986.00 150226.0 3099026
59 2040049 149410.00 155467.0 2936925
60 2105588 127168.00 146130.0 2238794
61 2133710 110104.00 136013.0 1170104
62 2052991 110373.00 134313.0 1446270
63 2092932 121480.00 131549.0 1128268
64 2126045 102601.00 135647.0 946066
65 2113003 112184.00 144059.0 725428
66 2060929 126102.00 138959.0 996520
67 2104601 129253.00 141653.0 998568
68 2162931 133914.00 145498.0 1079906
69 2150987 154191.00 138324.0 1233192
70 2106686 163732.00 137330.0 1203310
71 2096438 163770.00 131782.0 1213099
72 2178959 178047.00 129785.0 1374292
73 2239662 183062.00 128086.0 1428179
74 2151976 173934.00 124480.0 1519484
75 2154951 180120.00 129598.0 1603632
76 2244333 187941.00 122064.0 1497512
77 2253349 196347.00 126231.0 1507473
78 2256361 195920.00 126158.0 1511401
79 2229939 211432.00 132306.0 1668346
80 1413828 90563.38 103460.5 1417937
Identificación del modelo tentativo dando respuesta a la cuestión ¿Es o
no es estacionaria la ST y observando correlogramas de fas y fap?
ggtsdisplay(data1$Agri)
ggtsdisplay(data1$Acui)
ggtsdisplay(data1$Pez)
ggtsdisplay(data1$Petr)
Se puede evidenciar que con las series de tiempo actualizadas en el trimestre 4 de
2023, con un 𝛼 = 0.05:
• Agricultura:
# Test de Dickey-Fuller para contrastar la estacionariedad
# H0: la ST es no estacionaria
# H1: la ST es estacionaria
[Link](data1$Agri) # La serie no es estacionaria
Warning in [Link](data1$Agri): p-value greater than printed p-value
Augmented Dickey-Fuller Test
data: data1$Agri
Dickey-Fuller = 0.43429, Lag order = 4, p-value = 0.99
alternative hypothesis: stationary
• Acuicultura:
# Test de Dickey-Fuller para contrastar la estacionariedad
# H0: la ST es no estacionaria
# H1: la ST es estacionaria
[Link](data1$Acui) # La serie no es estacionaria
Augmented Dickey-Fuller Test
data: data1$Acui
Dickey-Fuller = -3.4077, Lag order = 4, p-value = 0.06026
alternative hypothesis: stationary
• Pesca:
# Test de Dickey-Fuller para contrastar la estacionariedad
# H0: la ST es no estacionaria
# H1: la ST es estacionaria
[Link](data1$Pez) # La serie no es estacionaria
Augmented Dickey-Fuller Test
data: data1$Pez
Dickey-Fuller = -0.62448, Lag order = 4, p-value = 0.9731
alternative hypothesis: stationary
• Petroleo y minas:
# Test de Dickey-Fuller para contrastar la estacionariedad
# H0: la ST es no estacionaria
# H1: la ST es estacionaria
[Link](data1$Petr) # La serie no es estacionaria
Augmented Dickey-Fuller Test
data: data1$Petr
Dickey-Fuller = -1.7295, Lag order = 4, p-value = 0.6864
alternative hypothesis: stationary
b) Estimación del modelo identificado (Estimación de coeficientes).
El objetivo es predecir la producción futura en el sector de la Pesca (excepto camarón)
en el sector primario. La variable endógena es "Pesca", mientras que las variables
exógenas incluyen "Agricultura", "Acuicultura" y "Petróleo y minería".
modelo <- [Link](data1$Pez,trace = T);modelo
ARIMA(2,1,2)(1,0,1)[4] with drift : Inf
ARIMA(0,1,0) with drift : 1678.773
ARIMA(1,1,0)(1,0,0)[4] with drift : 1675.513
ARIMA(0,1,1)(0,0,1)[4] with drift : 1676.526
ARIMA(0,1,0) : 1677.114
ARIMA(1,1,0) with drift : 1680.094
ARIMA(1,1,0)(2,0,0)[4] with drift : 1675.744
ARIMA(1,1,0)(1,0,1)[4] with drift : 1673.976
ARIMA(1,1,0)(0,0,1)[4] with drift : 1677.37
ARIMA(1,1,0)(2,0,1)[4] with drift : Inf
ARIMA(1,1,0)(1,0,2)[4] with drift : Inf
ARIMA(1,1,0)(0,0,2)[4] with drift : 1676.71
ARIMA(1,1,0)(2,0,2)[4] with drift : 1679.898
ARIMA(0,1,0)(1,0,1)[4] with drift : 1672.719
ARIMA(0,1,0)(0,0,1)[4] with drift : 1676.278
ARIMA(0,1,0)(1,0,0)[4] with drift : 1674.54
ARIMA(0,1,0)(2,0,1)[4] with drift : Inf
ARIMA(0,1,0)(1,0,2)[4] with drift : Inf
ARIMA(0,1,0)(0,0,2)[4] with drift : 1675.665
ARIMA(0,1,0)(2,0,0)[4] with drift : 1674.7
ARIMA(0,1,0)(2,0,2)[4] with drift : 1678.785
ARIMA(0,1,1)(1,0,1)[4] with drift : 1673.461
ARIMA(1,1,1)(1,0,1)[4] with drift : 1674.177
ARIMA(0,1,0)(1,0,1)[4] : 1670.53
ARIMA(0,1,0)(0,0,1)[4] : 1674.388
ARIMA(0,1,0)(1,0,0)[4] : 1672.553
ARIMA(0,1,0)(2,0,1)[4] : Inf
ARIMA(0,1,0)(1,0,2)[4] : Inf
ARIMA(0,1,0)(0,0,2)[4] : 1673.616
ARIMA(0,1,0)(2,0,0)[4] : 1672.57
ARIMA(0,1,0)(2,0,2)[4] : 1676.615
ARIMA(1,1,0)(1,0,1)[4] : 1671.741
ARIMA(0,1,1)(1,0,1)[4] : 1671.248
ARIMA(1,1,1)(1,0,1)[4] : 1672.045
Best model: ARIMA(0,1,0)(1,0,1)[4]
Series: data1$Pez
ARIMA(0,1,0)(1,0,1)[4]
Coefficients:
sar1 sma1
0.9333 -0.8010
s.e. 0.1043 0.1909
sigma^2 = 83257163: log likelihood = -832.1
AIC=1670.21 AICc=1670.53 BIC=1677.32
c) Verificación de su modelo identificado. Contestamos ¿es adecuado?
con AIC/BIC y/o S2
Best model: ARIMA(0,1,0)(1,0,1)[4], es decir: ARIMA(p = 0, d = 1, q = 0)(P = 1,D = 0,Q
= 1)[4]
Donde (p = 0, d = 1, q = 0) es la parte regular, (P = 1,D = 0,Q = 1) parte estacional y [4]
es el patrón estacional
Se tiene un sigma^2 de 83257163, con un AIC de 1670.21 y un BIC de 1677.32
Por lo que se evidencia que el sigma^2 indica la magnitud de la varianza residual en tu
modelo. Cuanto mayor sea este valor, mayor será la dispersión de los datos alrededor
de la línea de ajuste.
d) El Criterio de Información de Akaike (AIC) y el Criterio de Información de
Bayes (BIC) son herramientas para evaluar la calidad del ajuste de un modelo.
En ambos casos, un valor más bajo indica un mejor ajuste del modelo. Estos
criterios son útiles para comparar modelos y seleccionar aquellos que
proporcionan la mejor representación de los datos.
e) Escribir la ecuación del modelo adecuado, se puede guiar
previamente con la función auto,arima()
La ecuación del modelo es: 𝑌𝑡 = 0.9333 ∗ 𝑡𝑡−4 + 0.8010 ∗ 𝑡𝑡−4
e) Finalmente predecir, construir intervalos de predicciones del 90%,
ajustando los datos para determinar pronósticos EL PERIODO 2020-
2024
PIB_imp <- na_mean(data$PIB)
summary(PIB_imp)
Min. 1st Qu. Median Mean 3rd Qu. Max.
3819126 9766988 16488046 16853684 24851304 27487814
ST <- ts(PIB_imp,end = c(2019,4),frequency = 4)
fores <- forecast(ST,h = 20,level = 0.90);fores
Point Forecast Lo 90 Hi 90
2020 Q1 16233022 14844030.1 17622013
2020 Q2 15611262 13606127.5 17616396
2020 Q3 14989502 12483413.9 17495590
2020 Q4 14367742 11415676.6 17319808
2021 Q1 13745983 10380225.2 17111740
2021 Q2 13124223 9365762.9 16882683
2021 Q3 12502463 8365792.5 16639134
2021 Q4 11880703 7376225.5 16385181
2022 Q1 11258944 6394323.3 16123564
2022 Q2 10637184 5418164.2 15856204
2022 Q3 10015424 4446347.9 15584501
2022 Q4 9393664 3477820.9 15309508
2023 Q1 8771905 2511767.3 15032042
2023 Q2 8150145 1547536.9 14752753
2023 Q3 7528385 584597.1 14472173
2023 Q4 6906626 -377501.2 14190752
2024 Q1 6284866 -1339147.2 13908879
2024 Q2 5663106 -2300688.7 13626901
2024 Q3 5041346 -3262444.4 13345137
2024 Q4 4419587 -4224714.5 13063888
plot(fores)
autoplot(fores)