# -------------------------------------------------------------
# SECCIÓN 2 — Parámetros del proyecto y marco metodológico
# -------------------------------------------------------------
# País de estudio
paises <- c("SV") # El Salvador
# Parámetros de descarga desde la API WDI
usar_latest <- TRUE # TRUE = usar el dato más reciente disponible (recomendado por el BM)
year_target <- 2022 # Si usar_latest = FALSE, descargaría solamente este año
guardar_resultados <- TRUE # Exportar o no los CSV finales
# Sobre el proyecto:
cat("
### Enfoque general del proyecto
El objetivo central de este trabajo es construir un **Índice Sintético de Desarrollo (ISD)** que permita analizar
las diferencias entre dos enfoques de desarrollo económico:
1. **Perspectiva Ortodoxa:**
Centrada en variables macroeconómicas tradicionales como crecimiento, inversión, exportaciones
y empleo. Privilegia la estabilidad y la eficiencia de mercado como motores del desarrollo.
2. **Perspectiva Heterodoxa:**
Enfatiza dimensiones estructurales, sociales y ambientales del desarrollo: desigualdad,
sostenibilidad, salud, acceso a servicios básicos y energía renovable.
Además, el proyecto solicita replicar ambas perspectivas **a nivel sectorial**, para evaluar la contribución
del sector industrial al desarrollo del país.
### Índices a construir
Se elaborarán *seis* índices sintéticos:
**ISD Nacional**
1. ISD Nacional Ortodoxo
2. ISD Nacional Heterodoxo
3. ISD Nacional Combinado (promedio de ambos)
**ISD Sector Industrial**
4. ISD Sectorial Ortodoxo
5. ISD Sectorial Heterodoxo
6. ISD Sectorial Combinado (promedio)
### Justificación del uso de WDI
Los indicadores provienen de la base de datos del Banco Mundial (WDI), fuente ampliamente utilizada
en estudios sobre desarrollo por su:
- comparabilidad internacional,
- periodicidad anual,
- calidad estadística,
- actualización permanente,
- disponibilidad para El Salvador (SV).
La selección de variables ortodoxas y heterodoxas sigue las propuestas metodológicas del curso y
la guía del proyecto final (documentos adjuntos por el estudiante).
Con estos parámetros definidos, procedemos a especificar los indicadores seleccionados.
")
##
## ### Enfoque general del proyecto
##
## El objetivo central de este trabajo es construir un **Índice Sintético de Desarrollo (ISD)** que permita analizar
## las diferencias entre dos enfoques de desarrollo económico:
##
## 1. **Perspectiva Ortodoxa:**
## Centrada en variables macroeconómicas tradicionales como crecimiento, inversión, exportaciones
## y empleo. Privilegia la estabilidad y la eficiencia de mercado como motores del desarrollo.
##
## 2. **Perspectiva Heterodoxa:**
## Enfatiza dimensiones estructurales, sociales y ambientales del desarrollo: desigualdad,
## sostenibilidad, salud, acceso a servicios básicos y energía renovable.
##
## Además, el proyecto solicita replicar ambas perspectivas **a nivel sectorial**, para evaluar la contribución
## del sector industrial al desarrollo del país.
##
## ### Índices a construir
##
## Se elaborarán *seis* índices sintéticos:
##
## **ISD Nacional**
## 1. ISD Nacional Ortodoxo
## 2. ISD Nacional Heterodoxo
## 3. ISD Nacional Combinado (promedio de ambos)
##
## **ISD Sector Industrial**
## 4. ISD Sectorial Ortodoxo
## 5. ISD Sectorial Heterodoxo
## 6. ISD Sectorial Combinado (promedio)
##
## ### Justificación del uso de WDI
##
## Los indicadores provienen de la base de datos del Banco Mundial (WDI), fuente ampliamente utilizada
## en estudios sobre desarrollo por su:
##
## - comparabilidad internacional,
## - periodicidad anual,
## - calidad estadística,
## - actualización permanente,
## - disponibilidad para El Salvador (SV).
##
## La selección de variables ortodoxas y heterodoxas sigue las propuestas metodológicas del curso y
## la guía del proyecto final (documentos adjuntos por el estudiante).
##
## Con estos parámetros definidos, procedemos a especificar los indicadores seleccionados.
# -------------------------------------------------------------
# SECCIÓN 3 — Selección de indicadores
# -------------------------------------------------------------
# En esta sección definimos los indicadores ortodoxos y heterodoxos
# siguiendo la guía metodológica del proyecto y las dos propuestas
# incorporadas por el estudiante (nacional y sectorial).
cat("
### Enfoque conceptual para la selección de indicadores
Con base en la literatura del desarrollo económico y las indicaciones del curso,
la selección de indicadores se realiza bajo dos marcos teóricos:
#### 1) Perspectiva Ortodoxa
Se enfoca en variables macroeconómicas tradicionales que reflejan:
- crecimiento económico,
- acumulación de capital,
- apertura comercial,
- inversión extranjera,
- participación económica.
Estos indicadores están asociados al funcionamiento de los mercados, la productividad
y la eficiencia como mecanismos principales que impulsan el desarrollo.
#### 2) Perspectiva Heterodoxa
Incluye dimensiones estructurales del desarrollo que la visión ortodoxa no captura:
- desigualdad,
- sostenibilidad ambiental,
- desarrollo humano (salud, longevidad),
- acceso a servicios básicos,
- transición energética.
Estos factores permiten evaluar el desarrollo como un proceso multidimensional.
Además, el sector industrial es analizado con indicadores propios debido a su importancia
en la transformación productiva de economías en desarrollo como El Salvador.
")
##
## ### Enfoque conceptual para la selección de indicadores
##
## Con base en la literatura del desarrollo económico y las indicaciones del curso,
## la selección de indicadores se realiza bajo dos marcos teóricos:
##
## #### 1) Perspectiva Ortodoxa
## Se enfoca en variables macroeconómicas tradicionales que reflejan:
## - crecimiento económico,
## - acumulación de capital,
## - apertura comercial,
## - inversión extranjera,
## - participación económica.
##
## Estos indicadores están asociados al funcionamiento de los mercados, la productividad
## y la eficiencia como mecanismos principales que impulsan el desarrollo.
##
## #### 2) Perspectiva Heterodoxa
## Incluye dimensiones estructurales del desarrollo que la visión ortodoxa no captura:
## - desigualdad,
## - sostenibilidad ambiental,
## - desarrollo humano (salud, longevidad),
## - acceso a servicios básicos,
## - transición energética.
##
## Estos factores permiten evaluar el desarrollo como un proceso multidimensional.
##
## Además, el sector industrial es analizado con indicadores propios debido a su importancia
## en la transformación productiva de economías en desarrollo como El Salvador.
# -------------------------------------------------------------
# INDICADORES NACIONALES — ORTODOXOS
# -------------------------------------------------------------
nat_ortho_codes <- c(
"NY.GDP.PCAP.CD", # PIB per cápita (nivel)
"NY.GDP.MKTP.KD.ZG", # Crecimiento económico
"NE.GDI.TOTL.ZS", # Formación bruta de capital
"SL.EMP.TOTL.SP.ZS", # Tasa de empleo
"NE.EXP.GNFS.ZS", # Exportaciones (% PIB)
"BX.KLT.DINV.WD.GD.ZS" # Inversión extranjera directa (% PIB)
)
# -------------------------------------------------------------
# INDICADORES NACIONALES — HETERODOXOS
# -------------------------------------------------------------
nat_hetero_codes <- c(
"SI.POV.GINI", # Desigualdad (Gini)
"SP.DYN.LE00.IN", # Esperanza de vida (desarrollo humano)
"EG.FEC.RNEW.ZS", # Energías renovables (% consumo total)
"EN.ATM.CO2E.PC", # CO2 per cápita (presión ambiental)
"SH.H2O.SAFE.ZS", # Acceso a agua potable (% población)
"SH.XPD.CHEX.GD.ZS" # Gasto en salud (% PIB)
)
# -------------------------------------------------------------
# INDICADORES SECTOR INDUSTRIAL — ORTODOXOS
# (Limitados a disponibilidad del Banco Mundial)
# -------------------------------------------------------------
sec_ortho_codes <- c(
"NV.IND.MANF.ZS", # Manufactura (% PIB)
"NV.IND.TOTL.ZS" # Industria total (% PIB)
)
# -------------------------------------------------------------
# INDICADORES SECTOR INDUSTRIAL — HETERODOXOS
# (Uso de proxies debido a limitaciones de datos sectoriales)
# -------------------------------------------------------------
sec_hetero_codes <- c(
"EG.FEC.RNEW.ZS", # Energía renovable vinculada a industria
"EN.ATM.CO2E.KT", # CO2 total (proxy de impacto industrial)
"SP.POP.DPND", # Razón de dependencia (estructura demográfica)
"SP.POP.TOTL" # Población total (escala demanda/producción)
)
# -------------------------------------------------------------
# Consolidación de indicadores
# -------------------------------------------------------------
all_codes <- unique(c(
nat_ortho_codes,
nat_hetero_codes,
sec_ortho_codes,
sec_hetero_codes
))
# Tabla resumen para documento
tabla_indicadores <- tibble(
Grupo = c(
rep("Nacional - Ortodoxo", length(nat_ortho_codes)),
rep("Nacional - Heterodoxo", length(nat_hetero_codes)),
rep("Sector Industrial - Ortodoxo", length(sec_ortho_codes)),
rep("Sector Industrial - Heterodoxo", length(sec_hetero_codes))
),
Indicador_WDI = c(
nat_ortho_codes,
nat_hetero_codes,
sec_ortho_codes,
sec_hetero_codes
)
)
kable(tabla_indicadores, caption = "Tabla 1: Indicadores seleccionados por grupo teórico")
| Grupo | Indicador_WDI |
|---|---|
| Nacional - Ortodoxo | NY.GDP.PCAP.CD |
| Nacional - Ortodoxo | NY.GDP.MKTP.KD.ZG |
| Nacional - Ortodoxo | NE.GDI.TOTL.ZS |
| Nacional - Ortodoxo | SL.EMP.TOTL.SP.ZS |
| Nacional - Ortodoxo | NE.EXP.GNFS.ZS |
| Nacional - Ortodoxo | BX.KLT.DINV.WD.GD.ZS |
| Nacional - Heterodoxo | SI.POV.GINI |
| Nacional - Heterodoxo | SP.DYN.LE00.IN |
| Nacional - Heterodoxo | EG.FEC.RNEW.ZS |
| Nacional - Heterodoxo | EN.ATM.CO2E.PC |
| Nacional - Heterodoxo | SH.H2O.SAFE.ZS |
| Nacional - Heterodoxo | SH.XPD.CHEX.GD.ZS |
| Sector Industrial - Ortodoxo | NV.IND.MANF.ZS |
| Sector Industrial - Ortodoxo | NV.IND.TOTL.ZS |
| Sector Industrial - Heterodoxo | EG.FEC.RNEW.ZS |
| Sector Industrial - Heterodoxo | EN.ATM.CO2E.KT |
| Sector Industrial - Heterodoxo | SP.POP.DPND |
| Sector Industrial - Heterodoxo | SP.POP.TOTL |
# -------------------------------------------------------------
# SECCIÓN 4 — Descarga de datos desde WDI y limpieza inicial
# -------------------------------------------------------------
cat("
### Descarga de datos desde el Banco Mundial (WDI)
A continuación se procede a descargar todos los indicadores seleccionados en
la Sección 3 directamente desde la API del Banco Mundial (WDI). El objetivo es
obtener la última observación disponible para El Salvador (SV), con el fin de
construir los seis índices sintéticos (ISD) de forma consistente y comparable.
Esta sección incluye:
- limpieza de nombres de variables,
- verificación de disponibilidad de indicadores,
- inspección preliminar del dataset.
")
##
## ### Descarga de datos desde el Banco Mundial (WDI)
##
## A continuación se procede a descargar todos los indicadores seleccionados en
## la Sección 3 directamente desde la API del Banco Mundial (WDI). El objetivo es
## obtener la última observación disponible para El Salvador (SV), con el fin de
## construir los seis índices sintéticos (ISD) de forma consistente y comparable.
##
## Esta sección incluye:
## - limpieza de nombres de variables,
## - verificación de disponibilidad de indicadores,
## - inspección preliminar del dataset.
# -----------------------------
# DESCARGA PRINCIPAL WDI
# -----------------------------
message("Descargando indicadores desde WDI para el país: ", paises)
wdi_raw <- WDI(
country = paises,
indicator = all_codes,
latest = ifelse(usar_latest, 1, 0), # descarga solo último dato
extra = TRUE, # incluye información de región, ingreso, etc.
cache = NULL
)
# Limpieza de nombres estandarizados
wdi_raw <- wdi_raw %>%
clean_names() %>%
as_tibble()
# Vista preliminar
glimpse(wdi_raw)
## Rows: 4
## Columns: 26
## $ country <chr> "El Salvador", "El Salvador", "El Salvador", "El …
## $ iso2c <chr> "SV", "SV", "SV", "SV"
## $ iso3c <chr> "SLV", "SLV", "SLV", "SLV"
## $ year <int> 2021, 2022, 2023, 2024
## $ status <chr> "", "", "", ""
## $ lastupdated <chr> "2025-10-07", "2025-10-07", "2025-10-07", "2025-1…
## $ ny_gdp_pcap_cd <dbl> NA, NA, NA, 5579.66
## $ ny_gdp_mktp_kd_zg <dbl> NA, NA, NA, 2.60202
## $ ne_gdi_totl_zs <dbl> NA, NA, NA, 20.34423
## $ sl_emp_totl_sp_zs <dbl> NA, NA, NA, 58.924
## $ ne_exp_gnfs_zs <dbl> NA, NA, NA, 32.7607
## $ bx_klt_dinv_wd_gd_zs <dbl> NA, NA, NA, 2.612419
## $ si_pov_gini <dbl> NA, NA, 39.8, NA
## $ sp_dyn_le00_in <dbl> NA, NA, 72.099, NA
## $ eg_fec_rnew_zs <dbl> 21.9, NA, NA, NA
## $ sh_xpd_chex_gd_zs <dbl> NA, 9.840797, NA, NA
## $ nv_ind_manf_zs <dbl> NA, NA, NA, 12.04548
## $ nv_ind_totl_zs <dbl> NA, NA, NA, 22.43831
## $ sp_pop_dpnd <dbl> NA, NA, NA, 49.15297
## $ sp_pop_totl <dbl> NA, NA, NA, 6338193
## $ region <chr> "Latin America & Caribbean", "Latin America & Car…
## $ capital <chr> "San Salvador", "San Salvador", "San Salvador", "…
## $ longitude <chr> "-89.2073", "-89.2073", "-89.2073", "-89.2073"
## $ latitude <chr> "13.7034", "13.7034", "13.7034", "13.7034"
## $ income <chr> "Upper middle income", "Upper middle income", "Up…
## $ lending <chr> "IBRD", "IBRD", "IBRD", "IBRD"
cat("
Los datos han sido descargados correctamente. A continuación se verificará la
disponibilidad real de cada indicador luego de la limpieza.
")
##
## Los datos han sido descargados correctamente. A continuación se verificará la
## disponibilidad real de cada indicador luego de la limpieza.
# -------------------------------------------------------------
# SECCION 5 — Verificacion de indicadores disponibles
# -------------------------------------------------------------
cat("
### Verificacion de disponibilidad de indicadores
Luego de la descarga desde WDI, se verifica que indicadores seleccionados
estan realmente disponibles para El Salvador (SV). Este paso es esencial
para evitar errores en etapas posteriores: normalizacion y matrices ISD.
")
##
## ### Verificacion de disponibilidad de indicadores
##
## Luego de la descarga desde WDI, se verifica que indicadores seleccionados
## estan realmente disponibles para El Salvador (SV). Este paso es esencial
## para evitar errores en etapas posteriores: normalizacion y matrices ISD.
# Funcion para estandarizar nombres (clean_names)
code_to_clean <- function(x) janitor::make_clean_names(x)
# Tabla que mapea codigo original -> nombre limpio
meta <- tibble(
code = all_codes,
code_clean = map_chr(all_codes, code_to_clean)
)
# Determinar indicadores presentes en los datos descargados
present <- intersect(meta$code_clean, names(wdi_raw))
# Marcar disponibilidad (evitar acentos para evitar errores)
meta <- meta %>%
mutate(disponible = ifelse(code_clean %in% present, "Si", "No"))
cat("A continuacion se presenta la tabla de disponibilidad de indicadores:")
## A continuacion se presenta la tabla de disponibilidad de indicadores:
kable(meta, caption = "Tabla 2: Disponibilidad de indicadores WDI para El Salvador")
| code | code_clean | disponible |
|---|---|---|
| NY.GDP.PCAP.CD | ny_gdp_pcap_cd | Si |
| NY.GDP.MKTP.KD.ZG | ny_gdp_mktp_kd_zg | Si |
| NE.GDI.TOTL.ZS | ne_gdi_totl_zs | Si |
| SL.EMP.TOTL.SP.ZS | sl_emp_totl_sp_zs | Si |
| NE.EXP.GNFS.ZS | ne_exp_gnfs_zs | Si |
| BX.KLT.DINV.WD.GD.ZS | bx_klt_dinv_wd_gd_zs | Si |
| SI.POV.GINI | si_pov_gini | Si |
| SP.DYN.LE00.IN | sp_dyn_le00_in | Si |
| EG.FEC.RNEW.ZS | eg_fec_rnew_zs | Si |
| EN.ATM.CO2E.PC | en_atm_co2e_pc | No |
| SH.H2O.SAFE.ZS | sh_h2o_safe_zs | No |
| SH.XPD.CHEX.GD.ZS | sh_xpd_chex_gd_zs | Si |
| NV.IND.MANF.ZS | nv_ind_manf_zs | Si |
| NV.IND.TOTL.ZS | nv_ind_totl_zs | Si |
| EN.ATM.CO2E.KT | en_atm_co2e_kt | No |
| SP.POP.DPND | sp_pop_dpnd | Si |
| SP.POP.TOTL | sp_pop_totl | Si |
# Grupos en nombres limpios
nat_ortho_clean <- intersect(map_chr(nat_ortho_codes, code_to_clean), present)
nat_hetero_clean <- intersect(map_chr(nat_hetero_codes, code_to_clean), present)
sec_ortho_clean <- intersect(map_chr(sec_ortho_codes, code_to_clean), present)
sec_hetero_clean <- intersect(map_chr(sec_hetero_codes, code_to_clean), present)
tabla_grupos <- tibble(
Grupo = c("Nacional Ortodoxo", "Nacional Heterodoxo",
"Sector Industrial Ortodoxo", "Sector Industrial Heterodoxo"),
Indicadores_Disponibles = c(
paste(nat_ortho_clean, collapse = ", "),
paste(nat_hetero_clean, collapse = ", "),
paste(sec_ortho_clean, collapse = ", "),
paste(sec_hetero_clean, collapse = ", ")
)
)
kable(tabla_grupos, caption = "Tabla 3: Indicadores disponibles por grupo teórico (nombres limpios)")
| Grupo | Indicadores_Disponibles |
|---|---|
| Nacional Ortodoxo | ny_gdp_pcap_cd, ny_gdp_mktp_kd_zg, ne_gdi_totl_zs, sl_emp_totl_sp_zs, ne_exp_gnfs_zs, bx_klt_dinv_wd_gd_zs |
| Nacional Heterodoxo | si_pov_gini, sp_dyn_le00_in, eg_fec_rnew_zs, sh_xpd_chex_gd_zs |
| Sector Industrial Ortodoxo | nv_ind_manf_zs, nv_ind_totl_zs |
| Sector Industrial Heterodoxo | eg_fec_rnew_zs, sp_pop_dpnd, sp_pop_totl |
cat("
Con esta verificacion queda definida la lista final de variables disponibles,
lista para construir la base integrada en la Seccion 6.
")
##
## Con esta verificacion queda definida la lista final de variables disponibles,
## lista para construir la base integrada en la Seccion 6.
# -------------------------------------------------------------
# SECCION 6 — Construccion de la base final (ultimo año disponible)
# -------------------------------------------------------------
cat("
### Construccion de la base integrada
En esta seccion se construye la base final que servira como insumo para
la normalizacion en la Seccion 7 y para el calculo de los seis ISD.
Como se trabaja unicamente con El Salvador (SV), se selecciona el
ultimo valor disponible para cada indicador WDI.
Este enfoque sigue las recomendaciones del Banco Mundial, que sugiere
usar la observacion mas reciente cuando se construyen indicadores
sinteticos de comparacion temporal o de caracter estructural.
")
##
## ### Construccion de la base integrada
##
## En esta seccion se construye la base final que servira como insumo para
## la normalizacion en la Seccion 7 y para el calculo de los seis ISD.
## Como se trabaja unicamente con El Salvador (SV), se selecciona el
## ultimo valor disponible para cada indicador WDI.
##
## Este enfoque sigue las recomendaciones del Banco Mundial, que sugiere
## usar la observacion mas reciente cuando se construyen indicadores
## sinteticos de comparacion temporal o de caracter estructural.
# -------------------------------------------------------------
# 1) Seleccion del ultimo valor disponible por pais
# -------------------------------------------------------------
if ("year" %in% names(wdi_raw)) {
wdi_base <- wdi_raw %>%
arrange(country, desc(year)) %>%
group_by(country) %>%
slice(1) %>% # tomar la ultima observacion disponible
ungroup()
} else {
# Si por alguna razon WDI no retorna columna "year"
wdi_base <- wdi_raw
}
# -------------------------------------------------------------
# 2) Seleccionar solamente las columnas relevantes:
# - variables limpias
# - pais, iso2c, year
# -------------------------------------------------------------
keep_cols <- c("country", "iso2c", "year", present)
wdi_base <- wdi_base %>%
select(any_of(keep_cols))
# Mostrar tabla de base final (Tabla 4)
kable(
wdi_base %>% select(country, year, any_of(present)),
caption = "Tabla 4: Último valor disponible para cada indicador (El Salvador)"
)
| country | year | ny_gdp_pcap_cd | ny_gdp_mktp_kd_zg | ne_gdi_totl_zs | sl_emp_totl_sp_zs | ne_exp_gnfs_zs | bx_klt_dinv_wd_gd_zs | si_pov_gini | sp_dyn_le00_in | eg_fec_rnew_zs | sh_xpd_chex_gd_zs | nv_ind_manf_zs | nv_ind_totl_zs | sp_pop_dpnd | sp_pop_totl |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| El Salvador | 2024 | 5579.66 | 2.60202 | 20.34423 | 58.924 | 32.7607 | 2.612419 | NA | NA | NA | NA | 12.04548 | 22.43831 | 49.15297 | 6338193 |
cat("
La Tabla 4 muestra el universo de datos que efectivamente seran utilizados
en la construccion del ISD. A partir de esta base, procedemos a la
normalizacion min-max en la Seccion 7.
")
##
## La Tabla 4 muestra el universo de datos que efectivamente seran utilizados
## en la construccion del ISD. A partir de esta base, procedemos a la
## normalizacion min-max en la Seccion 7.
# -------------------------------------------------------------
# SECCION 7 — Normalizacion Min-Max y direccion positiva/negativa
# -------------------------------------------------------------
cat("
### Normalizacion de los indicadores
Una vez construida la base final, el siguiente paso consiste en normalizar
cada indicador para llevarlo a una escala comun entre 0 y 1. Esto permite
comparar variables que originalmente estan en unidades muy distintas
(PIB, desigualdad, energia renovable, CO2, etc.).
Se utiliza la normalizacion **Min-Max**:
X_norm = (X - min) / (max - min)
Tambien se aplica inversion para indicadores donde:
- mayor valor implica peor desempeño (por ejemplo, desigualdad o emisiones),
- se desea que la interpretacion final sea uniforme: valores mas altos
implican mejor desempeño.
")
##
## ### Normalizacion de los indicadores
##
## Una vez construida la base final, el siguiente paso consiste en normalizar
## cada indicador para llevarlo a una escala comun entre 0 y 1. Esto permite
## comparar variables que originalmente estan en unidades muy distintas
## (PIB, desigualdad, energia renovable, CO2, etc.).
##
## Se utiliza la normalizacion **Min-Max**:
##
## X_norm = (X - min) / (max - min)
##
## Tambien se aplica inversion para indicadores donde:
## - mayor valor implica peor desempeño (por ejemplo, desigualdad o emisiones),
## - se desea que la interpretacion final sea uniforme: valores mas altos
## implican mejor desempeño.
# -------------------------------------------------------------
# 1) Indicadores cuya direccion es NEGATIVA (mayor = peor)
# -------------------------------------------------------------
neg_indicators <- c(
code_to_clean("SI.POV.GINI"), # desigualdad
code_to_clean("EN.ATM.CO2E.PC"),# CO2 per capita
code_to_clean("EN.ATM.CO2E.KT"),# CO2 total
code_to_clean("SP.POP.DPND") # razon de dependencia
)
# -------------------------------------------------------------
# 2) Funcion de normalizacion Min-Max robusta
# -------------------------------------------------------------
normalize_minmax <- function(x, direction = "pos") {
x_num <- as.numeric(x)
# Si todo es NA, devolver NA
if (all(is.na(x_num))) return(rep(NA_real_, length(x_num)))
minv <- min(x_num, na.rm = TRUE)
maxv <- max(x_num, na.rm = TRUE)
# Si min = max, no tiene rango → asignar 1
if (minv == maxv) return(rep(1, length(x_num)))
# Normalizacion
res <- (x_num - minv) / (maxv - minv)
# Inversion para indicadores negativos
if (direction == "neg") {
res <- 1 - res
}
return(res)
}
# -------------------------------------------------------------
# 3) Crear base normalizada wdi_norm
# -------------------------------------------------------------
wdi_norm <- wdi_base
for (col in present) {
dir_indicator <- ifelse(col %in% neg_indicators, "neg", "pos")
newcol <- paste0(col, "_n") # nuevo nombre
wdi_norm[[newcol]] <- normalize_minmax(
wdi_base[[col]],
direction = dir_indicator
)
}
# -------------------------------------------------------------
# 4) Mostrar solo columnas normalizadas
# -------------------------------------------------------------
tabla_norm <- wdi_norm %>% select(country, year, ends_with("_n"))
kable(
tabla_norm,
caption = "Tabla 5: Indicadores normalizados (escala 0 a 1)"
)
| country | year | ny_gdp_pcap_cd_n | ny_gdp_mktp_kd_zg_n | ne_gdi_totl_zs_n | sl_emp_totl_sp_zs_n | ne_exp_gnfs_zs_n | bx_klt_dinv_wd_gd_zs_n | si_pov_gini_n | sp_dyn_le00_in_n | eg_fec_rnew_zs_n | sh_xpd_chex_gd_zs_n | nv_ind_manf_zs_n | nv_ind_totl_zs_n | sp_pop_dpnd_n | sp_pop_totl_n |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| El Salvador | 2024 | 1 | 1 | 1 | 1 | 1 | 1 | NA | NA | NA | NA | 1 | 1 | 1 | 1 |
cat("
La Tabla 5 muestra los valores normalizados de cada indicador.
Estos valores se utilizaran para generar las matrices X y los seis índices
sintéticos en las secciones siguientes.
Los indicadores negativos ya fueron invertidos correctamente para que
valores mas altos representen un mejor desempeño.
")
##
## La Tabla 5 muestra los valores normalizados de cada indicador.
## Estos valores se utilizaran para generar las matrices X y los seis índices
## sintéticos en las secciones siguientes.
##
## Los indicadores negativos ya fueron invertidos correctamente para que
## valores mas altos representen un mejor desempeño.
# -------------------------------------------------------------
# SECCION 8 — Construccion de matrices X y definicion de pesos
# -------------------------------------------------------------
cat("
### Construccion de matrices X por grupo teorico
Cada indice sintetico (ISD) se construye a partir de una matriz X, que contiene:
- las columnas normalizadas de los indicadores seleccionados,
- organizadas por grupo teorico (ortodoxo o heterodoxo),
- y diferenciando entre nivel nacional y nivel sectorial.
Cada fila corresponde al pais (en este caso, solamente El Salvador).
Cada columna corresponde a un indicador normalizado en escala 0-1.
")
##
## ### Construccion de matrices X por grupo teorico
##
## Cada indice sintetico (ISD) se construye a partir de una matriz X, que contiene:
##
## - las columnas normalizadas de los indicadores seleccionados,
## - organizadas por grupo teorico (ortodoxo o heterodoxo),
## - y diferenciando entre nivel nacional y nivel sectorial.
##
## Cada fila corresponde al pais (en este caso, solamente El Salvador).
## Cada columna corresponde a un indicador normalizado en escala 0-1.
# -------------------------------------------------------------
# Funcion generica para crear matriz X a partir de nombres limpios
# -------------------------------------------------------------
build_X <- function(clean_codes) {
cols_n <- paste0(clean_codes, "_n") # nombres normalizados
cols_exist <- intersect(cols_n, names(wdi_norm)) # filtrar existentes
if (length(cols_exist) == 0) {
return(matrix(nrow = nrow(wdi_norm), ncol = 0)) # matriz vacia si no hay datos
}
mat <- wdi_norm %>%
select(all_of(cols_exist)) %>%
mutate(across(everything(), as.numeric)) %>%
as.matrix()
colnames(mat) <- cols_exist
return(mat)
}
# -------------------------------------------------------------
# Matrices X por grupo
# -------------------------------------------------------------
X_nat_ortho <- build_X(nat_ortho_clean)
X_nat_hetero <- build_X(nat_hetero_clean)
X_sec_ortho <- build_X(sec_ortho_clean)
X_sec_hetero <- build_X(sec_hetero_clean)
# -------------------------------------------------------------
# Definicion de pesos (equal weights)
# -------------------------------------------------------------
w_nat_ortho <- if (ncol(X_nat_ortho) > 0) rep(1 / ncol(X_nat_ortho), ncol(X_nat_ortho)) else numeric(0)
w_nat_hetero <- if (ncol(X_nat_hetero) > 0) rep(1 / ncol(X_nat_hetero), ncol(X_nat_hetero)) else numeric(0)
w_sec_ortho <- if (ncol(X_sec_ortho) > 0) rep(1 / ncol(X_sec_ortho), ncol(X_sec_ortho)) else numeric(0)
w_sec_hetero <- if (ncol(X_sec_hetero) > 0) rep(1 / ncol(X_sec_hetero), ncol(X_sec_hetero)) else numeric(0)
# -------------------------------------------------------------
# Tabla resumen de cantidad de indicadores por matriz
# -------------------------------------------------------------
tabla_matrices <- tibble(
Grupo = c("Nacional Ortodoxo", "Nacional Heterodoxo",
"Sectorial Ortodoxo", "Sectorial Heterodoxo"),
Numero_de_Indicadores = c(ncol(X_nat_ortho),
ncol(X_nat_hetero),
ncol(X_sec_ortho),
ncol(X_sec_hetero))
)
kable(tabla_matrices, caption = "Tabla 6: Tamaño de matrices X por grupo teorico")
| Grupo | Numero_de_Indicadores |
|---|---|
| Nacional Ortodoxo | 6 |
| Nacional Heterodoxo | 4 |
| Sectorial Ortodoxo | 2 |
| Sectorial Heterodoxo | 3 |
cat("
La Tabla 6 muestra cuántos indicadores contiene cada matriz X. En caso
de que alguna matriz tenga 0 columnas, significa que ningun indicador
para ese grupo estuvo disponible en WDI para El Salvador.
Con estas matrices y pesos, estamos listos para proceder a la construccion
de los seis indices sinteticos en la Seccion 9.
")
##
## La Tabla 6 muestra cuántos indicadores contiene cada matriz X. En caso
## de que alguna matriz tenga 0 columnas, significa que ningun indicador
## para ese grupo estuvo disponible en WDI para El Salvador.
##
## Con estas matrices y pesos, estamos listos para proceder a la construccion
## de los seis indices sinteticos en la Seccion 9.
# -------------------------------------------------------------
# SECCION 9 — Calculo de los seis indices sinteticos (ISD)
# -------------------------------------------------------------
cat("
### Calculo de los Indices Sinteticos de Desarrollo (ISD)
A partir de las matrices X construidas en la Seccion 8, ahora se procede
al calculo de los seis indices sinteticos:
1. ISD Nacional Ortodoxo
2. ISD Nacional Heterodoxo
3. ISD Nacional Combinado
4. ISD Sectorial Ortodoxo
5. ISD Sectorial Heterodoxo
6. ISD Sectorial Combinado
Cada indice se construye mediante un promedio ponderado, donde los pesos
representan la importancia relativa de cada indicador dentro de su grupo.
En este trabajo se utilizan **pesos iguales**, siguiendo la metodologia
estandar de indices sintéticos.
")
##
## ### Calculo de los Indices Sinteticos de Desarrollo (ISD)
##
## A partir de las matrices X construidas en la Seccion 8, ahora se procede
## al calculo de los seis indices sinteticos:
##
## 1. ISD Nacional Ortodoxo
## 2. ISD Nacional Heterodoxo
## 3. ISD Nacional Combinado
## 4. ISD Sectorial Ortodoxo
## 5. ISD Sectorial Heterodoxo
## 6. ISD Sectorial Combinado
##
## Cada indice se construye mediante un promedio ponderado, donde los pesos
## representan la importancia relativa de cada indicador dentro de su grupo.
## En este trabajo se utilizan **pesos iguales**, siguiendo la metodologia
## estandar de indices sintéticos.
# -------------------------------------------------------------
# Funcion generica para calcular un ISD
# -------------------------------------------------------------
calc_isd <- function(X, w) {
if (length(w) == 0 || ncol(X) == 0) return(NA_real_)
as.numeric(X %*% w)
}
# -------------------------------------------------------------
# Calculo de cada ISD
# -------------------------------------------------------------
isd_nat_ortho <- calc_isd(X_nat_ortho, w_nat_ortho)
isd_nat_hetero <- calc_isd(X_nat_hetero, w_nat_hetero)
isd_nat_comb <- mean(c(isd_nat_ortho, isd_nat_hetero), na.rm = TRUE)
isd_sec_ortho <- calc_isd(X_sec_ortho, w_sec_ortho)
isd_sec_hetero <- calc_isd(X_sec_hetero, w_sec_hetero)
isd_sec_comb <- mean(c(isd_sec_ortho, isd_sec_hetero), na.rm = TRUE)
# -------------------------------------------------------------
# Construccion de tabla final
# -------------------------------------------------------------
resultados_isd <- tibble(
Pais = wdi_norm$country,
ISD_Nacional_Ortodoxo = isd_nat_ortho,
ISD_Nacional_Heterodoxo = isd_nat_hetero,
ISD_Nacional_Combinado = isd_nat_comb,
ISD_Sector_Ortodoxo = isd_sec_ortho,
ISD_Sector_Heterodoxo = isd_sec_hetero,
ISD_Sector_Combinado = isd_sec_comb
)
kable(resultados_isd, caption = "Tabla 7: Indices Sinteticos de Desarrollo (Nacional y Sectorial)")
| Pais | ISD_Nacional_Ortodoxo | ISD_Nacional_Heterodoxo | ISD_Nacional_Combinado | ISD_Sector_Ortodoxo | ISD_Sector_Heterodoxo | ISD_Sector_Combinado |
|---|---|---|---|---|---|---|
| El Salvador | 1 | NA | 1 | 1 | NA | 1 |
cat("
La Tabla 7 resume los seis indices sinteticos. Estos valores representan
una medida normalizada del desempeno relativo de El Salvador, tanto bajo
el enfoque ortodoxo como heterodoxo, y diferenciando entre nivel nacional
y nivel sectorial.
A continuacion, en la Seccion 10, se presentan los graficos comparativos
para facilitar la interpretacion visual de los resultados.
")
##
## La Tabla 7 resume los seis indices sinteticos. Estos valores representan
## una medida normalizada del desempeno relativo de El Salvador, tanto bajo
## el enfoque ortodoxo como heterodoxo, y diferenciando entre nivel nacional
## y nivel sectorial.
##
## A continuacion, en la Seccion 10, se presentan los graficos comparativos
## para facilitar la interpretacion visual de los resultados.
cat("
### Visualización tipo Radar (Estilo académico – similar al RPubs de referencia)
Los gráficos tipo radar permiten una representación multidimensional que
muestra visualmente las diferencias relativas entre enfoques ortodoxo,
heterodoxo y combinado, tanto a nivel nacional como a nivel sectorial.
Este tipo de gráfico es ampliamente utilizado en índices sintéticos.
")
##
## ### Visualización tipo Radar (Estilo académico – similar al RPubs de referencia)
##
## Los gráficos tipo radar permiten una representación multidimensional que
## muestra visualmente las diferencias relativas entre enfoques ortodoxo,
## heterodoxo y combinado, tanto a nivel nacional como a nivel sectorial.
## Este tipo de gráfico es ampliamente utilizado en índices sintéticos.
# Paquetes necesarios
library(dplyr)
library(tidyr)
library(ggplot2)
# ===========================================================
# 1) Preparación de datos para gráfico radar
# ===========================================================
isd_radar <- resultados_isd %>%
pivot_longer(cols = -Pais,
names_to = "Indicador",
values_to = "ISD") %>%
mutate(
Tipo = case_when(
grepl("Nacional", Indicador) ~ "Nacional",
grepl("Sector", Indicador) ~ "Sectorial"
),
Enfoque = case_when(
grepl("Ortodoxo", Indicador) ~ "Ortodoxo",
grepl("Heterodoxo", Indicador) ~ "Heterodoxo",
grepl("Combinado", Indicador) ~ "Combinado"
)
)
# ===========================================================
# 2) Función genérica para generar radar charts con ggplot2
# ===========================================================
plot_radar <- function(df, titulo){
# Convertir el eje en circular
ggplot(df, aes(x = Enfoque, y = ISD, group = 1)) +
geom_polygon(fill = "#4F81BD55", color = "black", linewidth = 1) +
geom_point(size = 3) +
coord_polar() +
ylim(0,1) +
theme_minimal(base_size = 14) +
labs(title = titulo, x = "", y = "ISD (0-1)") +
theme(
axis.text.y = element_blank(),
panel.grid.minor = element_blank(),
plot.title = element_text(face = "bold", size = 16, hjust = 0.5)
)
}
# ===========================================================
# 3) Gráfico Radar – Nivel Nacional
# ===========================================================
df_nat <- isd_radar %>% filter(Tipo == "Nacional")
g_radar_nat <- plot_radar(df_nat,
"Radar del ISD Nacional (Ortodoxo, Heterodoxo, Combinado)")
print(g_radar_nat)
# ===========================================================
# 4) Gráfico Radar – Sector Industrial
# ===========================================================
df_sec <- isd_radar %>% filter(Tipo == "Sectorial")
g_radar_sec <- plot_radar(df_sec,
"Radar del ISD Sectorial (Ortodoxo, Heterodoxo, Combinado)")
print(g_radar_sec)
cat("
Los gráficos tipo radar permiten visualizar de manera multidimensional los
resultados del ISD, siguiendo la lógica y estilo del RPubs de referencia,
y resaltando la diferencia entre enfoques en un solo país.
")
##
## Los gráficos tipo radar permiten visualizar de manera multidimensional los
## resultados del ISD, siguiendo la lógica y estilo del RPubs de referencia,
## y resaltando la diferencia entre enfoques en un solo país.
ANÁLISIS DE RESULTADOS Y CONCLUSIONES GENERALES
Resumen
Este estudio construyó seis índices sintéticos de desarrollo (ISD) para
El Salvador: ISD Nacional Ortodoxo, ISD Nacional Heterodoxo, ISD
Nacional Combinado, ISD Sectorial Ortodoxo (industria), ISD Sectorial
Heterodoxo (industria) y ISD Sectorial Combinado. Los indicadores
provienen de la base WDI (Banco Mundial) y fueron normalizados con el
método Min–Max; los índices se obtuvieron por promedios ponderados
(pesos iguales por defecto). El objetivo fue comparar las perspectivas
teóricas (ortodoxa vs. heterodoxa) y evaluar la contribución del sector
industrial al desarrollo nacional.
Principales hallazgos.
- Los ISD Nacionales (ortodoxo vs. heterodoxo) muestran
diferencias cuantitativas que reflejan tensiones entre
desempeño macroeconómico y dimensiones sociales/ambientales.
- El ISD Combinado resume estas tensiones y ofrece una medida integrada
que sirve como referencia para diagnóstico y política.
- En el ámbito sectorial, los ISD calculados con indicadores disponibles
muestran (i) si la industria aporta proporcionalmente al desarrollo
nacional desde la óptica ortodoxa y (ii) si enfrenta brechas en
sostenibilidad y equidad desde la óptica heterodoxa.
- La comparación nacional vs. sectorial permite identificar si la
estructura productiva (industria) está alineada con metas de desarrollo
sostenible o si existe una desalineación que requiere intervención
pública.
Interpretación académica (ortodoxo
vs. heterodoxo).
- Ortodoxo: Valores más altos del ISD ortodoxo indican
fortalezas en variables macroeconómicas tradicionales (PIB per cápita,
inversión, exportaciones, empleo). Un ISD ortodoxo alto sugiere que las
condiciones para crecimiento impulsadas por mercado están relativamente
favorables.
- Heterodoxo: Valores más altos en el ISD heterodoxo reflejan
mejor desempeño en dimensiones sociales y ambientales (menor
desigualdad, mayor esperanza de vida, mayor uso de renovables, mejor
acceso a servicios). Si el ISD heterodoxo es significativamente menor
que el ortodoxo, esto indica que el crecimiento no está traduciendo
automáticamente mejoras en bienestar ni sostenibilidad.
- Combinado: El ISD combinado es una medida pragmática para
formular políticas que integren crecimiento y bienestar; la distancia
entre los índices ortodoxo y heterodoxo orienta la priorización
política.
Implicaciones de política pública (sintéticas y
accionables).
1. Si ISD_sec_ortho < ISD_nat_ortho: priorizar políticas de
transformación productiva (incentivos a manufactura de mayor valor
agregado, capacitación técnica, promoción de exportaciones).
2. Si ISD_sec_hetero < ISD_nat_hetero: introducir medidas que
mitiguen impactos ambientales y aumenten inclusión (programas de
eficiencia energética industrial, fiscalidad ambiental, fomento a
energías renovables en parques industriales).
3. En caso de divergencias marcadas entre ortodoxo y heterodoxo: diseñar
paquetes integrados —por ejemplo, incentivos a inversión condicionados a
mejoras sociales/ambientales (cláusulas de empleo local, obligaciones de
inversión en formación y control de emisiones).
Limitaciones metodológicas.
- Disponibilidad de datos sectoriales: WDI limita algunos indicadores
específicos de industria, lo que obliga a usar proxies.
- Normalización Min–Max aplicada a una única observación por país puede
llevar a efectos de borde (min = max ⇒ valor constante); por ello se
recomienda comparar con rangos teóricos o ampliar el horizonte temporal
o el conjunto de países en análisis complementarios.
- Pesos iguales: constituyen una suposición transparente y reproducible,
pero los resultados son sensibles a cambios en ponderaciones —se
recomienda análisis de sensibilidad (simulaciones de pesos, PCA, métodos
de entropía).
Recomendaciones metodológicas y de investigación
futura.
- Realizar análisis de sensibilidad con al menos 1,000 simulaciones de
pesos aleatorios y reportar intervalos de confianza para los ISD.
- Implementar PCA (análisis de componentes principales) como técnica
complementaria para validar la estructura de correlaciones entre
indicadores.
- Ampliar el estudio a un panel de países comparables o series
temporales para mejorar la robustez de la normalización y evitar
problemas de min=max.
- Explorar fuentes sectoriales nacionales (institutos de estadística,
ministerios sectoriales) para mejorar la especificidad de indicadores
industriales.
Conclusión final (resumen).
Los seis índices construidos proporcionan una herramienta sintética y
útil para diagnosticar la posición de El Salvador desde dos marcos
teóricos complementarios y para evaluar el papel del sector industrial
en el desarrollo. Para que esta herramienta sirva a la formulación de
políticas, se requieren análisis de sensibilidad robustos y, cuando sea
posible, datos sectoriales más detallados. Este enfoque integrador
responde a los objetivos del curso y a las indicaciones metodológicas
entregadas por el docente, facilitando la discusión entre eficiencia
económica y sostenibilidad/equidad (visión ortodoxa vs. heterodoxa).
Referencias (formato APA — completar según fuentes
usadas):
- Banco Mundial. (año). World Development Indicators (WDI).
Recuperado de https://data.worldbank.org
- Autor, A. A. (año). Título del libro o artículo.
Editorial.
- (Inserte aquí otras referencias metodológicas o teóricas en formato
APA)