Introducción

2. Metodología

La metodología de este estudio se estructura en varias fases, abordando desde la recopilación y preparación de datos, el análisis exploratorio de series de tiempo, hasta la aplicación de técnicas de modelado lineal para series temporales (TSLM) y la evaluación de pronósticos. El objetivo es analizar los factores que influyen en la esperanza de vida en Argentina y proyectar su comportamiento futuro, utilizando un enfoque que considera la dependencia temporal de los datos.

2.1 Fuentes y Recopilación de Datos

Los datos utilizados para este análisis provienen de diversas fuentes abiertas y confiables, principalmente de la plataforma Our World in Data y el Banco Mundial. Se recolectaron variables clave para los años 1990 hasta 2021 para Argentina, con el objetivo de obtener una instantánea coherente de la situación del país en ese período. Las bases de datos específicas consultadas incluyen información sobre: Expectativa de Vida, PIB per Cápita, Población, Tasa de Mortalidad, Uso de Internet, Tasa de Fertilidad, Índice de Desarrollo Humano (HDI), Emisiones de CO2 per cápita, Población Urbana vs. Rural y Acceso a Electricidad.

2.2 Descripción de Variables

El conjunto de datos integrado utilizado para el modelado comprende las siguientes variables:

  • Expectativa de Vida (Expect): Variable cuantitativa que representa la expectativa de vida al nacer (en años). Originalmente continua, será utilizada para generar una variable binaria y posteriormente para el análisis de clusterización.
  • PIB per Cápita (GDP): Variable cuantitativa que mide el Producto Interno Bruto por habitante, ajustado por paridad de poder adquisitivo. Refleja el nivel de desarrollo económico.
  • Población (Population): Variable cuantitativa que representa el total de habitantes del país.
  • Tasa de Mortalidad (Death_rate): Variable cuantitativa que indica el número de muertes por cada 1000 habitantes.
  • Población Urbana (Urban): Variable cuantitativa que indica el porcentaje de población que reside en áreas urbanas.
  • Población Rural (Rural): Variable cuantitativa que indica el porcentaje de población que reside en áreas rurales.
  • Tasa de Fertilidad (Fertility): Variable cuantitativa que indica el número promedio de hijos por mujer.
  • Índice de Desarrollo Humano (HDI): Variable cuantitativa que mide el nivel de desarrollo humano (largo y saludable de vida, acceso a conocimientos y un nivel de vida decente).
  • Emisiones de CO2 (CO2): Variable cuantitativa que representa las emisiones de dióxido de carbono per cápita.
  • Acceso a Electricidad (Electricity): Variable cuantitativa que mide el porcentaje de la población con acceso a electricidad.
  • Uso de Internet (Internet): Variable cuantitativa que mide el porcentaje de individuos que utilizan internet en la población.

2.3 Procesamiento y Preparación de Datos

La etapa de procesamiento de datos fue crucial para consolidar la información y adecuarla a los requisitos del modelado lineal de series de tiempo.

Primero, se cargaron las múltiples bases de datos descargadas, las cuales contenían información de diversos países y años. Posteriormente, se unieron en un único dataframe (bd_panel_1) utilizando operaciones de left_join basadas en las columnas Country y Year. Este proceso permitió integrar toda la información relevante en una sola estructura.

Tras la unión, se procedió a filtrar el dataset para concentrarse específicamente en el país Argentina y en el rango de años 1990 a 2021. Adicionalmente, se realizó una limpieza de datos, eliminando las filas que presentaban valores faltantes (NA) en cualquiera de las variables clave seleccionadas para el análisis. Esto aseguró que el modelo se entrenara con un conjunto de datos completo y consistente para la serie de tiempo. Finalmente, los datos se dividieron en conjuntos de entrenamiento (1990-2016) y prueba (2017-2021) para la validación del modelo.

# Carga de las bases de datos

bd_expec <- read.csv("life-expectancy.csv")
bd_gdp <- read.csv("gdp-per-capita-worldbank.csv")
bd_pop <- read.csv("population.csv")
bd_death <- read.csv("death-rate.csv")
bd_int <- read.csv("share-of-individuals-using-the-internet.csv")
bd_fert <- read.csv("Fertility-rate.csv")
bd_hdi <- read.csv("human-development-index.csv")
bd_co2 <- read.csv("co-emissions-per-capita.csv")
bd_uvr <- read.csv("urban-vs-rural-majority.csv")
bd_elec <- read.csv("share-of-the-population-with-access-to-electricity.csv")

# Renombramos columnas
bd_expec_1 <- bd_expec %>%
  select(Entity, Year, Period.life.expectancy.at.birth...Sex..total...Age..0) %>%
  rename(Country = Entity, Expect = Period.life.expectancy.at.birth...Sex..total...Age..0)

bd_gdp_1 <- bd_gdp %>%
  select(Entity, Year, GDP.per.capita..PPP..constant.2021.international...) %>%
  rename(Country = Entity, GDP = GDP.per.capita..PPP..constant.2021.international...)

bd_pop_1 <- bd_pop %>%
  select(Entity, Year, Population..historical.) %>%
  rename(Country = Entity, Population = Population..historical.)

bd_death_1 <- bd_death %>%
  select(Entity, Year, Death.rate...Sex..all...Age..all...Variant..estimates) %>%
  rename(Country = Entity, Death_rate = Death.rate...Sex..all...Age..all...Variant..estimates)

bd_int_1 <- bd_int %>%
  select(Entity, Year, Individuals.using.the.Internet....of.population.) %>%
  rename(Country = Entity, Internet = Individuals.using.the.Internet....of.population.)

bd_fert_1 <- bd_fert %>%
  select(Entity, Year, Fertility.rate...Sex..all...Age..all...Variant..estimates) %>%
  rename(Country = Entity, Fertility = Fertility.rate...Sex..all...Age..all...Variant..estimates)

bd_hdi_1 <- bd_hdi %>%
  select(Entity, Year, Human.Development.Index) %>%
  rename(Country = Entity, HDI = Human.Development.Index)

bd_co2_1 <- bd_co2 %>%
  select(Entity, Year, Annual.CO..emissions..per.capita.) %>%
  rename(Country = Entity, CO2 = Annual.CO..emissions..per.capita.)


bd_uvr_1 <- bd_uvr %>%
  select(Entity, Year, Share.of.population.residing.in.rural.areas..HYDE.estimates.and.UN.projections., Share.of.population.residing.in.urban.areas..HYDE.estimates.and.UN.projections.) %>%
  rename(Country = Entity, Rural = Share.of.population.residing.in.rural.areas..HYDE.estimates.and.UN.projections.,
         Urban = Share.of.population.residing.in.urban.areas..HYDE.estimates.and.UN.projections.)

bd_elec_1 <- bd_elec %>%
  select(Entity, Year, Access.to.electricity....of.population.) %>%
  rename(Country = Entity, Electricity = Access.to.electricity....of.population.)

# Unimos las bases de datos para las 10 variables seleccionadas
bd_panel_1 <- bd_gdp_1 %>%
  left_join(bd_expec_1, by = c("Country", "Year")) %>%
  left_join(bd_pop_1, by = c("Country", "Year")) %>%
  left_join(bd_death_1, by = c("Country", "Year")) %>%
  left_join(bd_int_1, by = c("Country", "Year")) %>%
  left_join(bd_fert_1, by = c("Country", "Year")) %>%
  left_join(bd_hdi_1, by = c("Country", "Year")) %>%
  left_join(bd_co2_1, by = c("Country", "Year")) %>%
  left_join(bd_uvr_1, by = c("Country", "Year")) %>% 
  left_join(bd_elec_1, by = c("Country", "Year")) %>%
  filter(Year >= 1990 & Year <= 2021) %>% # Filtramos por el rango de años
  # Filtramos NAs en las variables seleccionadas para asegurar datos completos
  filter(!is.na(Expect) & !is.na(GDP) & !is.na(Population) & !is.na(Death_rate) & !is.na(Internet) &
           !is.na(Fertility) & !is.na(HDI) & !is.na(CO2) &
           !is.na(Urban) & !is.na(Rural) & !is.na(Electricity)) %>%
  distinct(Country, Year, .keep_all = TRUE) # Asegura unicidad por País-Año

# 2. Filtrar para el país seleccionado: Argentina 
selected_country_name <- "Argentina"
bd_panel_final <- bd_panel_1 %>%
  filter(Country == selected_country_name)

View(bd_panel_final)
summary(bd_panel_final)
##    Country               Year           GDP            Expect     
##  Length:32          Min.   :1990   Min.   :17007   Min.   :71.61  
##  Class :character   1st Qu.:1998   1st Qu.:21460   1st Qu.:73.41  
##  Mode  :character   Median :2006   Median :23830   Median :74.83  
##                     Mean   :2006   Mean   :24191   Mean   :74.61  
##                     3rd Qu.:2013   3rd Qu.:27694   3rd Qu.:75.84  
##                     Max.   :2021   Max.   :29426   Max.   :76.85  
##    Population         Death_rate       Internet         Fertility    
##  Min.   :32755907   Min.   :7.386   Min.   : 0.0000   Min.   :1.585  
##  1st Qu.:36266595   1st Qu.:7.512   1st Qu.: 0.6932   1st Qu.:2.346  
##  Median :39419450   Median :7.580   Median :19.3239   Median :2.428  
##  Mean   :39405453   Mean   :7.691   Mean   :31.4712   Mean   :2.464  
##  3rd Qu.:42692858   3rd Qu.:7.700   3rd Qu.:61.1000   3rd Qu.:2.673  
##  Max.   :45312283   Max.   :9.725   Max.   :87.1507   Max.   :3.034  
##       HDI              CO2            Rural            Urban      
##  Min.   :0.7240   Min.   :3.285   Min.   : 5.783   Min.   :86.60  
##  1st Qu.:0.7625   1st Qu.:3.603   1st Qu.: 7.057   1st Qu.:89.50  
##  Median :0.8080   Median :4.037   Median : 8.619   Median :91.38  
##  Mean   :0.8016   Mean   :3.993   Mean   : 8.930   Mean   :91.07  
##  3rd Qu.:0.8440   3rd Qu.:4.366   3rd Qu.:10.505   3rd Qu.:92.94  
##  Max.   :0.8530   Max.   :4.634   Max.   :13.402   Max.   :94.22  
##   Electricity    
##  Min.   : 92.15  
##  1st Qu.: 94.73  
##  Median : 96.85  
##  Mean   : 96.83  
##  3rd Qu.: 99.40  
##  Max.   :100.00
# 2.1 Dividir los datos en TRAIN y TEST
train_data <- bd_panel_final[1:27, ] # Datos de 1990 a 2016 (27 observaciones)
test_data <- bd_panel_final[28:32, ] # Datos de 2017 a 2021 (5 observaciones)

Para la construcción del Modelo Lineal de Series de Tiempo (tslm), se seleccionaron las variables cuantitativas de interés que se utilizarían como predictores de la Esperanza de Vida. Se prepararon los datos del conjunto de entrenamiento (train_data) transformándolos en objetos de serie de tiempo (ts), lo cual es un paso fundamental para el análisis y modelado temporal en R con funciones como tslm. Esto asegura que el modelo reconozca la estructura secuencial y temporal de los datos.

Las variables seleccionadas para conformar el objeto de serie de tiempo de entrenamiento, train_ts_data_model, incluyen la Esperanza de Vida (Expect) como variable dependiente, así como el PIB (GDP), el uso de Internet (Internet), el Índice de Desarrollo Humano (HDI), las emisiones de CO2 (CO2), el acceso a Electricidad (Electricity), la Población (Population), la Tasa de Mortalidad (Death_rate), la Tasa de Fertilidad (Fertility), la población Rural (Rural), la Población Urbana (Urban).

El código para la creación de esta variable y la posterior definición de los objetos de serie de tiempo es el siguiente:

# 3. Crear objetos de serie de tiempo (ts) para cada variable del conjunto de entrenamiento

# Se utiliza el conjunto 'train_data' para entrenar el modelo
start_year_train <- min(train_data$Year)
end_year_train <- max(train_data$Year)
frequency_val <- 1 # Anual

train_ts_data_model <- ts(train_data %>%
                            select(Expect, GDP, Internet, HDI, CO2, Electricity,
                                   Population, Death_rate, Fertility, Urban, Rural),
                          start = min(train_data$Year), 
                          frequency = frequency_val)

2.4 Definición y Supuestos de las Series de Tiempo

Series de Tiempo

Una serie de tiempo es una secuencia de observaciones tomadas a intervalos de tiempo sucesivos y específicos. A diferencia de los datos de corte transversal, las observaciones en una serie de tiempo no son independientes entre sí, ya que el valor actual está influenciado por valores pasados. Este aspecto temporal es crucial para su análisis y modelado.

El objetivo principal del análisis de series de tiempo es comprender la estructura de los datos para realizar pronósticos o identificar patrones subyacentes.

La ecuación del modelo es la siguiente:

knitr::include_graphics("ST.png")

Supuestos en la Modelación Lineal en Datos Temporales

Para que un modelo de regresión lineal sea válido y sus estimaciones sean eficientes y consistentes, es necesario que se cumplan ciertos supuestos sobre los errores o residuales del modelo. En el contexto de las series de tiempo, el supuesto más relevante y frecuentemente violado es el de la no autocorrelación de los errores.

  • Linealidad: La relación entre la variable dependiente y las variables independientes es lineal.

  • Homocedasticidad: La varianza de los errores es constante para todas las observaciones.

  • Normalidad de los Errores: Los errores se distribuyen normalmente.

  • No Autocorrelación (Independencia de los Errores): Este es el supuesto más crítico en el análisis de series de tiempo. Implica que los errores en un período de tiempo no están correlacionados con los errores en períodos anteriores o posteriores. Si existe autocorrelación, las estimaciones de los coeficientes del modelo pueden ser sesgadas e ineficientes, y los errores estándar subestimados, lo que lleva a inferencias estadísticas incorrectas. La presencia de autocorrelación sugiere que el modelo no ha capturado completamente la dinámica temporal presente en los datos. Se utilizan funciones de autocorrelación (ACF) y de autocorrelación parcial (PACF) de los residuales, así como pruebas estadísticas como la de Durbin-Watson o Ljung-Box, para diagnosticar este problema.

La violación del supuesto de no autocorrelación puede requerir la incorporación de términos de retardo de la variable dependiente o de las variables explicativas en el modelo, o el uso de modelos más complejos de series de tiempo.

Análisis Exploratorio de Datos (EDA)

El análisis exploratorio de datos es un paso crucial para comprender las características y patrones de las variables. A continuación, se presentan visualizaciones de las series de tiempo, funciones de autocorrelación, diagramas de dispersión, matrices de correlación y diagramas de dispersión.

3. Resultados Descriptivos y Análisis de Serie de Tiempo

En esta sección, se presentan los resultados del análisis descriptivo de las variables y los hallazgos iniciales del comportamiento de las series de tiempo. Estos análisis son fundamentales para comprender las características individuales de cada variable y sus patrones a lo largo del tiempo, sentando las bases para la modelación posterior.

3.1 Estadísticas Descriptivas del Conjunto de Datos

Primero, se examinan las estadísticas descriptivas de las variables clave en el conjunto de datos final bd_panel_final. Este dataframe ya contiene todos los datos unificados, filtrados por años y por el país de interés (Argentina), y sin valores faltantes. Esto nos permite entender la distribución, rangos, medias, medianas y la dispersión de cada variable a lo largo de todo el período de estudio antes de proceder con la división en conjuntos de entrenamiento, prueba y la modelación. Este análisis proporciona una visión inicial sobre el comportamiento de cada serie de tiempo.

DT::datatable(bd_panel_final)
summary(bd_panel_final)
##    Country               Year           GDP            Expect     
##  Length:32          Min.   :1990   Min.   :17007   Min.   :71.61  
##  Class :character   1st Qu.:1998   1st Qu.:21460   1st Qu.:73.41  
##  Mode  :character   Median :2006   Median :23830   Median :74.83  
##                     Mean   :2006   Mean   :24191   Mean   :74.61  
##                     3rd Qu.:2013   3rd Qu.:27694   3rd Qu.:75.84  
##                     Max.   :2021   Max.   :29426   Max.   :76.85  
##    Population         Death_rate       Internet         Fertility    
##  Min.   :32755907   Min.   :7.386   Min.   : 0.0000   Min.   :1.585  
##  1st Qu.:36266595   1st Qu.:7.512   1st Qu.: 0.6932   1st Qu.:2.346  
##  Median :39419450   Median :7.580   Median :19.3239   Median :2.428  
##  Mean   :39405453   Mean   :7.691   Mean   :31.4712   Mean   :2.464  
##  3rd Qu.:42692858   3rd Qu.:7.700   3rd Qu.:61.1000   3rd Qu.:2.673  
##  Max.   :45312283   Max.   :9.725   Max.   :87.1507   Max.   :3.034  
##       HDI              CO2            Rural            Urban      
##  Min.   :0.7240   Min.   :3.285   Min.   : 5.783   Min.   :86.60  
##  1st Qu.:0.7625   1st Qu.:3.603   1st Qu.: 7.057   1st Qu.:89.50  
##  Median :0.8080   Median :4.037   Median : 8.619   Median :91.38  
##  Mean   :0.8016   Mean   :3.993   Mean   : 8.930   Mean   :91.07  
##  3rd Qu.:0.8440   3rd Qu.:4.366   3rd Qu.:10.505   3rd Qu.:92.94  
##  Max.   :0.8530   Max.   :4.634   Max.   :13.402   Max.   :94.22  
##   Electricity    
##  Min.   : 92.15  
##  1st Qu.: 94.73  
##  Median : 96.85  
##  Mean   : 96.83  
##  3rd Qu.: 99.40  
##  Max.   :100.00

El summary(bd_panel_final) proporciona una visión detallada de las 11 variables cuantitativas utilizadas en el análisis de series de tiempo para Argentina durante el período 1990-2021.

La Esperanza de Vida (Expect), nuestra variable de interés, muestra una media de aproximadamente 74.61 años y una mediana de 74.83 años, con un rango que va desde 71.61 hasta 76.85 años. Estos valores indican una tendencia general de aumento y estabilidad en la esperanza de vida en Argentina a lo largo de las décadas analizadas.

Variables como GDP (PIB per cápita), Population (Población), e Internet muestran una variabilidad considerable a lo largo del tiempo en Argentina, reflejando el crecimiento económico, demográfico y la adopción tecnológica del país. Por ejemplo, el GDP tiene una media de 24,191 USD y una mediana de 23,830 USD, lo que subraya la dinámica económica y las fluctuaciones experimentadas en el país durante el período estudiado.

Por otro lado, variables como Death_rate (tasa de mortalidad) y Fertility (tasa de fertilidad) exhiben rangos que reflejan cambios significativos en las condiciones de salud pública y la dinámica demográfica a lo largo de las décadas. El HDI (Índice de Desarrollo Humano) presenta un rango de 0.7240 a 0.8530, lo que indica un progreso constante en el desarrollo humano en Argentina. Finalmente, CO2 (emisiones de CO2 per cápita) y Electricity (acceso a electricidad) también revelan sus propias tendencias y rangos temporales, ofreciendo insights sobre el desarrollo ambiental y de infraestructura.

Estas estadísticas descriptivas iniciales son cruciales para entender la naturaleza de cada serie de tiempo y sus características individuales (tendencia central, dispersión, asimetría) antes de aplicar técnicas de modelación de series temporales y pronóstico.

3.2 Gráficos de Evolución Temporal

Estos gráficos muestran cómo cada variable ha cambiado a lo largo del tiempo, desde 1990 hasta 2016.

plot.ts(bd_panel_final$Expect[1:27], main = "Esperanza de Vida en Argentina (Datos de Entrenamiento 1990-2016)",
        xlab = "Año", ylab = "Esperanza de Vida",
        xaxt = "n") 
axis(1, at = seq_along(bd_panel_final$Year[1:27]), labels = bd_panel_final$Year[1:27])

La esperanza de vida en Argentina muestra una clara tendencia ascendente y casi lineal desde 1990 hasta 2016. Se observa un aumento constante, pasando de aproximadamente 71.5 años a principios de los 90 a más de 76 años hacia 2014-2015, con una ligera caída hacia 2016. Esto indica una mejora sostenida en las condiciones de salud y calidad de vida en el país durante este período, probablemente influenciada por avances médicos, mejoras en saneamiento y nutrición, y un mayor acceso a servicios de salud. Esta fuerte tendencia lineal sugiere que la serie no es estacionaria y refuerza la necesidad de incluir términos autorregresivos o variables con tendencia en nuestro modelo para capturar adecuadamente su dinámica.

# Gráficos autoplot (series de tiempo) de las variables del TRAIN
p_gdp <- autoplot(argentina_gdp_ts_train) +
  ggtitle("Evolución del PIB Per Cápita en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("PIB Per Cápita")
ggplotly(p_gdp) 

El PIB per cápita en Argentina presenta un comportamiento más volátil, pero con una tendencia general creciente. Inicia alrededor de 17,000-18,000 y asciende hasta casi 24,000 a finales de los 90. Luego, experimenta una caída significativa a principios de los 2000, esto debido a la crisis de 2001.

La crisis de 2001, también llamada “El corralito”, fue la culminación de una serie de factores económicos y políticos que se venían gestando desde la década de 1990.

Iniciando con el régimen de convertibilidad (1991-2001), que fijaba la paridad del peso argentino con el dólar estadounidense en 1 a 1 (un peso = un dólar). El objetivo principal era frenar la hiperinflación crónica que había afectado al país durante años. Aunque a corto plazo funcionó creó una burbuja o ilusión de estabilidad que era insostenible.

Luego Argentina pasó a la etapa de la recesión (1998) y la agonía de la convertibilidad que generó desempleo e inestabilidad, además los mercados financieros comenzaron a dudar de su capacidad para mantener la convertibilidad y pagar su deuda. Las tasas de interés para el país se dispararon, dificultando aún más el refinanciamiento de la deuda. El FMI otorgó sucesivos rescates financieros, pero las condiciones impuestas, como ajuste fiscal y recortes de gasto, agudizaron la recesión y el malestar social.

Para Diciembre de 2001, fue la época del Colapso y el “Corralito”. En esta etapa la fuga de capitales se aceleró a medida que la confianza en el sistema bancario y la convertibilidad se desmoronaba. Entonces, para frenar la salida de depósitos y evitar el colapso bancario, el 1 de diciembre de 2001, el gobierno del presidente Fernando de la Rúa (Centroizquierda) implementó el “Corralito”, una medida que restringía la libre disposición de dinero en efectivo de los depósitos bancarios. Esto significaba que los ciudadanos no podían retirar grandes sumas de sus propias cuentas. Esto desató una ola de indignación popular, protestas masivas y disturbios en todo el país. El caos llegó a tal punto que, el 20 de diciembre de 2001, Fernando de la Rúa renunció a la presidencia, marcando el inicio de un período de extrema inestabilidad política con varios presidentes en un corto lapso.

A principios de enero de 2002, el gobierno de Eduardo Duhalde (Peronismo), que asumió la presidencia, declaró el fin de la convertibilidad y devaluó el peso. La paridad fija de 1 a 1 fue abandonada, y el peso se devaluó rápidamente. Después se implementó la “pesificación asimétrica” las deudas en dólares se convirtieron a pesos a una tasa de 1 a 1 (beneficiando a los deudores), mientras que los depósitos en dólares se convirtieron a pesos a una tasa de 1.4 a 1 (perjudicando a los ahorristas). Esto generó una enorme pérdida de confianza.

Argentina se recuperó fuertemente a partir de 2003-2004 gracias a un tipo de cambio competitivo y el aumento de los precios de las materias primas (soja). Alcanzó un pico cercano a 27,000 en 2008. Esta pequeña caída en el PIB de Argentina en 2008 fue principalmente un reflejo del impacto de la Crisis Financiera Global de 2008, que se manifestó a través de una menor demanda externa, una reducción en los precios de los commodities y una contracción del crédito global. Esta situación se vio agravada por tensiones internas como el conflicto con el sector agropecuario por las retenciones a las exportaciones, lo que afectó la producción y la recaudación fiscal en un momento de vulnerabilidad externa.

A pesar de esta contracción, el impacto en Argentina fue en cierta medida mitigado en comparación con otros países, debido a que el país ya tenía menos integración con el sistema financiero global tras su crisis de 2001, y había acumulado reservas internacionales y mantenía una balanza comercial superavitaria (aunque reducida por la caída de exportaciones). La rápida recuperación posterior se debió en parte al repunte de los precios de los commodities y a políticas anticíclicas del gobierno.

p_population <- autoplot(argentina_population_ts_train) +
  ggtitle("Evolución de la Población en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Población")
ggplotly(p_population)

La población de Argentina muestra un crecimiento muy estable y casi perfectamente lineal a lo largo de todo el período de entrenamiento. Pasó de aproximadamente 32.5 millones en 1990 a más de 42.5 millones en 2016. Esta tendencia constante es típica de la dinámica poblacional natural de un país, lo que la convierte en una variable potencialmente robusta para capturar efectos de escala o demográficos en el modelo de esperanza de vida.

p_death_rate <- autoplot(argentina_death_rate_ts_train) +
  ggtitle("Evolución de la Tasa de Mortalidad en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Tasa de Mortalidad")
ggplotly(p_death_rate) 

La tasa de mortalidad (Death_rate) en Argentina exhibe un comportamiento bastante fluctuante y errático a lo largo del período, sin una tendencia clara y sostenida. Sus valores oscilan predominantemente entre aproximadamente 7.4 y 7.9 defunciones por cada 1,000 habitantes. La ausencia de una tendencia definida sugiere que sus variaciones anuales están influenciadas por factores distintos al paso lineal del tiempo.

Particularmente interesante resulta el gran pico observado alrededor de 2007. Aunque este período coincide con un fuerte crecimiento económico en el país, lo que a primera vista podría parecer contradictorio con un aumento de la mortalidad, se hipotetiza que este incremento puntual podría estar relacionado con la dinámica demográfica. A medida que la población envejece, las enfermedades crónicas tienden a convertirse en las principales causas de muerte. Por lo tanto, un aumento en la tasa de mortalidad en un año específico podría deberse a una cohorte más grande de adultos mayores alcanzando edades con mayor riesgo de desarrollar y fallecer por estas enfermedades

p_internet <- autoplot(argentina_internet_ts_train) +
  ggtitle("Evolución del Uso de Internet en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Uso de Internet (% población)")
ggplotly(p_internet) 

El uso de internet muestra un crecimiento exponencial. Partiendo de niveles casi nulos en 1990, comienza un ascenso gradual a finales de los 90 y principios de los 2000, para luego acelerarse drásticamente a partir de 2005. Hacia 2016, casi el 70% de la población tiene acceso a internet. Esto refleja la rápida adopción de la tecnología y la digitalización del país.

p_fertility <- autoplot(argentina_fertility_ts_train) +
  ggtitle("Evolución de la Tasa de Fertilidad en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Tasa de Fertilidad")
ggplotly(p_fertility) 

La tasa de fertilidad en Argentina muestra una clara y sostenida tendencia decreciente a lo largo del período. Desde más de 3.0 nacimientos por mujer en 1990, disminuye progresivamente hasta acercarse a 2.2-2.3 en 2016. Esto es consistente con tendencias demográficas globales de países en desarrollo y desarrollados, atribuidas a factores como educación, urbanización y acceso a planificación familiar.

p_hdi <- autoplot(argentina_hdi_ts_train) +
  ggtitle("Evolución del Índice de Desarrollo Humano (HDI) en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("HDI")
ggplotly(p_hdi) 

El Índice de Desarrollo Humano (HDI) presenta una fuerte y consistente tendencia ascendente. Desde aproximadamente 0.72 en 1990, sube de manera casi lineal hasta alcanzar cerca de 0.85 en 2016. Esto indica una mejora generalizada en los componentes del HDI: esperanza de vida, educación e ingresos per cápita.

p_co2 <- autoplot(argentina_co2_ts_train) +
  ggtitle("Evolución de las Emisiones de CO2 Per Cápita en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Emisiones de CO2 Per Cápita")
ggplotly(p_co2) 

Las emisiones de CO2 per cápita muestran una tendencia general creciente, pero con fluctuaciones notables. Aumentan desde 1990 hasta un pico alrededor de 2000, experimentan una caída pronunciada durante la crisis de 2001-2002, este fue un efecto directo y casi mecánico de la severa recesión económica. Cuando la economía se contrae drásticamente, la producción industrial y el consumo de energía disminuyen, lo que a su vez reduce las emisiones de gases de efecto invernadero asociados a la quema de combustibles fósiles. No fue resultado de políticas ambientales deliberadas o mejoras en la eficiencia, sino una consecuencia dolorosa de la crisis económica.

La posterior recuperación de las emisiones corresponde con la reactivación económica del país, el aumento de la producción y el consumo de energía. Después de un pico en 2008, se estabilizan y muestran una ligera tendencia a la baja o a la meseta hacia el final del período. Esto refleja la relación entre la actividad económica y las emisiones.

p_urban <- autoplot(argentina_urban_ts_train) +
  ggtitle("Evolución de la Población Urbana en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Población Urbana (% total)")
ggplotly(p_urban) 

la población urbana como porcentaje del total muestra una tendencia ascendente muy marcada y casi perfectamente lineal. Aumentó de menos del 87% en 1990 a casi el 93% en 2016. Esto confirma la fuerte urbanización de Argentina durante este período.

p_rural <- autoplot(argentina_rural_ts_train) +
  ggtitle("Evolución de la Población Rural en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Población Rural (% total)")
ggplotly(p_rural) 

La población rural como porcentaje del total muestra una tendencia decreciente muy marcada y casi perfectamente lineal. Disminuye de más del 12.5% en 1990 a menos del 7% en 2016. Esta es una clara señal de urbanización y migración del campo a la ciudad

p_electricity <- autoplot(argentina_electricity_ts_train) +
  ggtitle("Evolución del Acceso a Electricidad en Argentina (Entrenamiento)") +
  xlab("Año") + ylab("Acceso a Electricidad (% población)")
ggplotly(p_electricity)  

El acceso a electricidad en Argentina muestra un crecimiento constante y muy alto, acercándose a la cobertura total. Inicia en aproximadamente 92% en 1990 y asciende progresivamente hasta casi el 100% en 2014, con leves fluctuaciones hacia el final del período. Esto indica un éxito significativo en la expansión de infraestructura básica.

3.3 Gráficos de Autocorrelación (ggAcf)

Los gráficos ACF (Función de Autocorrelación) nos ayudan a entender la dependencia de cada observación con respecto a las observaciones pasadas (rezagos). Las barras que superan las líneas azules punteadas indican una autocorrelación estadísticamente significativa. Un análisis de estos gráficos es crucial para identificar patrones como tendencias o estacionalidad en la serie, así como para determinar si una serie es estacionaria. La forma en que las autocorrelaciones decaen (rápidamente o lentamente) proporciona información valiosa para la selección de la estructura adecuada en modelos de series de tiempo.

ggAcf(argentina_expect_ts_train, lag.max = 26) +
  ggtitle("ACF para Esperanza de Vida en Argentina (Entrenamiento)") 

Este gráfico presenta una autocorrelación positiva y decreciente que se mantiene significativa hasta al menos el rezago 5. Esto es característico de una serie con una fuerte tendencia. La alta autocorrelación en los primeros rezagos sugiere que el valor de la esperanza de vida en un año está fuertemente relacionado con el valor del año anterior, lo que es coherente con la tendencia ascendente observada anteriormente. La serie no es estacionaria.

ggAcf(argentina_gdp_ts_train, lag.max = 26) +
  ggtitle("ACF para PIB Per Cápita en Argentina (Entrenamiento)")

Este muestra una autocorrelación positiva y decreciente que se mantiene significativa hasta al menos el rezago 4. Aunque el PIB per cápita tiene más fluctuaciones, la tendencia subyacente de crecimiento hace que las observaciones pasadas influyan en las futuras, lo que se refleja en esta ACF. Esto indica no estacionariedad.

ggAcf(argentina_population_ts_train, lag.max = 26) +
  ggtitle("ACF para Población en Argentina (Entrenamiento)")

Presenta una autocorrelación muy alta y persistente, que se mantiene significativa en casi todos los rezagos mostrados. Esto es el patrón típico de una serie con una tendencia muy fuerte y lineal, lo que indica una clara no estacionariedad.

ggAcf(argentina_death_rate_ts_train, lag.max = 26) +
  ggtitle("ACF para Tasa de Mortalidad en Argentina (Entrenamiento)")

A diferencia de las anteriores, esta ACF muestra pocas autocorrelaciones significativas. Los rezagos 1 y 2 son ligeramente negativos,El rezago 9 muestra una autocorrelación positiva. La mayoría de los rezagos caen dentro de las bandas de confianza. Esto sugiere que la tasa de mortalidad es una serie más cercana a la estacionariedad o con una tendencia muy débil y más ruido. Sus valores pasados no predicen fuertemente los futuros.

ggAcf(argentina_internet_ts_train, lag.max = 26) +
  ggtitle("ACF para Uso de Internet en Argentina (Entrenamiento)")

Aquí se muestra una autocorrelación muy fuerte y positiva que decae lentamente, permaneciendo significativa en casi todos los rezagos. Esto es un indicativo de una serie no estacionaria con una fuerte tendencia ascendente, como se observó en su gráfico evolución, especialmente con su crecimiento exponencial.

ggAcf(argentina_fertility_ts_train, lag.max = 26) +
  ggtitle("ACF para Tasa de Fertilidad en Argentina (Entrenamiento)")

Presenta una autocorrelación positiva y decreciente que se mantiene significativa en la mayoría de los rezagos. Esto es indicativo de una serie no estacionaria con una tendencia clara (en este caso, decreciente), lo que es coherente con lo observado en su gráfico de evolución.

ggAcf(argentina_hdi_ts_train, lag.max = 26) +
  ggtitle("ACF para HDI en Argentina (Entrenamiento)")

Muestra una autocorrelación muy fuerte y positiva que decae lentamente y se mantiene significativa en todos los rezagos. Este es el patrón clásico de una serie no estacionaria con una fuerte tendencia ascendente.

ggAcf(argentina_co2_ts_train, lag.max = 26) +
  ggtitle("ACF para Emisiones de CO2 Per Cápita en Argentina (Entrenamiento)")

Exhibe una autocorrelación positiva que decae, siendo significativa en varios rezagos, especialmente los primeros. Esto sugiere la presencia de una tendencia, a pesar de las fluctuaciones, indicando no estacionariedad. Coincide con la tendencia general ascendente, aunque con periodos de caída.

ggAcf(argentina_urban_ts_train, lag.max = 26) +
  ggtitle("ACF para Población Urbana en Argentina (Entrenamiento)")

Presenta una autocorrelación muy alta y persistente en todos los rezagos significativos. Este es el patrón clásico de una serie no estacionaria con una tendencia fuerte y lineal.

ggAcf(argentina_rural_ts_train, lag.max = 26) +
  ggtitle("ACF para Población Rural en Argentina (Entrenamiento)")

Muestra una autocorrelación muy alta y persistente en todos los rezagos significativos. Esto es característico de una serie no estacionaria con una tendencia fuerte y lineal.

ggAcf(argentina_electricity_ts_train, lag.max = 26) +
  ggtitle("ACF para Acceso a Electricidad en Argentina (Entrenamiento)")

Muestra una autocorrelación muy fuerte y positiva que se mantiene significativa en la mayoría de los rezagos. Esto indica una serie no estacionaria con una fuerte tendencia ascendente, en línea con el gráfico de evolución que muestra una expansión casi total.

3.3 Gráficos de Dispersión (X vs Y)

Estos gráficos muestran la relación entre la variable dependiente (Esperanza de Vida, Expect) y cada una de las variables independientes (X) a lo largo del tiempo. La línea azul representa una regresión lineal simple, ayudando a visualizar la tendencia de esta relación. A través de estos gráficos, podemos obtener una primera impresión sobre la dirección (positiva o negativa) y la aparente fuerza de la relación lineal entre las variables, lo cual es fundamental para identificar posibles predictores clave en nuestro modelo de series de tiempo.

p_gdp_expect <- ggplot(train_data, aes(x = GDP, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. PIB Per Cápita (Entrenamiento)") +
  xlab("PIB Per Cápita") + ylab("Esperanza de Vida")
ggplotly(p_gdp_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Se observa una relación positiva clara entre la esperanza de vida y el PIB per cápita. A medida que el PIB per cápita aumenta, la esperanza de vida tiende a aumentar. La línea de regresión azul muestra esta correlación positiva. Sin embargo, los puntos no están perfectamente alineados, lo que sugiere que aunque hay una relación fuerte, también hay otros factores que influyen en la esperanza de vida, o que la relación no es perfectamente lineal a lo largo de todo el rango. La dispersión es notable, especialmente en el rango medio del PIB per cápita.

p_pop_expect <- ggplot(train_data, aes(x = Population, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Población (Entrenamiento)") +
  xlab("Población") + ylab("Esperanza de Vida")
ggplotly(p_pop_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Existe una relación positiva muy fuerte y casi lineal entre la esperanza de vida y la población total. A medida que la población aumenta (con el tiempo), la esperanza de vida también aumenta. Los puntos están muy agrupados alrededor de la línea de regresión, lo que indica una correlación positiva muy alta. Esto puede deberse a que ambas variables tienen una fuerte tendencia temporal ascendente.

p_death_expect <- ggplot(train_data, aes(x = Death_rate, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Tasa de Mortalidad (Entrenamiento)") +
  xlab("Tasa de Mortalidad") + ylab("Esperanza de Vida")
ggplotly(p_death_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Se observa una relación negativa, aunque con considerable dispersión. A medida que la tasa de mortalidad aumenta, la esperanza de vida tiende a disminuir, lo cual es lógicamente esperado. Sin embargo, la dispersión de los puntos alrededor de la línea de regresión es alta, y la pendiente de la línea es relativamente plana, lo que sugiere que, si bien hay una relación inversa, no es tan fuerte o lineal como con otras variables, o que la tasa de mortalidad por sí sola no explica gran parte de la varianza en la esperanza de vida.

p_internet_expect <- ggplot(train_data, aes(x = Internet, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Uso de Internet (Entrenamiento)") +
  xlab("Uso de Internet (% población)") + ylab("Esperanza de Vida")
ggplotly(p_internet_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Muestra una relación positiva muy fuerte y casi lineal. A medida que el uso de internet aumenta, la esperanza de vida también aumenta. Los puntos están muy cerca de la línea de regresión, especialmente en los rangos más altos de uso de internet. Esto sugiere que el acceso y uso de tecnologías de la información pueden estar correlacionados con la modernización y, por ende, con la esperanza de vida.

p_fert_expect <- ggplot(train_data, aes(x = Fertility, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Tasa de Fertilidad (Entrenamiento)") +
  xlab("Tasa de Fertilidad") + ylab("Esperanza de Vida")
ggplotly(p_fert_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Se observa una relación negativa muy fuerte y bastante lineal. A medida que la tasa de fertilidad disminuye, la esperanza de vida tiende a aumentar. Esto es una tendencia demográfica común donde países con mayor desarrollo y esperanza de vida suelen tener tasas de natalidad más bajas debido a factores socioeconómicos y culturales. Los puntos se agrupan bien alrededor de la línea de regresión.

p_hdi_expect <- ggplot(train_data, aes(x = HDI, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. HDI (Entrenamiento)") +
  xlab("HDI") + ylab("Esperanza de Vida")
ggplotly(p_hdi_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Presenta una relación positiva extremadamente fuerte y lineal. A medida que el Índice de Desarrollo Humano (HDI) aumenta, la esperanza de vida también lo hace de manera muy predecible. Los puntos están muy pegados a la línea de regresión. Esto es esperado, ya que la esperanza de vida es uno de los componentes clave del HDI, por lo que una alta correlación es inherente a la definición del índice.

p_co2_expect <- ggplot(train_data, aes(x = CO2, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Emisiones de CO2 Per Cápita (Entrenamiento)") +
  xlab("Emisiones de CO2 Per Cápita") + ylab("Esperanza de Vida")
ggplotly(p_co2_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Se observa una relación positiva clara. A medida que las emisiones de CO2 per cápita aumentan, la esperanza de vida tiende a aumentar. Esta relación puede parecer contraintuitiva en términos de salud ambiental directa, pero probablemente refleja la correlación de ambos con el desarrollo económico e industrial. Los países con mayor desarrollo económico también tienden a tener mayores emisiones de CO2 per cápita debido a su actividad industrial y consumo energético.

p_urban_expect <- ggplot(train_data, aes(x = Urban, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Población Urbana (Entrenamiento)") +
  xlab("Población Urbana (% total)") + ylab("Esperanza de Vida")
ggplotly(p_urban_expect) 
## `geom_smooth()` using formula = 'y ~ x'

Presenta una relación positiva muy fuerte y lineal. A medida que el porcentaje de población urbana aumenta, la esperanza de vida también aumenta. Esto es el complemento directo del gráfico anterior y refuerza la idea de que la urbanización está asociada con una mayor esperanza de vida en Argentina durante este período, debido a un mejor acceso a servicios. Los puntos están muy cerca de la línea de regresión.

p_rural_expect <- ggplot(train_data, aes(x = Rural, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Población Rural (Entrenamiento)") +
  xlab("Población Rural (% total)") + ylab("Esperanza de Vida")
ggplotly(p_rural_expect)
## `geom_smooth()` using formula = 'y ~ x'

Muestra una relación negativa muy fuerte y lineal. A medida que el porcentaje de población rural disminuye, la esperanza de vida tiende a aumentar. Esto es coherente con la urbanización y el acceso a mejores servicios de salud, saneamiento y oportunidades que suelen concentrarse en áreas urbanas, lo que contribuye a una mayor esperanza de vida. Los puntos están bastante cerca de la línea de regresión.

p_elec_expect <- ggplot(train_data, aes(x = Electricity, y = Expect)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  ggtitle("Esperanza de Vida vs. Acceso a Electricidad (Entrenamiento)") +
  xlab("Acceso a Electricidad (% población)") + ylab("Esperanza de Vida")
ggplotly(p_elec_expect)
## `geom_smooth()` using formula = 'y ~ x'

Se observa una relación positiva extremadamente fuerte y lineal. A medida que el acceso a electricidad (% población) aumenta, la esperanza de vida también lo hace. Dado que el acceso a electricidad se acerca al 100%, esta variable actúa casi como un indicador de desarrollo básico consolidado. Los puntos están muy alineados con la línea de regresión, sugiriendo una correlación muy alta.

3.4 Matriz de Diagramas de Dispersión (ggpairs)

Estos gráficos proporcionan una visión holística de las relaciones entre todas las variables en el conjunto de datos de entrenamiento. Más allá de las relaciones bivariadas, la matriz ggpairs combina en una sola visualización los diagramas de dispersión para cada par de variables (revelando la dirección y fuerza de su relación), las distribuciones univariadas de cada variable (en la diagonal) y los coeficientes de correlación. Esto es fundamental para identificar rápidamente patrones, detectar posibles relaciones no lineales, evaluar la existencia de multicolinealidad entre las variables predictoras y, en última instancia, comprender mejor la estructura general de los datos antes de la construcción del modelo lineal de series de tiempo.

set.seed(201780)
argentina_vars_for_pairs_train <- train_data %>%
  select(Expect, GDP, Population, Death_rate, Internet, Fertility, HDI, CO2, Urban, Rural, Electricity)

ggpairs(argentina_vars_for_pairs_train,
        title = "Relaciones entre Variables Clave en Argentina (Entrenamiento)")

Este es un gráfico de pares que muestra la relación bivariada entre cada par de variables.

  • Diagonal superior (coeficientes de correlación): Muestra el coeficiente de correlación de Pearson y la significancia estadística (asteriscos).

Expect con otras variables:

  • Correlaciones positivas muy fuertes (más de 0.9): HDI (0.987), Urban (0.991), Electricity (0.984), Population (0.986). Esto es muy significativo y esperado dada la naturaleza de estas variables como indicadores de desarrollo y servicios básicos.

  • Correlaciones positivas fuertes (0.8-0.9): GDP (0.860), Internet (0.885), CO2 (0.850). Estas también son relaciones importantes, indicando que el crecimiento económico, la conectividad y las emisiones están asociadas con mayor calidad de vida.

  • Correlaciones negativas fuertes: Fertility (-0.956), Rural (-0.991). Esto confirma lo visto en los gráficos de dispersión: a menor fertilidad y menor población rural, mayor esperanza de vida. Debido a esa falta de acceso a servicios en zonas rurales, y la modernización o concientización sobre la responsabilidad de tener hijos es que se ve aumentada la expectativa de vida si ambas variables disminuyen.

  • Correlación negativa débil: Death_rate (-0.147). La correlación con la tasa de mortalidad es inversa, pero muy débil.

Otras correlaciones notables:

GDP muestra correlaciones muy fuertes con Internet, HDI, CO2, Urban, Electricity (todas por encima de 0.8), y negativas fuertes con Fertility y Rural. Esto sugiere que el PIB per cápita es un buen indicador general de desarrollo y modernización.

Population tiene correlaciones muy altas con Urban y Electricity, y negativa muy alta con Rural, lo que es natural ya que son porcentajes del total. Sin embargo, su relación con otras variables es más variada.

Death_rate muestra correlaciones generalmente bajas con la mayoría de las variables, lo que corrobora que su comportamiento es más errático y menos ligado a las tendencias generales de desarrollo. Esto refleja la razón de que al momento de calcular o analizar la expectativa de vida se use generalmente la tasa de muerte infantil, pues la tasa de muerte general no tiene un buen poder de explicación y conserva muy poca relación con otras variables.

Internet, HDI, CO2, Urban, Electricity muestran entre sí correlaciones positivas muy fuertes, lo que indica que tienden a moverse juntas como indicadores de desarrollo.

Fertility y Rural muestran correlaciones negativas muy fuertes con la mayoría de las variables de “desarrollo” (GDP, Internet, HDI, CO2, Urban, Electricity) y positivas fuertes entre sí, lo que es coherente con el proceso de urbanización y cambio demográfico.

  • Diagonal inferior (gráficos de dispersión): Muestra la nube de puntos para cada par de variables, confirmando visualmente las correlaciones descritas anteriormente. Las formas de las nubes de puntos con Expect ya se analizaron individualmente. Aquí podemos ver las relaciones entre todas las demás, por ejemplo, la curva entre GDP y CO2, probablemente reflejando el período de crecimiento, caída y recuperación, o la relación inversa entre Rural y Urban, que son complementarias.

3.5 Matriz de Correlación de las Variables Numéricas

Esta matriz de calor visualiza los coeficientes de correlación de Pearson entre todas las variables, indicando su tendencia y fuerza. Esta representación gráfica permite identificar rápidamente las relaciones bivariadas, tanto directas como inversas, y su magnitud. Es una herramienta esencial para detectar posibles problemas de multicolinealidad entre las variables predictoras, lo cual es crucial para la estabilidad y la interpretabilidad de los coeficientes en un modelo lineal de series de tiempo.

set.seed(201780)
variables_numericas_modelo_train <- train_data %>%
  select(Expect, GDP, Population, Death_rate, Internet, Fertility, HDI, CO2, Urban, Rural, Electricity)

correlation_matrix_train <- cor(variables_numericas_modelo_train)
print(correlation_matrix_train)
##                 Expect         GDP   Population   Death_rate   Internet
## Expect       1.0000000  0.86026753  0.985966929 -0.146893354  0.8847952
## GDP          0.8602675  1.00000000  0.880889197 -0.019657715  0.8633093
## Population   0.9859669  0.88088920  1.000000000 -0.003711985  0.9340445
## Death_rate  -0.1468934 -0.01965772 -0.003711985  1.000000000  0.1316256
## Internet     0.8847952  0.86330932  0.934044537  0.131625616  1.0000000
## Fertility   -0.9561977 -0.76601985 -0.945729106  0.039417233 -0.7816037
## HDI          0.9873718  0.89057902  0.993928671 -0.014696935  0.9220470
## CO2          0.8504849  0.92931508  0.845499591 -0.051913593  0.7973893
## Urban        0.9910185  0.86484386  0.991362640 -0.054882938  0.8812450
## Rural       -0.9910185 -0.86484387 -0.991362592  0.054882576 -0.8812450
## Electricity  0.9840776  0.88418370  0.996734269 -0.011675567  0.9354398
##               Fertility         HDI         CO2       Urban       Rural
## Expect      -0.95619774  0.98737182  0.85048488  0.99101850 -0.99101847
## GDP         -0.76601985  0.89057902  0.92931508  0.86484386 -0.86484387
## Population  -0.94572911  0.99392867  0.84549959  0.99136264 -0.99136259
## Death_rate   0.03941723 -0.01469693 -0.05191359 -0.05488294  0.05488258
## Internet    -0.78160366  0.92204700  0.79738929  0.88124503 -0.88124497
## Fertility    1.00000000 -0.94580319 -0.77473499 -0.97388372  0.97388376
## HDI         -0.94580319  1.00000000  0.87322263  0.98962553 -0.98962552
## CO2         -0.77473499  0.87322263  1.00000000  0.83933988 -0.83933986
## Urban       -0.97388372  0.98962553  0.83933988  1.00000000 -1.00000000
## Rural        0.97388376 -0.98962552 -0.83933986 -1.00000000  1.00000000
## Electricity -0.93834512  0.99285757  0.84361075  0.98892342 -0.98892344
##             Electricity
## Expect       0.98407763
## GDP          0.88418370
## Population   0.99673427
## Death_rate  -0.01167557
## Internet     0.93543984
## Fertility   -0.93834512
## HDI          0.99285757
## CO2          0.84361075
## Urban        0.98892342
## Rural       -0.98892344
## Electricity  1.00000000
corrplot(correlation_matrix_train,
         method = "color",
         type = "upper",
         tl.col = "black",
         tl.srt = 45,
         addCoef.col = "black",
         col = colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))(200),
         diag = FALSE,
         title = "Matriz de Correlación de Variables para el Modelo en Argentina (Entrenamiento)",
         mar=c(0,0,1,0))

Esta matriz de calor visualiza los coeficientes de correlación de Pearson entre todas las variables, indicando su tendencia y fuerza.

Analizaremos las filas y columnas con Expect (Esperanza de Vida): Contamos correlación positiva muy fuerte en Electricity (0.98), Urban (0.99), HDI (0.99), Internet (0.88), CO2 (0.85), GDP (0.86). Esto refuerza la idea de que la Esperanza de Vida está muy fuertemente correlacionada con indicadores de desarrollo y modernización.

Para la correlación negativa muy fuerte están Rural (-0.99), Fertility (-0.96). Confirmando que la disminución de la población rural y de la tasa de fertilidad están fuertemente asociadas con el aumento de la esperanza de vida.

Por otro lado, Death_rate (-0.15) cuenta con una correlación inversa muy débil, lo que indica que, a pesar de su lógica aparente, la tasa de mortalidad tal como está medida no es un predictor fuerte de la esperanza de vida por sí misma en este conjunto de datos.

Ahora analizaremos las correlaciones entre las variables independientes.

Se reafirman las fuertes intercorrelaciones entre las variables de desarrollo (GDP, Internet, HDI, CO2, Urban, Electricity). Por ejemplo, HDI tiene correlaciones de 0.99 con Urban y Electricity, y 0.92 con Internet. Internet tiene 0.94 con Electricity y 0.88 con Urban. Esto es importante porque la alta multicolinealidad entre las variables predictoras es un desafío en modelos de regresión lineal múltiple.

Rural y Urban son casi perfectamente inversamente correlacionadas (-1), lo cual es esperable ya que son porcentajes complementarios del total. Esto significa que no se pueden usar ambas en el mismo modelo lineal sin causar problemas de multicolinealidad perfecta.

Por lo tanto, al momento de modelar no usaremos Rural, pues este grave problema de multicolinealidad debemos evitarlo. Usaremos Urban en su defecto, pues está más relacionado con el aumento de desarrollo.

Fertility muestra fuertes correlaciones negativas con todas las variables de desarrollo.

Death_rate continúa mostrando correlaciones muy débiles con casi todas las demás variables, lo que sugiere que se comporta de manera más independiente o ruidosa en el contexto de estas tendencias de desarrollo.

3.6 Función de Correlación Cruzada (CCF)

Los gráficos de CCF (Cross-Correlation Function) nos muestran la correlación entre dos series de tiempo en diferentes rezagos (lags). Un pico en el lag 0 indica una correlación contemporánea. Picos en rezagos positivos (ej. Lag 5) significan que los valores pasados de la variable X están correlacionados con los valores actuales de la Esperanza de Vida (Y). Picos en rezagos negativos (ej. Lag -5) significan que los valores futuros de la variable X están correlacionados con los valores actuales de la Esperanza de Vida, lo que puede indicar que Esperanza de Vida es una variable “líder” o que la causalidad va de Y a X en el tiempo. Sin embargo, en presencia de tendencias fuertes en ambas series (como es el caso de muchas de nuestras variables), la CCF puede mostrar correlaciones espurias en varios rezagos, y es importante interpretarlas con cautela.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(gdp_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. PIB (Argentina, Entrenamiento)", lag.max = 26)

Este gráfico muestra una fuerte correlación positiva en el lag 0, lo que indica que el PIB per cápita y la esperanza de vida se mueven en la misma dirección contemporáneamente. Además, hay correlaciones positivas significativas en rezagos tanto positivos como negativos, lo cual es muy común cuando ambas series tienen una fuerte tendencia ascendente (no estacionarias). La correlación es más alta alrededor del lag 0 y disminuye a medida que nos alejamos de él. Esto sugiere que el PIB contemporáneo o ligeramente rezagado (positivo o negativo) está fuertemente relacionado con la esperanza de vida.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(population_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. Población (Argentina, Entrenamiento)", lag.max = 26)

Al igual que con el PIB, se observa una correlación positiva muy fuerte en el lag 0, y esta correlación se mantiene alta y significativa en varios rezagos positivos y negativos. Esto se debe a la tendencia ascendente compartida entre la esperanza de vida y la población a lo largo del tiempo. Los picos más altos cerca de Lag 0 refuerzan la idea de una fuerte relación contemporánea, pero la persistencia en otros rezagos es un reflejo de la tendencia.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(death_rate_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. Tasa de Mortalidad (Argentina, Entrenamiento)", lag.max = 26)

Este gráfico es muy diferente. Las correlaciones son mayormente débiles y no significativas en la mayoría de los rezagos. El pico más significativo parece estar en un rezago negativo, alrededor de -7, y un par de rezagos positivos (5, 6) también muestran algo de significancia, pero de forma más errática. Esto sugiere que no hay una relación contemporánea fuerte o persistente entre la esperanza de vida y la tasa de mortalidad en este conjunto de datos, o que la relación es más compleja y no lineal, lo que es coherente con el comportamiento más ruidoso de la Tasa de Mortalidad.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(internet_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. Uso de internet (Argentina, Entrenamiento)", lag.max = 26)

Se observa una correlación positiva muy fuerte en el lag 0, con valores que se mantienen altos y significativos en varios rezagos positivos y negativos. La correlación es muy pronunciada alrededor del lag 0. Esto es consistente con las fuertes tendencias ascendentes de ambas variables. Indica que el crecimiento en el uso de internet está estrechamente ligado al aumento de la esperanza de vida.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(fertility_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. Tasa de Fertilidad (Argentina, Entrenamiento)", lag.max = 26)

Este gráfico muestra una correlación negativa muy fuerte en el lag 0, lo que significa que a medida que la tasa de fertilidad disminuye, la esperanza de vida tiende a aumentar contemporáneamente. Las correlaciones negativas también son significativas en varios rezagos positivos y negativos, lo que se atribuye a las tendencias opuestas de ambas series. El pico negativo más profundo en el lag 0 resalta la fuerte relación inversa simultánea.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(hdi_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. HDI (Argentina, Entrenamiento)", lag.max = 26)

Presenta una correlación positiva extremadamente fuerte en el lag 0, y esta fuerza se extiende a los rezagos cercanos. Dada la alta correlación contemporánea ya vista en la matriz de correlación y el hecho de que la esperanza de vida es un componente del HDI, esta fuerte correlación cruzada es esperada. Prácticamente todos los rezagos muestran correlaciones significativas debido a las fuertes tendencias compartidas.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(co2_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. Emisiones de CO2 Per Cápita (Argentina, Entrenamiento)", lag.max = 26)

Se observa una correlación positiva fuerte en el lag 0, con valores significativos en varios rezagos positivos y negativos. El patrón es similar al de otras variables con tendencia ascendente (como PIB o Internet). Esto sugiere que el aumento en las emisiones de CO2, como muestra del desarrollo económico/industrial, está asociado con el aumento de la esperanza de vida.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(urban_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. Población Urbana (Argentina, Entrenamiento)", lag.max = 26)

Presenta una correlación positiva muy fuerte en el lag 0, y las correlaciones se mantienen muy significativas en varios rezagos positivos y negativos. Es consistente con la urbanización y el acceso a servicios asociados con ella que contribuyen a una mayor esperanza de vida.

ccf(as.numeric(expect_ts_for_ccf), as.numeric(electricity_ts_for_ccf),
    main = "CCF: Esperanza de Vida vs. Acceso a Electricidad (Argentina, Entrenamiento)", lag.max = 26)

Muestra una correlación positiva extremadamente fuerte en el lag 0, y esta fuerza se mantiene en los rezagos cercanos. Es esperable, dado que el acceso a electricidad es un indicador fundamental de desarrollo y ha mostrado un crecimiento casi hacia el 100%. La correlación es muy pronunciada y significativa en casi todos los rezagos.

4. Modelado Series de Tiempo Y Predicción

En esta sección, se procederá con la construcción y evaluación de un modelo de series de tiempo para la Esperanza de Vida en Argentina, utilizando las variables identificadas en la fase de análisis exploratorio. El objetivo principal será capturar la dinámica temporal de la serie y generar predicciones futuras.

4.1 Construcción del Modelo Lineal de Series de Tiempo (tslm)

En esta subsección, se detallará el proceso de especificación y estimación del Modelo Lineal de Series de Tiempo (tslm). Se definirá la variable dependiente (Expect) y se seleccionarán las variables predictoras (exógenas y autorregresivas) que mejor expliquen su comportamiento a lo largo del tiempo, utilizando el conjunto de datos de entrenamiento.

# 10. Construcción del Modelo Lineal de Series de Tiempo (tslm) con datos de TRAIN

modelo_expectancia <- tslm(Expect ~ GDP + Internet + HDI + CO2 + Electricity +
                             Population + Death_rate + Fertility + Urban, 
                           data = train_ts_data_model)

# Ver el resumen del modelo
summary(modelo_expectancia)
## 
## Call:
## tslm(formula = Expect ~ GDP + Internet + HDI + CO2 + Electricity + 
##     Population + Death_rate + Fertility + Urban, data = train_ts_data_model)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.05456 -0.04372 -0.01161  0.03424  0.11893 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  9.233e+01  1.700e+01   5.430 4.50e-05 ***
## GDP         -2.034e-05  1.524e-05  -1.335 0.199601    
## Internet    -1.834e-02  8.667e-03  -2.117 0.049352 *  
## HDI          1.619e+01  3.998e+00   4.049 0.000834 ***
## CO2          1.438e-01  1.046e-01   1.374 0.187337    
## Electricity  2.181e-01  1.073e-01   2.032 0.058092 .  
## Population   5.362e-07  1.651e-07   3.248 0.004730 ** 
## Death_rate  -1.394e+00  1.153e-01 -12.090 8.97e-10 ***
## Fertility   -9.730e-01  5.156e-01  -1.887 0.076374 .  
## Urban       -6.515e-01  3.277e-01  -1.988 0.063192 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06184 on 17 degrees of freedom
## Multiple R-squared:  0.9989, Adjusted R-squared:  0.9983 
## F-statistic:  1649 on 9 and 17 DF,  p-value: < 2.2e-16

Análisis de summary(modelo_expectancia)

El summary() del modelo_expectancia nos proporciona una visión exhaustiva de la calidad del ajuste y la significancia estadística de cada predictor en la explicación de la Esperanza de Vida (Expect) en Argentina a lo largo del tiempo.

  • 1. Llamada al Modelo (Call) La llamada muestra que se ha ajustado un Modelo Lineal de Series de Tiempo (tslm) utilizando la Esperanza de Vida como variable dependiente, explicada por un conjunto de 10 variables predictoras: GDP, Internet, HDI, CO2, Electricity, Population, Death_rate, Fertility, Urban, sobre el conjunto de datos de entrenamiento (train_ts_data_model).

  • 2. Residuales

  • Distribución: Los residuales varían de -0.05456 a 0.11893. El primer cuartil (-0.04372) y el tercer cuartil (0.03424) son relativamente simétricos alrededor de la mediana (-0.01161), que está muy cerca de cero. Esto sugiere que el modelo no tiene un sesgo sistemático en sus predicciones y que los errores están distribuidos de manera razonablemente centrada en cero, lo cual es deseable.

  • Magnitud: La magnitud de los residuales es bastante pequeña, lo que indica que el modelo es capaz de predecir la esperanza de vida con una alta precisión, dado que la esperanza de vida en sí varía en un rango de aproximadamente 5 años (de 71.61 a 76.85 años en los datos).

  • 3. Coeficientes (Coefficients)

Esta sección es crucial para entender la contribución individual y la significancia estadística de cada variable.

Variables Altamente Significativas ( p < 0.001, p < 0.01):

  • (Intercept) - 92.33: El intercepto es altamente significativo (p = 0.00045). Representa el valor base de la Esperanza de Vida cuando todas las demás variables predictoras son cero. Aunque su interpretación directa en valores cero puede no ser siempre práctica para todas las variables, su significancia global es importante.

  • HDI (Índice de Desarrollo Humano) - 16.19: Es altamente significativo (p = 0.000834). Por cada aumento de una unidad en el HDI, la Esperanza de Vida se incrementa en 16.19 años, manteniendo las otras variables constantes. Esto es muy consistente con la teoría, ya que el HDI es un indicador compuesto de salud, educación e ingreso.

  • Death_rate (Tasa de Mortalidad) - -1.394: Es la variable más significativa del modelo (p = 8.97e-10, es decir, un valor extremadamente bajo). Por cada aumento de una unidad en la tasa de mortalidad (por cada 1,000 habitantes), la Esperanza de Vida disminuye en 1.394 años, manteniendo las otras variables constantes. Esta relación inversa y muy fuerte es lógicamente esperada.

Variables Significativas ( p < 0.05):

  • Population - 5.362e-07: Es significativo (p = 0.00473). Aunque el coeficiente es muy pequeño, esto se debe a la escala de la variable Population (millones). Indica que un aumento en la población está asociado con un ligero incremento en la Esperanza de Vida, lo que podría reflejar el desarrollo general del país que permite sostener una mayor población con mejores condiciones.

Variables Marginalmente Significativas (. p < 0.1):

  • Internet - -0.1834: Es marginalmente significativo (p = 0.0493). Sorprendentemente, el coeficiente es negativo. Esto podría sugerir un efecto complejo o que su influencia positiva ya está capturada por otras variables correlacionadas positivamente (HDI, GDP). En presencia de multicolinealidad, los signos de los coeficientes pueden volverse contraintuitivos.

  • Electricity - 0.2181: Es marginalmente significativo (p = 0.0580). Por cada aumento de una unidad porcentual en el acceso a electricidad, la Esperanza de Vida aumenta en 0.2181 años. Esto es intuitivo, ya que el acceso a electricidad es un indicador de desarrollo e infraestructura.

Variables No Significativas ( p > 0.1):

GDP (-2.034e-05, p = 0.199601), CO2 (0.1438, p = 0.187337), además Fertility (-0.9730, p = 0.076374) y Urban (-0.6515, p = 0.063192) (Marginalmente Significativos).

La no significancia de GDP es interesante, especialmente considerando sus fuertes correlaciones bivariadas con Expect. Esto sugiere que su poder explicativo individual podría estar siendo absorbido por otras variables en el modelo que son más significativas.

4. Error Estándar Residual (Residual standard error)

  • 0.06184 en 17 grados de libertad: Este valor representa la desviación estándar de los residuales. Es una medida del error típico que el modelo comete en sus predicciones. Dada la escala de la Esperanza de Vida (que se mide en años y sus valores reales están en el rango de 70s), un error estándar de 0.06184 años es extremadamente bajo, indicando una precisión muy alta del modelo.

5. R-cuadrado y R-cuadrado Ajustado (R-squared and Adjusted R-squared)

  • Multiple R-squared: 0.9989: Este valor indica que aproximadamente el 99.89% de la varianza en la Esperanza de Vida puede ser explicada por las variables predictoras incluidas en el modelo. Esto es un nivel de ajuste excepcionalmente alto.

  • Adjusted R-squared: 0.9983: Este es un R-cuadrado ajustado por el número de predictores. Su valor también es extremadamente alto (0.9983), lo que confirma que el alto R-cuadrado no es solo producto de tener muchas variables, sino que el modelo tiene un poder explicativo genuino y robusto.

6. Estadística F (F-statistic)

  • F-statistic: 1649 on 9 and 17 DF, p-value: < 2.2e-16: El F-statistic es una prueba global de la significancia del modelo. El valor de 1214 es muy alto, y su p-value es extremadamente bajo (prácticamente cero). Esto significa que, en general, el modelo es estadísticamente significativo; al menos una de las variables predictoras incluidas tiene un efecto no nulo sobre la Esperanza de Vida.

El modelo_expectancia demuestra ser un modelo extremadamente robusto y con un poder explicativo excepcional para la Esperanza de Vida en Argentina. Muestra un ajuste casi perfecto a los datos de entrenamiento, con un R-cuadrado ajustado superior al 99.8%. Variables como Death_rate, HDI, y Population son predictores altamente significativos. El bajo error estándar residual y el F-statistic altamente significativo refuerzan la validez general del modelo. Sin embargo, es importante recordar que un R-cuadrado tan alto en series de tiempo a menudo apunta a series con tendencias muy fuertes.

Diagnóstico del Modelo (Análisis de Residuales)

En esta sección, se realizará un análisis exhaustivo de los residuales del modelo (modelo_expectancia). La evaluación de los residuales es fundamental para verificar si se cumplen los supuestos clave de los modelos de regresión lineal (normalidad, homocedasticidad, no autocorrelación y linealidad), lo que asegura la validez y fiabilidad de las inferencias y predicciones del modelo.

p_res_autoplot <- autoplot(residuals(modelo_expectancia)) +
  ggtitle("Residuales del Modelo de Esperanza de Vida en Argentina (TRAIN)") +
  xlab("Año") + ylab("Residuales")
ggplotly(p_res_autoplot)

Este gráfico muestra la evolución de los residuales del modelo_expectancia a lo largo del tiempo. El análisis de esta gráfica es fundamental para evaluar si el modelo ha capturado adecuadamente la estructura temporal de la serie y si se cumplen los supuestos de un modelo de regresión lineal.

Análisis del Gráfico de Residuales:

  • Media Cero: Se observa que los residuales fluctúan alrededor de cero, lo que indica que el modelo no tiene un sesgo sistemático en sus predicciones. Esto es un buen indicio de que el modelo está bien centrado.

  • Homocedasticidad (Varianza Constante): La dispersión de los residuales (la “anchura” de la banda de puntos) parece ser relativamente constante a lo largo del tiempo. Lo que sugiere que la varianza de los errores es aproximadamente constante a lo largo del período.

  • Ausencia de Autocorrelación: Este es uno de los supuestos más críticos para los modelos de series de tiempo. Visualmente, los residuales parecen comportarse de manera aleatoria a lo largo del tiempo. No se observa una tendencia clara, patrones cíclicos, o agrupamientos que sugieran una correlación serial residual (es decir, que un error en un punto del tiempo esté correlacionado con un error en otro punto). La ausencia de patrones evidentes en este gráfico es un signo positivo de que el modelo ha capturado la mayor parte de la estructura de dependencia temporal de la esperanza de vida

ggAcf(residuals(modelo_expectancia), lag.max = 26) +
  ggtitle("ACF de los Residuales del Modelo de Esperanza de Vida en Argentina (TRAIN)")

Este gráfico muestra la Función de Autocorrelación (ACF) de los residuales del modelo_expectancia. El análisis de la ACF de los residuales es crucial para determinar si el modelo ha capturado adecuadamente toda la estructura de dependencia temporal de la serie original. Idealmente, los residuales de un buen modelo de series de tiempo deben ser ruido blanco, es decir, no deben presentar autocorrelación significativa en ningún rezago.

Análisis del Gráfico ACF de Residuales:

  • Ausencia General de Autocorrelación: La observación principal es que la gran mayoría de las barras (autocorrelaciones en diferentes rezagos) caen dentro de las bandas azules punteadas de confianza. Esto indica que las autocorrelaciones en la mayoría de los rezagos no son estadísticamente significativas. Este es un resultado altamente deseable, ya que sugiere que el modelo ha logrado eliminar la mayor parte de la estructura de dependencia lineal temporal que existía en la serie original de la Esperanza de Vida.

  • Buen Ajuste General: La ACF de los residuales valida en gran medida que el modelo_expectancia ha hecho un excelente trabajo al capturar las tendencias y relaciones temporales. La ausencia de patrones de autocorrelación significativos en la mayoría de los rezagos es un signo fuerte de un modelo bien especificado.

Análisis de los Residuales del Modelo de Esperanza de Vida

  • Prueba de Breusch-Godfrey para la Autocorrelación:

El resultado de la prueba de Breusch-Godfrey es el siguiente:

checkresiduals(modelo_expectancia, lag = 12)

## 
##  Breusch-Godfrey test for serial correlation of order up to 12
## 
## data:  Residuals from Linear regression model
## LM test = 20.795, df = 12, p-value = 0.05346
  • Interpretación del p-valor:* El p-valor obtenido es 0.05346. Si utilizamos un nivel de significancia común de alpha=0.05 (o 5%), observamos que 0.053460 > 0.5. Esto significa que no hay evidencia estadísticamente significativa para rechazar la hipótesis nula de que no existe autocorrelación en los residuales de tu modelo hasta el orden 12. En otras palabras, la prueba sugiere que los residuales del modelo se comportan como ruido blanco, que es una suposición deseable para los modelos de regresión.

  • Consideración importante: Es crucial notar que el p-valor (0.05346) está muy cerca del umbral de 0.05. Esto indica que la situación es limítrofe. Si hubiéramos elegido un nivel de significancia ligeramente superior (por ejemplo, alpha=0.06), la conclusión habría sido diferente.

Gráfico de la Función de Autocorrelación (ACF) de los Residuales:

El gráfico de la ACF de los residuales que muestra “Residuals from Linear regression model” complementa la prueba de Breusch-Godfrey:

  • *El gráfico de ACF muestra la correlación de los residuales consigo mismos en diferentes rezagos de tiempo.

  • *Las líneas discontinuas azules representan los límites de confianza. Si las barras de correlación cruzan estas líneas, se considera que la autocorrelación en ese rezago es estadísticamente significativa.

  • *En este gráfico, la mayoría de las barras de autocorrelación se encuentran dentro de los límites de confianza. Sin embargo, algunas barras se acercan bastante a los límites, lo que visualmente apoya la idea de un resultado limítrofe del p-valor. No se observa un patrón claro y persistente de autocorrelación significativa.

4.2 Gráfico de dispersión de Residuales vs. Valores Ajustados (para homocedasticidad)

Este gráfico es una herramienta de diagnóstico fundamental en la regresión lineal para evaluar uno de los supuestos clave del Modelo Lineal Clásico: la homocedasticidad. La homocedasticidad implica que la varianza de los errores (o residuales) es constante para todos los niveles de las variables predictoras (o los valores ajustados de la variable dependiente).

p_res_vs_fitted <- ggplot(data.frame(Fitted = fitted(modelo_expectancia), Residuals = residuals(modelo_expectancia)),
                          aes(x = Fitted, y = Residuals)) +
  geom_point() +
  geom_hline(yintercept = 0, linetype = "dashed", color = "red") +
  ggtitle("Residuales vs. Valores Ajustados del Modelo (TRAIN)") +
  xlab("Valores Ajustados") + ylab("Residuales") +
  theme_minimal()
ggplotly(p_res_vs_fitted)
## Don't know how to automatically pick scale for object of type <ts>. Defaulting
## to continuous.
## Don't know how to automatically pick scale for object of type <ts>. Defaulting
## to continuous.

El patrón de dispersión de los residuales en este gráfico sugiere que el supuesto de homocedasticidad se cumple razonablemente bien para el modelo. Esto es un buen indicador, ya que la varianza de los errores no parece depender de los valores predichos por el modelo. Esto contribuye a que las estimaciones de tus coeficientes sean eficientes y a que los errores estándar y p-valores sean confiables para la inferencia estadística.

5. Pronóstico y Análisis para los años de prueba (2017-2021)

pronostico_test <- forecast(modelo_expectancia, h = nrow(test_data), newdata = future_x_test_df)

# Mostrar resultados del pronóstico del test
print(pronostico_test)
##      Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2017       76.58486 76.45622 76.71350 76.38131 76.78841
## 2018       76.82303 76.64894 76.99712 76.54757 77.09850
## 2019       76.91321 76.66254 77.16388 76.51658 77.30985
## 2020       75.82875 75.47083 76.18668 75.26240 76.39511
## 2021       74.09460 73.71472 74.47448 73.49351 74.69569

Análisis de los Pronósticos del Modelo (2017-2021)

Los resultados del pronóstico (pronostico_test) muestran las predicciones puntuales para la Esperanza de Vida en Argentina, junto con los intervalos de predicción del 80% y 95% de confianza:

Tendencia de los Pronósticos Puntuales:

  • Aumento Inicial (2017-2019): El modelo pronostica un ligero incremento en la Esperanza de Vida desde 76.58 años en 2017, pasando por 76.82 en 2018, hasta alcanzar un pico de 76.91 años en 2019. Esta tendencia inicial es consistente con el patrón de crecimiento que se suele observar en la esperanza de vida a lo largo del tiempo.

  • Caída Notoria (2020-2021): Sin embargo, el pronóstico muestra una disminución significativa de la Esperanza de Vida a partir de 2020, cayendo a 75.83 años y luego a 74.09 años en 2021. Esta fuerte caída es un punto crítico en el pronóstico y podría estar reflejando el impacto de alguna de las variables explicativas incluidas en el modelo que hayan tenido un comportamiento particular en esos años (por ejemplo, un aumento en la tasa de mortalidad o una disminución en el PIB/salud, etc.).

Intervalos de Predicción:

  • Amplitud Creciente: Como es común en los pronósticos de series de tiempo, los intervalos de predicción (tanto el del 80% como el del 95%) se amplían progresivamente a medida que nos alejamos del período de entrenamiento y avanzamos en el horizonte de pronóstico. Esto refleja el aumento natural de la incertidumbre a medida que se predice más lejos en el futuro.

Nivel de Confianza:

Los intervalos “Lo 80” y “Hi 80” (Lower 80%, Higher 80%) indican que hay un 80% de probabilidad de que el valor real de la Esperanza de Vida caiga dentro de ese rango.

Los intervalos “Lo 95” y “Hi 95” (Lower 95%, Higher 95%) son más amplios, lo que significa que hay un 95% de probabilidad de que el valor real se encuentre dentro de ellos, reflejando una mayor confianza pero un rango de valores más grande.

  • Precisión Futura: La amplitud de los intervalos para 2020 y 2021 (especialmente el de 95%) es notable. Por ejemplo, para 2021, la Esperanza de Vida podría estar entre 73.49 y 74.69 años con un 95% de confianza. Esto subraya que, aunque el modelo proporciona un pronóstico puntual, la incertidumbre asociada a las predicciones para los años más lejanos es considerable
#Gráfico de la predicción
autoplot(full_expect_ts, series = "Datos Observados") + 
  autolayer(pronostico_test, series = "Pronóstico (con IC)", PI = TRUE, fences = FALSE) +
  autolayer(pronostico_test$mean, series = "Pronóstico (Media)", color = "darkgreen", size = 1) +
  ggtitle("Pronóstico de la Esperanza de Vida en Argentina (1991–2021)") +
  xlab("Año") + ylab("Esperanza de Vida") +
  scale_color_manual(values = c("Datos Observados" = "blue",
                                "Valores Ajustados (Train)" = "red", # Color para los valores ajustados
                                "Pronóstico (con IC)" = "purple",
                                "Pronóstico (Media)" = "darkgreen")) +
  guides(color = guide_legend(title = "Serie")) +
  theme_minimal()

El gráfico ofrece una visión integral del desempeño histórico de esta variable y su proyección futura estimada por el modelo. En primer lugar, la línea azul ilustra el comportamiento observado de la Esperanza de Vida en Argentina desde 1991 hasta aproximadamente 2016-2017, abarcando el período de entrenamiento del modelo. A lo largo de estas décadas, se puede apreciar una clara y constante tendencia al alza en la Esperanza de Vida, un patrón común que refleja las mejoras en las condiciones de salud, saneamiento y desarrollo social del país.

En contraste con esta tendencia histórica de crecimiento, la línea verde oscuro, que representa el pronóstico puntual del modelo para los años 2017 a 2021, presenta un comportamiento particularmente llamativo. Aunque inicialmente parece continuar la trayectoria ascendente por uno o dos años, se observa una caída drástica y pronunciada en la Esperanza de Vida pronosticada para los años 2020 y 2021. Esta inversión abrupta de la tendencia es el aspecto más destacado de la predicción y sugiere que el modelo ha capturado o atribuido factores en sus variables explicativas que implicarían un retroceso significativo en este indicador vital.

Acompañando la línea del pronóstico puntual, el área sombreada en púrpura ilustra los intervalos de confianza de la predicción. Estos intervalos son fundamentales para comprender el grado de incertidumbre asociado a las estimaciones del modelo. Es un fenómeno inherente a la predicción de series de tiempo que, a medida que el horizonte de pronóstico se extiende más allá de los datos observados, los intervalos de confianza se amplían progresivamente. Esta expansión indica que la fiabilidad de la predicción puntual disminuye cuanto más se adentra en el futuro, reflejando una mayor variabilidad y menos certeza sobre el valor real que tomará la Esperanza de Vida. La considerable amplitud de este intervalo para el año 2021 resalta la magnitud de la incertidumbre en torno a la fuerte disminución pronosticada.

El modelo no solo proyecta la continuación de la tendencia histórica, sino que anticipa un cambio significativo y negativo en la Esperanza de Vida para el futuro cercano, rompiendo con el patrón ascendente previo. Este pronóstico de un descenso, combinado con una creciente incertidumbre a medida que se avanza en el tiempo, subraya la importancia de un análisis cuidadoso de los factores subyacentes que el modelo está capturando y una eventual comparación con los datos reales una vez que estén disponibles, para validar la capacidad del modelo de prever tales desviaciones de la tendencia histórica.

A continuación, se realizará una evaluación exhaustiva de la exactitud de los pronósticos generados por el modelo. Para ello, se procederá a comparar directamente los valores pronosticados con los datos reales observados correspondientes al período de prueba. Este paso es crucial para determinar la capacidad predictiva del modelo en un horizonte temporal no utilizado durante su entrenamiento y para validar su fiabilidad en escenarios futuros. Posteriormente, se analizarán en detalle diversas métricas de precisión (como el Error Absoluto Medio - MAE, el Error Cuadrático Medio - RMSE o el Error Porcentual Absoluto Medio - MAPE), las cuales cuantificarán la magnitud de los errores de pronóstico y ofrecerán una medida robusta del rendimiento predictivo general del modelo.

# Mostrar resultados del pronóstico del test
print(pronostico_test)
##      Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2017       76.58486 76.45622 76.71350 76.38131 76.78841
## 2018       76.82303 76.64894 76.99712 76.54757 77.09850
## 2019       76.91321 76.66254 77.16388 76.51658 77.30985
## 2020       75.82875 75.47083 76.18668 75.26240 76.39511
## 2021       74.09460 73.71472 74.47448 73.49351 74.69569
# Mostrar los datos reales del periodo de test (2017-2021) para comparar
print("Datos Reales del período de prueba (2017-2021):")
## [1] "Datos Reales del período de prueba (2017-2021):"
print(expect_ts_test)
## Time Series:
## Start = 2017 
## End = 2021 
## Frequency = 1 
## [1] 76.5434 76.7698 76.8475 75.8781 73.9485

En un análisis más exhaustivo de la capacidad predictiva del modelo, se llevó a cabo una comparación directa entre los valores de Esperanza de Vida pronosticados y los datos reales observados para el período de prueba comprendido entre 2017 y 2021. Los resultados de esta confrontación revelan una notable aproximación de las predicciones puntuales del modelo a los valores reales en cada uno de los años evaluados. Las diferencias entre lo pronosticado y lo efectivamente observado resultaron ser mínimas, situándose generalmente en el rango de centésimas, lo que subraya una elevada exactitud en las estimaciones del modelo para este horizonte temporal específico.

Un aspecto particularmente sobresaliente de este análisis es la capacidad del modelo para anticipar con gran precisión la marcada disminución en la Esperanza de Vida que se manifestó en los años 2020 y 2021. Mientras que las predicciones para 2017 a 2019 continuaron una ligera tendencia al alza, el modelo logró capturar la inversión de esta trayectoria, con pronósticos para 2020 (75.83) y 2021 (74.09) que se alinearon muy estrechamente con los datos reales (75.88 y 73.95, respectivamente). Esta habilidad para prever un cambio significativo y atípico en una serie que históricamente mostraba un crecimiento constante es un fuerte indicativo de la robustez del modelo y su sensibilidad a las dinámicas subyacentes que influyen en la Esperanza de Vida.

Adicionalmente, la validación de la fiabilidad del modelo se refuerza al observar que la totalidad de los datos reales para cada año del período de prueba se ubicaron consistentemente dentro de los intervalos de predicción establecidos, tanto para el nivel de confianza del 80% como para el del 95%. Esta consistencia no solo valida la precisión de las predicciones puntuales, sino que también confirma que las estimaciones de incertidumbre del modelo son apropiadas y que los intervalos de predicción son bien calibrados, encapsulando adecuadamente la variabilidad esperada en los valores futuros. En conclusión, el desempeño predictivo del modelo es altamente satisfactorio, demostrando una capacidad considerable para generar pronósticos precisos y fiables para la Esperanza de Vida en Argentina, incluso frente a cambios de tendencia importantes.

5.1 Análisis de las Métricas de Precisión

Tras la comparación visual y directa de los pronósticos con los valores reales, el siguiente paso crucial para una evaluación robusta del modelo es el análisis de las métricas de precisión. Estas métricas ofrecen una cuantificación objetiva del desempeño predictivo del modelo, permitiendo medir la magnitud y la naturaleza de los errores de pronóstico. A diferencia de la observación directa, que puede ser subjetiva, las métricas de precisión proporcionan un valor numérico que facilita la comparación entre diferentes modelos o la evaluación del rendimiento de un mismo modelo en distintos períodos. Se examinarán métricas clave que revelan la desviación promedio entre los valores pronosticados y los reales, la severidad de los errores y, en algunos casos, el error en términos porcentuales, lo que ofrecerá una comprensión más profunda de la exactitud y fiabilidad de las predicciones del modelo. Un valor menor en estas métricas generalmente indica un mejor ajuste y una mayor capacidad predictiva.

# Imprimir las métricas
print(accuracy_results)
##                         ME       RMSE        MAE           MPE       MAPE
## Training set  5.263278e-16 0.04907263 0.04280206 -0.0000417954 0.05748256
## Test set     -5.143270e-02 0.08081054 0.07117094 -0.0683117317 0.09432483
##                   MASE       ACF1  Theil's U
## Training set 0.1572516 -0.1244738         NA
## Test set     0.2614767 -0.5648371 0.08088642

Error Medio (ME):

  • Conjunto de Entrenamiento: 5.263278e−16 (Esencialmente cero).

  • Conjunto de Prueba: −5.143270e−02.

  • Interpretación: El ME cercano a cero en el conjunto de entrenamiento indica que el modelo no presenta un sesgo sistemático significativo en este conjunto. En el conjunto de prueba, el valor ligeramente negativo sugiere un pequeño sesgo a sobreestimar los valores reales, aunque la magnitud es relativamente pequeña.

Raíz del Error Cuadrático Medio (RMSE):

  • Conjunto de Entrenamiento: 0.04907263.

  • Conjunto de Prueba: 0.08081054.

  • Interpretación: El RMSE es una medida de la magnitud promedio de los errores. El valor es mayor en el conjunto de prueba, lo cual es esperado, ya que el modelo no ha visto estos datos antes. Indica que los errores son, en promedio, de aproximadamente 0.08 unidades en el conjunto de prueba.

Error Absoluto Medio (MAE):

  • Conjunto de Entrenamiento: 0.04280206.

  • Conjunto de Prueba: 0.07117094.

  • Interpretación: El MAE representa la magnitud promedio de los errores en valores absolutos. Es similar al RMSE, pero no penaliza los errores grandes tan severamente. Confirma que la precisión es buena en el entrenamiento y disminuye, pero sigue siendo aceptable, en el conjunto de prueba.

Error Porcentual Medio (MPE):

  • Conjunto de Entrenamiento: −0.0000417954.

  • Conjunto de Prueba: −0.0683117317.

  • Interpretación: El MPE indica el sesgo porcentual del pronóstico. Un valor negativo en el conjunto de prueba sugiere que, en promedio, el modelo tendió a sobreestimar los valores reales en un pequeño porcentaje.

Error Porcentual Absoluto Medio (MAPE):

  • Conjunto de Entrenamiento: 0.05748256.

  • Conjunto de Prueba: 0.09432483.

  • Interpretación: El MAPE expresa el error absoluto promedio en términos porcentuales. Un MAPE de aproximadamente 0.094 (o 9.4%) en el conjunto de prueba indica que el pronóstico se desvía, en promedio, alrededor de un 9.4% de los valores reales. Dado que la esperanza de vida es un valor relativamente alto (en los 70s), este porcentaje es bastante bajo, lo que sugiere una alta precisión.

Error Absoluto Escaldado Medio (MASE):

  • Conjunto de Entrenamiento: 0.1572516.

  • Conjunto de Prueba: 0.2614767.

  • Interpretación: El MASE es una métrica escalada que compara el error del modelo con el error de un pronóstico ingenuo (generalmente el de la caminata aleatoria o el de la última observación). Un MASE menor a 1 generalmente indica que el modelo es mejor que un pronóstico ingenuo. En ambos conjuntos (entrenamiento y prueba), el MASE es significativamente menor a 1, lo que confirma que el modelo propuesto tiene un rendimiento superior al de una predicción simple.

Autocorrelación de los Errores de Pronóstico de Primer Orden (ACF1):

  • Conjunto de Entrenamiento: −0.1244738.

  • Conjunto de Prueba: −0.5648371.

  • Interpretación: La ACF1 mide la correlación de los errores del pronóstico con sus valores inmediatamente anteriores. Un valor cercano a cero es deseable. El valor en el conjunto de entrenamiento es bajo. Sin embargo, en el conjunto de prueba, un ACF1 de -0.564 sugiere que hay una autocorrelación negativa significativa en los errores del pronóstico. Esto implica que si el pronóstico de un año fue una sobreestimación, es probable que el siguiente sea una subestimación, y viceversa. Este es un punto a considerar, ya que indica que aún podría haber información no capturada por el modelo en la dinámica temporal de los errores.

Coeficiente U de Theil (Theil’s U):

  • Conjunto de Prueba: 0.08088642.

  • Interpretación: El coeficiente U de Theil compara la precisión del pronóstico del modelo con la de un pronóstico ingenuo. Un valor menor a 1 indica que el modelo tiene un mejor rendimiento que un pronóstico ingenuo. Un valor cercano a cero indica un pronóstico muy preciso. El valor de 0.08088642 es muy bajo y significativamente menor a 1, lo que confirma la excelente capacidad predictiva del modelo en comparación con una referencia simple.

6. Conclusiones

Bibliografía

Barandica, J. (2022, 17 de Julio). Aprendizaje No Supervisado: Reducción de Dimensionalidad (PCA) y Clustering (K-Means). Joaquín Barandica. https://www.joaquibarandica.com/post/ansupervised/

Our World in Data. (s.f.). Our World in Data. https://ourworldindata.org/

World Bank. (s.f.). World Development Indicators. World Bank DataBank. https://databank.worldbank.org/source/world-development-indicators