Indicadores sintéticos

Indicador Sintético de Desarrollo: Enfoque Ortodoxo

Indicador Sintético del Desarrollo Nacional Ortodoxo

El Indicador Sintético del Desarrollo Nacional se calcula de la siguiente manera:

\[ISDNO = \sum_{j=1}^{m} ( w_{j} \times X_{j} )\] Donde:

  • \(X_{j}\) son los indicadores de desarrollo agrario y rural, incluyendo aspectos cualitativos (sociales, tecnológicos, ambientales, institucionales, etc.).

  • \(w_{j}\) son los pesos asignados a cada indicador

  • (\(X_{j}\)) según su relevancia para el diagnóstico y la transformación estructural propuesta desde la teoría ortodoxa

  • \(m\) es el número total de indicadores utilizados en la medición.

library(readxl)
library(dplyr)
library(tidyr)
library(tidyverse)<
library(writexl)
##  [1]  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE
## [13]  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE
# Importación

ISDNH <- read_excel("C:/Users/johan/Downloads/Datos 1a.xlsx")
colnames(ISDNH)[1] <- "Anio" # Renombramos Año a Anio

# Limpieza e Imputación

ISDNH_clean <- ISDNH %>%
  mutate(across(x1:x13, ~ as.numeric(gsub("[^0-9.-]", "", .)))) %>%
  mutate(across(x1:x13, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización

normalize <- function(x) {
  if(max(x, na.rm=T) - min(x, na.rm=T) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm=T)) / (max(x, na.rm=T) - min(x, na.rm=T)))
}
ISDNH_norm <- ISDNH_clean %>% mutate(across(x1:x13, normalize))

# Pesos y Cálculo

w <- c(0.04, 0.12, 0.1, 0.12, 0.03, 0.06, 0.02, 0.05, 0.1, 0.08, 0.1, 0.06, 0.12)
ISDNH_final <- ISDNH_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDNH_norm %>% select(x1:x13)) %*% w
  )
# Gráfico

ggplot(ISDNH_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(

    title = "Evolución del Índice de Desarrollo Nacional Ortodoxo",
    
    subtitle = "Basado en variables normalizadas",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración Propia"
  ) +
  scale_x_continuous(breaks = unique(ISDNH_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# Exportar Resultados a Excel

write_xlsx(ISDNH_final, "C:/Users/johan/Downloads/Resultado_ISDS_1a.xlsx")

Indicador Sintético del Desarrollo Sectorial Ortodoxo

El Indicador Sintético del Desarrollo Sectorial se calcula de la siguiente manera:

\[ISDSO = \sum_{j=1}^{m} ( w_{j} \times X_{j} )\]

  • \(X_{j}\) Xi son los indicadores económicos cuantitativos

  • \(w_{j}\) son los pesos asignados según su relevancia en la teoría ortodoxa por sector económico.

  • (\(X_{j}\)) según su relevancia para el diagnóstico y la transformación estructural sectorial propuesta desde la teoría ortodoxa

  • \(m\) es el número total de indicadores utilizados en la medición sectorial

# Importar datos 

ISDS <- read_excel("C:/Users/johan/Downloads/DATOS 1b.xlsx")

colnames(ISDS)[1] <- "Anio"


# Limpieza de Datos 

ISDS_clean <- ISDS %>%
  mutate(across(X1:X12, ~ as.numeric(gsub("[^0-9.-]", "", .))))

# mputación de Datos Faltantes 
# Rellenar NAs con el promedio de la columna
ISDS_clean <- ISDS_clean %>%
  mutate(across(X1:X12, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización (Escalado Min-Max) 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) {
    return(rep(0, length(x)))
  } else {
    return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
  }
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(X1:X12, normalize))

# Definición de Pesos 
w <- c(0.15, 0.05, 0.08, 0.05, 0.08, 0.10, 0.10, 0.05, 0.05, 0.12, 0.12, 0.05)

if(abs(sum(w) - 1) > 0.0001) warning(" Los pesos no suman 1 exactamente")

# Cálculo del Indicador Sintético Ponderado 
ISDS_final <- ISDS_clean %>%
  mutate(
    
    ISDS_Index = as.matrix(ISDS_norm %>% select(X1:X12)) %*% w
  )

#Visualización 

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  # Estilo idéntico al anterior: Línea azul y puntos oscuros
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico de Desarrollo Sectorial Ortodoxo)",
    subtitle = "Basado en variables normalizadas ",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente:Elaboración propia"
  ) +
  # Asegura años enteros en el eje X
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  # Centrado de títulos
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# Exportar Resultados a Excel

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_1b.xlsx")

Diferencial sectorial Ortodoxo

# --- 1. IMPORTAR DATOS ---
ISD_Dif <- read_excel("C:/Users/johan/Downloads/ISD DIFERENCIAL .xlsx")

# Renombrar columnas para facilitar el manejo
# Asumimos: ISDSO = Sector, ISDNO = Nacional
colnames(ISD_Dif) <- c("Anio", "ISD_Sector", "ISD_Nacional")

# --- 2. CÁLCULO DEL DIFERENCIAL ---
# Fórmula: Diferencial = ISD Sector - ISD Nacional
ISD_Final <- ISD_Dif %>%
  mutate(
    Diferencial = ISD_Sector - ISD_Nacional,
    
    # Creamos una etiqueta para saber si aporta o resta
    Contribucion = ifelse(Diferencial >= 0, "Positiva (Supera al Nacional)", "Negativa (Debajo del Nacional)"),
    
    # Color para el gráfico: Verde si es positivo, Rojo si es negativo
    Color_Barra = ifelse(Diferencial >= 0, "Positivo", "Negativo")
  )

# --- 3. VISUALIZACIÓN (Gráfico de Diferencial) ---
# Usamos un gráfico de barras porque es ideal para mostrar valores positivos y negativos
ggplot(ISD_Final, aes(x = Anio, y = Diferencial, fill = Contribucion)) +
  geom_col(alpha = 0.8, width = 0.7) + # Barras
  geom_hline(yintercept = 0, color = "black", size = 1) + # Línea base en cero
  
  # Colores personalizados: Verde para positivo, Rojo (ladrillo) para negativo
  scale_fill_manual(values = c("Positiva (Supera al Nacional)" = "forestgreen", 
                               "Negativa (Debajo del Nacional)" = "firebrick")) +
  
  theme_minimal() +
  labs(
    title = "Diferencial Sectorial: Desempeño relativo del Sector",
    subtitle = "Diferencia = ISD Sector - ISD Nacional",
    x = "Año",
    y = "Diferencial de Desarrollo",
    caption = "Fuente: Elaboración propia",
    fill = "Tipo de Contribución"
  ) +
  scale_x_continuous(breaks = unique(ISD_Final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5),
    legend.position = "bottom"
  )

# --- 4. EXPORTAR RESULTADOS ---
# Guardamos la tabla con el cálculo y la interpretación
write_xlsx(ISD_Final, "C:/Users/johan/Downloads/Resultado_Diferencial_Sectorial.xlsx")

Indicador Sintético de Desarrollo: Enfoque Heterodoxo

Cálculos previos para el ISD nacional Heterodoxo

Cálculo del indicador sintético de soberanía alimentaria

library(writexl)
# Importar datos 

ISDS_0a <- read_excel("C:/Users/johan/Downloads/Datos 0a.xlsx")
colnames(ISDS_0a)[1] <- "Anio"

# Limpieza e Imputación 

ISDS_clean <- ISDS_0a %>%
  mutate(across(x1:x7, ~ as.numeric(gsub("[^0-9.-]", "", .)))) %>%
  mutate(across(x1:x7, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x7, normalize))

# Definición de Pesos 

w <- rep(1/7, 7)

# Cálculo del Indicador
ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x7)) %*% w
  )

# Visualización
ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintético de Soberanía alimentaria",
    subtitle = "Pesos equitativos",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# Guardar indicador en Excel

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_0a.xlsx")

Cálculo del indicador sintético de Autonomía campesina y sostenibilidad ecológica

# Importar datos 
ISDS_0b <- read_excel("C:/Users/johan/Downloads/Datos 0b.xlsx")

colnames(ISDS_0b)[1] <- "Anio"

# Limpieza e Imputación 

ISDS_clean <- ISDS_0b %>%
  mutate(across(x1:x5, ~ as.numeric(gsub("[^0-9.-]", "", .)))) %>%
  mutate(across(x1:x5, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x5, normalize))

# Definición de Pesos

w <- rep(1/5, 5)

# Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x5)) %*% w
  )

# Visualización 
ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico de Autonomía campesina y sostenibilidad ecológica",
    subtitle = "Pesos equitativos ",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración Propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# Guardar indicador en Excel

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_0b.xlsx")

Cálculo del indicador sintético de Acceso equitativo a tierra y recursos hídricos

# Importar datos 

ISDS_0c <- read_excel("C:/Users/johan/Downloads/Datos 0c.xlsx")

colnames(ISDS_0c)[1] <- "Anio"

# Limpieza e Imputación

ISDS_clean <- ISDS_0c %>%
  mutate(across(x1:x4, ~ as.numeric(gsub("[^0-9.-]", "", .)))) %>%
  mutate(across(x1:x4, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x4, normalize))

# Definición de Pesos 

w <- rep(1/4, 4)

# Cálculo del Indicador
ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x4)) %*% w
  )

# Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico de Acceso equitativo a tierra y recursos hídricos",
    subtitle = "Pesos equitativos ",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# Guardar indicador en Excel

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_0c.xlsx")

Cálculo del indicador sintético de Reproducción comunitaria y redes solidarias de producción

# Importar datos
ISDS_0d1 <- read_excel("C:/Users/johan/Downloads/Datos 0d1.xlsx")

colnames(ISDS_0d1)[1] <- "Anio"

# Limpieza e Imputación

ISDS_clean <- ISDS_0d1 %>%
  # Aplicamos formato numérico a las 12 variables
  mutate(across(x1:x12, as.numeric)) %>%
  
  # Imputación de medias para valores faltantes
  mutate(across(x1:x12, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x12, normalize))


# Definición de Pesos 

w <- rep(1/12, 12)

# Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x12)) %*% w
  )

# Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintético de Reproducción comunitaria y redes solidarias de producción",
    subtitle = "Pesos equitativos ",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_0d.xlsx")

Cálculo del indicador sintético marxista

# Importar datos
ISDS_0e <- read_excel("C:/Users/johan/Downloads/Datos 0e.xlsx")

colnames(ISDS_0e)[1] <- "Anio"

# Limpieza e Imputación

ISDS_clean <- ISDS_0e %>%
  mutate(across(x1:x5, ~ as.numeric(gsub("[^0-9.-]", "", .)))) %>%
  
  mutate(across(x1:x5, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x5, normalize))


# Definición de Pesos 

w <- rep(1/5, 5)

# Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x5)) %*% w
  )

# Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico marxista ",
    subtitle = "Pesos equitativos ",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

Indicador Sintético del Desarrollo Nacional Heterodoxo

El Indicador Sintético del Desarrollo Nacional se calcula de la siguiente manera:

\[ISDNH = \sum_{j=1}^{m} ( w_{j} \times X_{j} )\] Donde:

  • \(X_{j}\) son los indicadores de desarrollo agrario y rural, incluyendo aspectos cualitativos (sociales, tecnológicos, ambientales, institucionales, etc.).

  • \(w_{j}\) son los pesos asignados a cada indicador

  • (\(X_{j}\)) según su relevancia para el diagnóstico y la transformación estructural propuesta desde la teoría ortodoxa

  • \(m\) es el número total de indicadores utilizados en la medición.

# 1. Importar datos

ISDS_2a <- read_excel("C:/Users/johan/Downloads/Datos 2a.xlsx")

if("Anio" %in% colnames(ISDS_2a)) {
} else {
  colnames(ISDS_2a)[1] <- "Anio"
}
## NULL
# Limpieza e Imputación

ISDS_clean <- ISDS_2a %>%
  mutate(across(x1:x5, as.numeric)) %>%
  mutate(across(x1:x5, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x5, normalize))


# Definición de Pesos

w <- c(0.25, 0.20, 0.20, 0.20, 0.15)

if(sum(w) != 1) warning("Los pesos no suman 1")

# Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x5)) %*% w
  )

# Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico del Desarrollo Nacional Heterodoxo",
    subtitle = "Con pesos asignados",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# Exportar Resultados a Excel

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_2a.xlsx")

Cálculos previos para el ISD sectorial Heterodoxo

Cálculo del indicador sintético de Soberanía alimentaria y diversificación productiva sectorial

# 1. Importar datos
ISDS_00a <- read_excel("C:/Users/johan/Downloads/00a.xlsx")
if("Anio" %in% colnames(ISDS_00a)) {
} else {

  colnames(ISDS_00a)[1] <- "Anio"
}

# 2. Limpieza e Imputación

ISDS_clean <- ISDS_00a %>%
  mutate(across(x1:x10, as.numeric)) %>%

  mutate(across(x1:x10, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# 3. Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x10, normalize))


# 4. Definición de Pesos (Iguales)

w <- rep(1/10, 10)

# 5. Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x10)) %*% w
  )

# 6. Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico de Soberanía alimentaria y diversificación productiva sectorial",
    subtitle = "Pesos equitativos (1/10)",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# 7. Exportar Resultados a Excel

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_00a.xlsx")

Cálculo del indicador sintético de Autonomía campesina y sostenibilidad ecológica

# 1. Importar datos
ISDS_00b <- read_excel("C:/Users/johan/Downloads/00b.xlsx")
if("Anio" %in% colnames(ISDS_00b)) {
} else {
  colnames(ISDS_00b)[1] <- "Anio"
}

# 2. Limpieza e Imputación

ISDS_clean <- ISDS_00b %>%
  mutate(across(x1:x6, as.numeric)) %>%
  mutate(across(x1:x6, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# 3. Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x6, normalize))


# 4. Definición de Pesos (Iguales)

w <- rep(1/6, 6)

# 5. Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x6)) %*% w
  )

# 6. Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico de Autonomía Campesina y Sostenibilidad ecológica ",
    subtitle = "Pesos equitativos ",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# 7. Exportar Resultados a Excel

# Se guardará directamente en tus DESCARGAS
write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_00b.xlsx")

Cálculo del indicador sintético de Acceso equitativo a tierra y recursos hídricos

# 1. Importar datos
ISDS_00c <- read_excel("C:/Users/johan/Downloads/00c.xlsx")

if("Anio" %in% colnames(ISDS_00c)) {
} else {
  colnames(ISDS_00c)[1] <- "Anio"
}

# 2. Limpieza e Imputación

ISDS_clean <- ISDS_00c %>%
  mutate(across(x1:x5, as.numeric)) %>%
  mutate(across(x1:x5, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# 3. Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x5, normalize))


# 4. Definición de Pesos
w <- rep(1/5, 5)

# 5. Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x5)) %*% w
  )

# 6. Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico de Acceso equitativo a tierra y recursos hídricos",
    subtitle = "Pesos equitativos ",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# 7. Exportar Resultados a Excel

write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_00c.xlsx")

Cálculo del indicador sintético de Reproducción comunitaria y redes solidarias

# 1. Importar datos
ISDS_00d <- read_excel("C:/Users/johan/Downloads/00d.xlsx")
if("Anio" %in% colnames(ISDS_00d)) {
} else {
  colnames(ISDS_00d)[1] <- "Anio"
}

# 2. Limpieza e Imputación

ISDS_clean <- ISDS_00d %>%
  mutate(across(x1:x4, as.numeric)) %>%
  mutate(across(x1:x4, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# 3. Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x4, normalize))


# 4. Definición de Pesos (Iguales)
w <- rep(1/4, 4)

# 5. Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x4)) %*% w
  )

# 6. Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico de Reproducción comunitaria y redes solidarias ",
    subtitle = "Pesos equitativos",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# 7. Exportar Resultados a Excel


write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_00d.xlsx")

Cálculo del indicador sintético de los Indicadores marxistas

# 1. Importar datos
ISDS_00e <- read_excel("C:/Users/johan/Downloads/00e.xlsx")
colnames(ISDS_00e)[1] <- "Anio"
colnames(ISDS_00e) <- tolower(colnames(ISDS_00e)) 
colnames(ISDS_00e)[1] <- "Anio" 
# 2. Limpieza e Imputación

ISDS_clean <- ISDS_00e %>%
  mutate(across(x1:x3, as.numeric)) %>%
    mutate(across(x1:x3, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# 3. Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x3, normalize))


# 4. Definición de Pesos (Iguales)
w <- rep(1/3, 3)

# 5. Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x3)) %*% w
  )

# 6. Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico  de los Indicadores marxistas ",
    subtitle = "Pesos equitativos",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# 7. Exportar Resultados a Excel
write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_00e.xlsx")

Indicador Sintético del Desarrollo Sectorial heterodoxo

El Indicador Sintético del Desarrollo Sectorial se calcula de la siguiente manera:

\[ISDSH = \sum_{j=1}^{m} ( w_{j} \times X_{j} )\] - \(X_{j}\) Xi son los indicadores económicos cuantitativos

  • \(w_{j}\) son los pesos asignados según su relevancia en la teoría heterodoxa por sector económico.

  • (\(X_{j}\)) según su relevancia para el diagnóstico y la transformación estructural sectorial propuesta desde la teoría heterodoxa

  • \(m\) es el número total de indicadores utilizados en la medición sectorial

# 1. Importar datos
ISDS_2b <- read_excel("C:/Users/johan/Downloads/Datos 2b.xlsx")
colnames(ISDS_2b) <- tolower(colnames(ISDS_2b))
colnames(ISDS_2b)[1] <- "Anio"

# 2. Limpieza e Imputación

ISDS_clean <- ISDS_2b %>%
  mutate(across(x1:x5, as.numeric)) %>%
  mutate(across(x1:x5, ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))

# 3. Normalización 

normalize <- function(x) {
  if(max(x, na.rm = TRUE) - min(x, na.rm = TRUE) == 0) return(rep(0, length(x)))
  return ((x - min(x, na.rm = TRUE)) / (max(x, na.rm = TRUE) - min(x, na.rm = TRUE)))
}

ISDS_norm <- ISDS_clean %>%
  mutate(across(x1:x5, normalize))

# 4. Definición de Pesos (Personalizados)

w <- c(0.30, 0.20, 0.25, 0.15, 0.10)

if(sum(w) != 1) warning("Los pesos no suman 1")

# 5. Cálculo del Indicador

ISDS_final <- ISDS_clean %>%
  mutate(
    ISDS_Index = as.matrix(ISDS_norm %>% select(x1:x5)) %*% w
  )

# 6. Visualización

ggplot(ISDS_final, aes(x = Anio, y = ISDS_Index)) +
  geom_line(color = "steelblue", size = 1) +
  geom_point(color = "darkblue", size = 3) +
  theme_minimal() +
  labs(
    title = "Evolución del Indicador Sintetico del Desarrollo Sectorial heterodoxo",
    subtitle = "Pesos acorde a la teoría",
    x = "Año",
    y = "Valor del Indice (0-1)",
    caption = "Fuente: Elaboración propia"
  ) +
  scale_x_continuous(breaks = unique(ISDS_final$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5)
  )

# 7. Exportar resultados 
write_xlsx(ISDS_final, "C:/Users/johan/Downloads/Resultado_ISDS_2b.xlsx")

Diferencial sectorial heterodoxo

# --- 1. IMPORTAR DATOS ---
ISD_Dif_Het <- read_excel("C:/Users/johan/Downloads/ISD DIFERENCIAL Heterodoxo.xlsx")

# Aseguramos que los nombres de columna sean cómodos
# Asumimos que:
# ISDSH = Índice Sectorial Heterodoxo
# ISDNH = Índice Nacional Heterodoxo
colnames(ISD_Dif_Het) <- c("Anio", "ISD_Sector", "ISD_Nacional")

# --- 2. CÁLCULO DEL DIFERENCIAL ---
# Fórmula: Diferencial = ISD Sector - ISD Nacional
ISD_Final_Het <- ISD_Dif_Het %>%
  mutate(
    Diferencial = ISD_Sector - ISD_Nacional,
    
    # Clasificación: Si es >= 0 es "Positiva", si es < 0 es "Negativa"
    Contribucion = ifelse(Diferencial >= 0, "Positiva (Mayor o igual al Nacional)", "Negativa (Menor al Nacional)")
  )

# --- 3. VISUALIZACIÓN (Gráfico de Barras) ---
ggplot(ISD_Final_Het, aes(x = Anio, y = Diferencial, fill = Contribucion)) +
  geom_col(alpha = 0.8, width = 0.7) + 
  geom_hline(yintercept = 0, color = "black", size = 1) + # Línea de referencia en cero
  
  # Colores: Verde para positivo, Rojo para negativo
  scale_fill_manual(values = c("Positiva (Mayor o igual al Nacional)" = "forestgreen", 
                               "Negativa (Menor al Nacional)" = "firebrick")) +
  
  theme_minimal() +
  labs(
    title = "Diferencial Heterodoxo: Desempeño relativo del Sector",
    subtitle = "Comparación: ISD Sectorial vs. Nacional",
    x = "Año",
    y = "Diferencial de Desarrollo",
    caption = "Fuente: Elaboración propia",
    fill = "Tipo de Contribución"
  ) +
  scale_x_continuous(breaks = unique(ISD_Final_Het$Anio)) +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5),
    legend.position = "bottom"
  )

# --- 4. EXPORTAR RESULTADOS ---
# Guardamos el archivo en Descargas
write_xlsx(ISD_Final_Het, "C:/Users/johan/Downloads/Resultado_Diferencial_Heterodoxo.xlsx")