Paso 0: Paquetes/Librerias
library(readxl)
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(forecast)
library(vars)
## Loading required package: MASS
## Loading required package: strucchange
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: urca
## Loading required package: lmtest
library(openxlsx)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
##
## select
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tibble)
Paso 1: Llamar datos
Data <- read_excel("Base de datos.xlsx",
range = "a1:i57", col_types = c("date",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric"))
Paso 2: Diagnóstico de datos
Base <- Data
# Prueba ADF para "Liquidez Sensible"
adf_Liquidez_Sensible <- adf.test(Base$Liquidez_Sensible)
print(adf_Liquidez_Sensible)
##
## Augmented Dickey-Fuller Test
##
## data: Base$Liquidez_Sensible
## Dickey-Fuller = -1.0484, Lag order = 3, p-value = 0.9226
## alternative hypothesis: stationary
# Prueba ADF para "Cobrabilidad Sensible" antes de la diferenciación
adf_Cobrabilidad_Sensible <- adf.test(Base$Cobrabilidad_Sensible)
print(adf_Cobrabilidad_Sensible)
##
## Augmented Dickey-Fuller Test
##
## data: Base$Cobrabilidad_Sensible
## Dickey-Fuller = -3.8329, Lag order = 3, p-value = 0.02327
## alternative hypothesis: stationary
Paso 3: Tratamiento de Datos
# Diferenciar la Serie "Liquidez Sensible"
Liquidez_Sensible_diff <- diff(Base$`Liquidez_Sensible`)
# Verificar Estacionariedad de "Liquidez Sensible" diferenciada
adf_Liquidez_Sensible_diff <- adf.test(Liquidez_Sensible_diff)
## Warning in adf.test(Liquidez_Sensible_diff): p-value smaller than printed
## p-value
print(adf_Liquidez_Sensible_diff)
##
## Augmented Dickey-Fuller Test
##
## data: Liquidez_Sensible_diff
## Dickey-Fuller = -4.55, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
# Diferenciar la Serie "Cobrabilidad Sensible"
Cobrabilidad_Sensible_diff <- diff(Base$`Cobrabilidad_Sensible`)
# Verificar Estacionariedad de "Cobrabilidad Sensible" diferenciada
adf_Cobrabilidad_Sensible_diff <- adf.test(Cobrabilidad_Sensible_diff)
## Warning in adf.test(Cobrabilidad_Sensible_diff): p-value smaller than printed
## p-value
print(adf_Cobrabilidad_Sensible_diff)
##
## Augmented Dickey-Fuller Test
##
## data: Cobrabilidad_Sensible_diff
## Dickey-Fuller = -4.4992, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary
# Desarrollar base con los datos diferenciados para modelo VAR
datos_diff <- data.frame(Liquidez_Sensible_diff, Cobrabilidad_Sensible_diff)
Paso 4: Desarrollo del modelo
# Encontrar el orden óptimo del VAR
criteria <- VARselect(datos_diff,lag.max = 10, type="const")
print(criteria)
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 2 1 1 2
##
## $criteria
## 1 2 3 4 5
## AIC(n) 5.967883e+01 5.966005e+01 5.981965e+01 5.992821e+01 6.005789e+01
## HQ(n) 5.976863e+01 5.980972e+01 6.002918e+01 6.019761e+01 6.038716e+01
## SC(n) 5.991972e+01 6.006153e+01 6.038172e+01 6.065088e+01 6.094115e+01
## FPE(n) 8.286293e+25 8.143857e+25 9.584167e+25 1.074581e+26 1.234771e+26
## 6 7 8 9 10
## AIC(n) 5.999320e+01 5.992866e+01 6.007017e+01 6.011890e+01 6.007069e+01
## HQ(n) 6.038233e+01 6.037766e+01 6.057904e+01 6.068763e+01 6.069929e+01
## SC(n) 6.103705e+01 6.113310e+01 6.143520e+01 6.164452e+01 6.175691e+01
## FPE(n) 1.173328e+26 1.121206e+26 1.325387e+26 1.439604e+26 1.433345e+26
# Criterios HQ y SC recomiendan 1 lag
# Criterio AIC y FPE recomiendan 2 lags
# Se seleccionará 10 lags para evitar sobreajuste debido al tamaño de las series temporales
modelo_var <- VAR(datos_diff, p=2, type="const")
summary(modelo_var)
##
## VAR Estimation Results:
## =========================
## Endogenous variables: Liquidez_Sensible_diff, Cobrabilidad_Sensible_diff
## Deterministic variables: const
## Sample size: 53
## Log Likelihood: -1716.161
## Roots of the characteristic polynomial:
## 0.5315 0.5315 0.4627 0.4627
## Call:
## VAR(y = datos_diff, p = 2, type = "const")
##
##
## Estimation results for equation Liquidez_Sensible_diff:
## =======================================================
## Liquidez_Sensible_diff = Liquidez_Sensible_diff.l1 + Cobrabilidad_Sensible_diff.l1 + Liquidez_Sensible_diff.l2 + Cobrabilidad_Sensible_diff.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## Liquidez_Sensible_diff.l1 -5.819e-01 1.419e-01 -4.101 0.000158 ***
## Cobrabilidad_Sensible_diff.l1 1.654e-01 7.967e-02 2.076 0.043239 *
## Liquidez_Sensible_diff.l2 -3.989e-01 1.492e-01 -2.674 0.010206 *
## Cobrabilidad_Sensible_diff.l2 7.987e-02 7.499e-02 1.065 0.292150
## const 5.988e+05 3.752e+05 1.596 0.117035
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 2039000 on 48 degrees of freedom
## Multiple R-Squared: 0.2734, Adjusted R-squared: 0.2128
## F-statistic: 4.515 on 4 and 48 DF, p-value: 0.003548
##
##
## Estimation results for equation Cobrabilidad_Sensible_diff:
## ===========================================================
## Cobrabilidad_Sensible_diff = Liquidez_Sensible_diff.l1 + Cobrabilidad_Sensible_diff.l1 + Liquidez_Sensible_diff.l2 + Cobrabilidad_Sensible_diff.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## Liquidez_Sensible_diff.l1 5.575e-01 2.667e-01 2.090 0.041904 *
## Cobrabilidad_Sensible_diff.l1 -4.284e-01 1.498e-01 -2.861 0.006245 **
## Liquidez_Sensible_diff.l2 -2.930e-01 2.804e-01 -1.045 0.301222
## Cobrabilidad_Sensible_diff.l2 -9.293e-02 1.409e-01 -0.659 0.512866
## const 2.931e+06 7.052e+05 4.157 0.000132 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 3833000 on 48 degrees of freedom
## Multiple R-Squared: 0.3175, Adjusted R-squared: 0.2606
## F-statistic: 5.582 on 4 and 48 DF, p-value: 0.0009002
##
##
##
## Covariance matrix of residuals:
## Liquidez_Sensible_diff Cobrabilidad_Sensible_diff
## Liquidez_Sensible_diff 4.158e+12 2.306e+12
## Cobrabilidad_Sensible_diff 2.306e+12 1.469e+13
##
## Correlation matrix of residuals:
## Liquidez_Sensible_diff Cobrabilidad_Sensible_diff
## Liquidez_Sensible_diff 1.0000 0.2951
## Cobrabilidad_Sensible_diff 0.2951 1.0000
Paso 5: Diagnostico de modelos var sin shock
# Diagnostico de NORMALIDAD (Shapiro-Wilk) (bases de datos mas reducidas)
residuos <- residuals(modelo_var)
residuos_df <- as.data.frame(residuos)
shapiro_Liquidez <- shapiro.test(residuos_df$Liquidez_Sensible_diff)
shapiro_Cobrabilidad <- shapiro.test(residuos_df$Cobrabilidad_Sensible)
print(shapiro_Liquidez)
##
## Shapiro-Wilk normality test
##
## data: residuos_df$Liquidez_Sensible_diff
## W = 0.97096, p-value = 0.222
print(shapiro_Cobrabilidad)
##
## Shapiro-Wilk normality test
##
## data: residuos_df$Cobrabilidad_Sensible
## W = 0.9707, p-value = 0.2163
# Analisis grafico de los residuos
plot(residuals(modelo_var))

# Diagnostico de autocorrelación residual (Portmanteau)
serial.test(modelo_var, lags.pt=10, type="PT.adjusted")
##
## Portmanteau Test (adjusted)
##
## data: Residuals of VAR object modelo_var
## Chi-squared = 29.791, df = 32, p-value = 0.5788
# Diagnostico de correlacion (dwtest Durbin-Watson)
residuos_df <- as.data.frame(residuals(modelo_var))
modelo_residuos_liquidez <- lm(residuos_df$Liquidez_Sensible_diff ~ 1)
dwtest_liquidez <- dwtest(modelo_residuos_liquidez)
modelo_residuos_cobrabilidad <- lm(residuos_df$Cobrabilidad_Sensible_diff ~ 1)
dwtest_cobrabilidad <- dwtest(modelo_residuos_cobrabilidad)
print(dwtest_liquidez)
##
## Durbin-Watson test
##
## data: modelo_residuos_liquidez
## DW = 1.9838, p-value = 0.4764
## alternative hypothesis: true autocorrelation is greater than 0
print(dwtest_cobrabilidad)
##
## Durbin-Watson test
##
## data: modelo_residuos_cobrabilidad
## DW = 1.9853, p-value = 0.4785
## alternative hypothesis: true autocorrelation is greater than 0
# Diagnostico de Cointegracion (Johansen)
johansen <- ca.jo(datos_diff, type="trace", ecdet="const", K=2)
summary(johansen)
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 0.5999666 0.4652385 0.0000000
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 1 | 33.17 7.52 9.24 12.97
## r = 0 | 81.73 17.85 19.96 24.60
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## Liquidez_Sensible_diff.l2
## Liquidez_Sensible_diff.l2 1.0000000
## Cobrabilidad_Sensible_diff.l2 -0.2899292
## constant 33704.0853981
## Cobrabilidad_Sensible_diff.l2 constant
## Liquidez_Sensible_diff.l2 1.000000e+00 1.000000e+00
## Cobrabilidad_Sensible_diff.l2 4.802712e+00 -2.601728e+00
## constant -1.026840e+07 2.164890e+08
##
## Weights W:
## (This is the loading matrix)
##
## Liquidez_Sensible_diff.l2
## Liquidez_Sensible_diff.d -1.9162068
## Cobrabilidad_Sensible_diff.d 0.5482098
## Cobrabilidad_Sensible_diff.l2 constant
## Liquidez_Sensible_diff.d -0.06460144 -1.396333e-18
## Cobrabilidad_Sensible_diff.d -0.28367188 -6.106407e-18
# Analisis grafico de impulso-respuesta
irf_resultados <- irf(modelo_var, steps=10)
plot(irf_resultados)


Paso 6: Pronóstico sin shock
# Generar pronósticos para 12 periodos adelante usando predict
pronosticos_var <- predict(modelo_var, n.ahead = 12)
# Visualizar los pronósticos para cada variable
plot(pronosticos_var)

Paso 7: Aplicación del Shock
datos_diff_shock <- datos_diff
# Shock en nuemero de desviaciones estandar
ds0 <- 0
ds1 <- 3337241.26
ds2 <- 6674482.521
ds3 <- 10011723.78
ds4 <- 13348965.04
ds5 <- 16686206.3
ds6 <- 20023447.56
ds7 <- 23360688.82
ds8 <- 26697930.08
ds9 <- 30035171.34
ds10 <- 33372412.6
#A Partir del ds5 el acaike recomienda 10 resagos
Shock_distribuido <- ds8
Shock_mensual <- Shock_distribuido / 3
# Aplicar el shock
datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock)-2):nrow(datos_diff_shock)] <- datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock)-3):nrow(datos_diff_shock)] - Shock_mensual
## Warning in datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock) - :
## number of items to replace is not a multiple of replacement length
datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock)-1):nrow(datos_diff_shock)] <- datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock)-2):nrow(datos_diff_shock)] - Shock_mensual
## Warning in datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock) - :
## number of items to replace is not a multiple of replacement length
datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock)):nrow(datos_diff_shock)] <- datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock)-1):nrow(datos_diff_shock)] - Shock_mensual
## Warning in
## datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock)):nrow(datos_diff_shock)]
## <- datos_diff_shock$Liquidez_Sensible_diff[(nrow(datos_diff_shock) - : number
## of items to replace is not a multiple of replacement length
datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)-2):nrow(datos_diff_shock)] <- datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)-3):nrow(datos_diff_shock)] - Shock_mensual
## Warning in datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)
## - : number of items to replace is not a multiple of replacement length
datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)-1):nrow(datos_diff_shock)] <- datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)-2):nrow(datos_diff_shock)] - Shock_mensual
## Warning in datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)
## - : number of items to replace is not a multiple of replacement length
datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)):nrow(datos_diff_shock)] <- datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)-1):nrow(datos_diff_shock)] - Shock_mensual
## Warning in
## datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock)):nrow(datos_diff_shock)]
## <- datos_diff_shock$Cobrabilidad_Sensible_diff[(nrow(datos_diff_shock) - :
## number of items to replace is not a multiple of replacement length
Paso 8: Desarrollo del modelo con shock
# Encontrar el orden óptimo del VAR
# criteria <- VARselect(datos_diff_shock,lag.max = 10, type="const")
# print(criteria)
# Criterios HQ y SC recomiendan 1 lag
# Criterio AIC y FPE recomiendan 2 lags
modelo_var_shock <- VAR(datos_diff_shock, p=1, type="const")
Paso 9: Pronostico con shock
# Pronostica usando el modelo VAR existente con los datos shockeados
pronosticos_var_shock <- predict(modelo_var_shock, n.ahead = 20)
# Visualiza los pronósticos
plot(pronosticos_var_shock)

Paso 10: Visualizar Datos
# Visualizar los datos
liquidez_sensible_fcst <- pronosticos_var_shock$fcst[[1]][, "fcst"]
cobrabilidad_sensible_fcst <- pronosticos_var_shock$fcst[[2]][, "fcst"]
pronosticos_var_shock
## $Liquidez_Sensible_diff
## fcst lower upper CI
## [1,] -28306022 -36421259 -20190786 8115236
## [2,] -29288076 -40293585 -18282567 11005509
## [3,] -29484019 -42960211 -16007827 13476192
## [4,] -30158091 -45602302 -14713881 15444211
## [5,] -30541948 -47790700 -13293197 17248752
## [6,] -31102553 -49951208 -12253898 18848655
## [7,] -31556109 -51899240 -11212977 20343131
## [8,] -32075093 -53800527 -10349659 21725434
## [9,] -32554682 -55586945 -9522420 23032263
## [10,] -33058584 -57324932 -8792236 24266348
## [11,] -33548080 -58991863 -8104296 25443784
## [12,] -34046701 -60615605 -7477797 26568904
## [13,] -34540146 -62190115 -6890178 27649969
## [14,] -35037107 -63727970 -6346245 28690862
## [15,] -35532302 -65228758 -5835847 29696455
## [16,] -36028942 -66698783 -5359101 30669841
## [17,] -36525074 -68139294 -4910855 31614219
## [18,] -37021886 -69553871 -4489901 32531985
## [19,] -37518656 -70944066 -4093247 33425409
## [20,] -38015823 -72312173 -3719474 34296349
##
## $Cobrabilidad_Sensible_diff
## fcst lower upper CI
## [1,] -30250240 -39100697 -21399783 8850457
## [2,] -28689555 -41913094 -15466015 13223539
## [3,] -30485194 -45868626 -15101762 15383432
## [4,] -30241415 -47873217 -12609613 17631802
## [5,] -31237491 -50586935 -11888046 19349444
## [6,] -31480437 -52535954 -10424920 21055517
## [7,] -32181493 -54734410 -9628577 22552916
## [8,] -32604527 -56606178 -8602875 24001651
## [9,] -33196924 -58539752 -7854097 25342828
## [10,] -33686786 -60319200 -7054372 26632414
## [11,] -34239359 -62094137 -6384582 27854778
## [12,] -34754215 -63786026 -5722403 29031812
## [13,] -35292389 -65453406 -5131372 30161017
## [14,] -35816787 -67068961 -4564613 31252174
## [15,] -36349954 -68656395 -4043513 32306441
## [16,] -36878187 -70207098 -3549276 33328911
## [17,] -37409815 -71731303 -3088328 34321488
## [18,] -37939777 -73227028 -2652526 35287251
## [19,] -38471149 -74699164 -2243133 36228016
## [20,] -39002060 -76147938 -1856182 37145878
datos_diff_shock
## Liquidez_Sensible_diff Cobrabilidad_Sensible_diff
## 1 -2458782 295074
## 2 1286687 2209927
## 3 846899 2740699
## 4 -2605442 -2569443
## 5 2519971 1534122
## 6 1341472 964812
## 7 443611 905487
## 8 2020001 1730324
## 9 -3221536 981121
## 10 1489016 -157223
## 11 2911270 5659587
## 12 -1333370 -709270
## 13 -143040 2276313
## 14 4674078 8810233
## 15 -1793241 1523915
## 16 2305250 -148974
## 17 1501264 3914799
## 18 -1049982 1415682
## 19 3376301 2542704
## 20 2175391 2330788
## 21 420588 5487553
## 22 1001406 137308
## 23 -3543615 3916049
## 24 5562418 1526545
## 25 -1278477 -607788
## 26 -276396 -275671
## 27 190950 3667663
## 28 4458511 1441703
## 29 -2430705 1882845
## 30 36254 4950081
## 31 112970 -2772150
## 32 830470 257860
## 33 -405770 2566758
## 34 877793 4637923
## 35 -2298435 6265234
## 36 9293949 2974759
## 37 163856 19653601
## 38 -203876 -14086083
## 39 345610 2258452
## 40 -333134 -6171
## 41 919436 3914502
## 42 2740768 3820192
## 43 -987686 1583650
## 44 -2481118 2515458
## 45 366481 2725507
## 46 -323945 142397
## 47 -1146984 6535412
## 48 1104448 -9403316
## 49 -1427556 10525798
## 50 1946451 4084707
## 51 1714590 2055207
## 52 -1920118 408882
## 53 -10819428 -8490428
## 54 -19718738 -17389738
## 55 -28618048 -26289048
liquidez_sensible_fcst
## [1] -28306022 -29288076 -29484019 -30158091 -30541948 -31102553 -31556109
## [8] -32075093 -32554682 -33058584 -33548080 -34046701 -34540146 -35037107
## [15] -35532302 -36028942 -36525074 -37021886 -37518656 -38015823
cobrabilidad_sensible_fcst
## [1] -30250240 -28689555 -30485194 -30241415 -31237491 -31480437 -32181493
## [8] -32604527 -33196924 -33686786 -34239359 -34754215 -35292389 -35816787
## [15] -36349954 -36878187 -37409815 -37939777 -38471149 -39002060
# Crear dataframe con las predicciones
predicciones_df <- data.frame(
Liquidez_Sensible_diff = liquidez_sensible_fcst,
Cobrabilidad_Sensible_diff = cobrabilidad_sensible_fcst
)
# Identificar las filas como predicciones
predicciones_df$Tipo = "Prediccion"
# A continuación, extraemos las últimas 55 observaciones de datos_diff_shock
ultimas_observaciones <- tail(datos_diff_shock, 55)
ultimas_observaciones$Tipo = "Observacion"
# Combinamos las últimas observaciones con las predicciones
datos_combinados <- rbind(ultimas_observaciones, predicciones_df)
# Ajustamos los nombres de las filas para reflejar el periodo correspondiente
rownames(datos_combinados) <- NULL # Reset rownames first if necessary
datos_combinados$Periodo <- seq_len(nrow(datos_combinados))
# Mostramos la tabla combinada
print(datos_combinados)
## Liquidez_Sensible_diff Cobrabilidad_Sensible_diff Tipo Periodo
## 1 -2458782 295074 Observacion 1
## 2 1286687 2209927 Observacion 2
## 3 846899 2740699 Observacion 3
## 4 -2605442 -2569443 Observacion 4
## 5 2519971 1534122 Observacion 5
## 6 1341472 964812 Observacion 6
## 7 443611 905487 Observacion 7
## 8 2020001 1730324 Observacion 8
## 9 -3221536 981121 Observacion 9
## 10 1489016 -157223 Observacion 10
## 11 2911270 5659587 Observacion 11
## 12 -1333370 -709270 Observacion 12
## 13 -143040 2276313 Observacion 13
## 14 4674078 8810233 Observacion 14
## 15 -1793241 1523915 Observacion 15
## 16 2305250 -148974 Observacion 16
## 17 1501264 3914799 Observacion 17
## 18 -1049982 1415682 Observacion 18
## 19 3376301 2542704 Observacion 19
## 20 2175391 2330788 Observacion 20
## 21 420588 5487553 Observacion 21
## 22 1001406 137308 Observacion 22
## 23 -3543615 3916049 Observacion 23
## 24 5562418 1526545 Observacion 24
## 25 -1278477 -607788 Observacion 25
## 26 -276396 -275671 Observacion 26
## 27 190950 3667663 Observacion 27
## 28 4458511 1441703 Observacion 28
## 29 -2430705 1882845 Observacion 29
## 30 36254 4950081 Observacion 30
## 31 112970 -2772150 Observacion 31
## 32 830470 257860 Observacion 32
## 33 -405770 2566758 Observacion 33
## 34 877793 4637923 Observacion 34
## 35 -2298435 6265234 Observacion 35
## 36 9293949 2974759 Observacion 36
## 37 163856 19653601 Observacion 37
## 38 -203876 -14086083 Observacion 38
## 39 345610 2258452 Observacion 39
## 40 -333134 -6171 Observacion 40
## 41 919436 3914502 Observacion 41
## 42 2740768 3820192 Observacion 42
## 43 -987686 1583650 Observacion 43
## 44 -2481118 2515458 Observacion 44
## 45 366481 2725507 Observacion 45
## 46 -323945 142397 Observacion 46
## 47 -1146984 6535412 Observacion 47
## 48 1104448 -9403316 Observacion 48
## 49 -1427556 10525798 Observacion 49
## 50 1946451 4084707 Observacion 50
## 51 1714590 2055207 Observacion 51
## 52 -1920118 408882 Observacion 52
## 53 -10819428 -8490428 Observacion 53
## 54 -19718738 -17389738 Observacion 54
## 55 -28618048 -26289048 Observacion 55
## 56 -28306022 -30250240 Prediccion 56
## 57 -29288076 -28689555 Prediccion 57
## 58 -29484019 -30485194 Prediccion 58
## 59 -30158091 -30241415 Prediccion 59
## 60 -30541948 -31237491 Prediccion 60
## 61 -31102553 -31480437 Prediccion 61
## 62 -31556109 -32181493 Prediccion 62
## 63 -32075093 -32604527 Prediccion 63
## 64 -32554682 -33196924 Prediccion 64
## 65 -33058584 -33686786 Prediccion 65
## 66 -33548080 -34239359 Prediccion 66
## 67 -34046701 -34754215 Prediccion 67
## 68 -34540146 -35292389 Prediccion 68
## 69 -35037107 -35816787 Prediccion 69
## 70 -35532302 -36349954 Prediccion 70
## 71 -36028942 -36878187 Prediccion 71
## 72 -36525074 -37409815 Prediccion 72
## 73 -37021886 -37939777 Prediccion 73
## 74 -37518656 -38471149 Prediccion 74
## 75 -38015823 -39002060 Prediccion 75