1 PREGUNTA 1: Problemática y Problema de Investigación

1.1 Contexto general

La salud mental en Colombia representa uno de los mayores desafíos del sistema sanitario. Según el Ministerio de Salud, las enfermedades mentales constituyen la segunda causa de años de vida saludable perdidos (AVISAS) en el país, con una prevalencia de trastornos mentales cercana al 9,6% de la población adulta. La psiquiatría, como especialidad médica encargada del diagnóstico y tratamiento de estos trastornos, enfrenta una crítica escasez de talento humano especializado que se distribuye de manera profundamente inequitativa a lo largo del territorio nacional.

En este escenario, la telemedicina emerge como una estrategia de política sanitaria para ampliar el acceso a servicios especializados en regiones con déficit de psiquiatras. Sin embargo, la adopción de esta modalidad no ha sido homogénea entre departamentos, y se desconoce con precisión qué factores del talento humano en salud (THS) y del ingreso base de cotización (IBC) están asociados con su implementación.

1.2 Planteamiento del Problema

El sistema de salud colombiano enfrenta una brecha estructural entre la demanda de atención psiquiátrica y la disponibilidad de especialistas. El Observatorio de Talento Humano en Salud (2024) reporta que en la mayoría de departamentos del país la densidad de psiquiatras se ubica por debajo del umbral mínimo recomendado de 0,20 psiquiatras por 10.000 habitantes. Esta situación es especialmente crítica en departamentos como Vaupés, Guaviare, Amazonas y Guainía, donde la densidad de especialistas es prácticamente nula.

El Registro Especial de Prestadores de Servicios de Salud (REPS) da cuenta de 2.582 sedes habilitadas para prestar servicios de psiquiatría en Colombia, de las cuales 676 (26,2%) operan bajo alguna modalidad de telemedicina. No obstante, este porcentaje oculta una heterogeneidad departamental significativa: mientras Antioquia concentra el 28,8% de todos los prestadores con telemedicina del país (195 sedes), varios departamentos con mayores déficits de THS presentan coberturas mínimas o nulas de esta modalidad.

1.3 Problema de Investigación

¿Cómo influye la implementación de la telemedicina en la prestación de servicios de psiquiatría en Colombia sobre la distribución y disponibilidad del talento humano en salud (THS) en los diferentes departamentos del país?

1.4 Variables del Estudio

Variable Tipo Fuente Descripción
PORC_TELEMEDICINA Cuantitativa continua (VD) REPS Proporción de prestadores con telemedicina / total departamento
THS_DENSIDAD_X10000HAB_2024 Cuantitativa continua (VI) Obs. THS Psiquiatras estimados por 10.000 hab.
THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 Cuantitativa discreta (VI) Obs. THS Número absoluto de psiquiatras estimados
THS_PROMEDIO_IBC_DEPTO_COP Cuantitativa continua (VI) Obs. THS Ingreso base de cotización promedio (COP)
PRESTADORES_TOTAL Cuantitativa discreta (control) REPS Total sedes habilitadas en psiquiatría
CATEGORIA_DEFICIT_THS Cualitativa ordinal Obs. THS Categoría de déficit de especialistas

1.5 Hipótesis de Trabajo

  • H1: Los departamentos con mayor densidad de psiquiatras presentan una menor proporción de prestadores con telemedicina (la telemedicina suple la ausencia física).
  • H2: Los departamentos con mayor IBC promedio presentan una mayor adopción de telemedicina (capacidad económica del sistema facilita la implementación tecnológica).
  • H3: El número total de prestadores habilitados está positivamente asociado con la adopción de telemedicina (mayor infraestructura sanitaria favorece la adopción).

2 PREGUNTA 2 y 3: Script de Análisis — Exploración, Estadística Descriptiva, Modelo y Validación

2.1 Carga de Paquetes y Datos

# Paquetes requeridos
paquetes <- c("readxl", "dplyr", "ggplot2", "tidyr", "corrplot",
              "knitr", "kableExtra", "scales", "broom", "car",
              "lmtest", "nortest", "gridExtra", "ggcorrplot")

# Instalación automática si no están disponibles
instalar <- paquetes[!(paquetes %in% installed.packages()[,"Package"])]
if (length(instalar) > 0) install.packages(instalar, repos = "https://cran.rstudio.com/")

# Carga
invisible(lapply(paquetes, library, character.only = TRUE))
# -------------------------------------------------------
# CARGA DE DATOS
# Fuente: Base consolidada REPS + Observatorio THS 2024
# -------------------------------------------------------

# Opción 1: Desde archivo local (usar en RStudio)
# df_raw <- read_excel("Psiquiatria_por_departamento_.xlsx",
#                      sheet = "Resumen_Departamento",
#                      skip  = 4)

# Opción 2: Datos embebidos (reproducible en RPubs sin subir archivo)
df_raw <- data.frame(
  DEPARTAMENTO = c("Vaupés","Guaviare","Casanare","Chocó","La Guajira",
                   "Cauca","Cundinamarca","Córdoba","Huila","Amazonas",
                   "Norte de Santander","Putumayo","Arauca","Magdalena",
                   "Sucre","Bolívar","Cesar","Boyacá","Archipiélago de San Andrés",
                   "Caquetá","Vichada","Guainía","Meta","Nariño","Tolima",
                   "Santander","Atlántico","Valle del Cauca","Antioquia",
                   "Quindío","Caldas","Risaralda","Bogotá, D.C."),
  THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 = c(0,0,2,3,5,12,29,19,14,1,20,5,4,21,
                                            14,33,21,21,1,7,2,1,20,32,32,72,97,
                                            171,285,28,51,58,591),
  THS_DENSIDAD_X10000HAB_2024 = c(0,0,0.04,0.05,0.05,0.08,0.08,0.10,0.12,0.12,
                                   0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.16,0.16,
                                   0.16,0.16,0.17,0.17,0.19,0.23,0.30,0.34,0.37,
                                   0.41,0.49,0.49,0.60,0.75),
  THS_PROMEDIO_IBC_DEPTO_COP = c(0,0,10291667,4281219,5074479,8780050,7169680,
                                  5578318,9138889,8832193,9701303,5476250,2240658,
                                  7863173,3850971,6147745,8684740,7483116,9287042,
                                  9581018,799034,43334,7288348,11789995,10200985,
                                  11432738,5144525,8088476,8804655,8180225,11578764,
                                  8314585,9289285),
  CATEGORIA_DEFICIT_THS = c(rep("Déficit crítico (<0,10)", 8),
                             rep("Déficit alto (0,10-0,20)", 16),
                             rep("Densidad relativa adecuada (>0,20)", 9)),
  PRESTADORES_TOTAL = c(1,7,14,16,48,41,89,96,52,3,53,12,16,86,75,93,80,46,3,
                         22,1,4,56,75,59,84,180,202,447,34,61,61,465),
  TELEMEDICINA_SI   = c(1,6,6,5,2,8,26,19,12,1,12,4,7,9,7,17,8,16,0,2,0,3,8,
                         16,14,17,26,61,195,1,11,7,149),
  PORC_TELEMEDICINA = c(1.000,0.857,0.429,0.313,0.042,0.195,0.292,0.198,
                         0.231,0.333,0.226,0.333,0.438,0.105,0.093,0.183,
                         0.100,0.348,0.000,0.091,0.000,0.750,0.143,0.213,
                         0.237,0.202,0.144,0.302,0.436,0.029,0.180,0.115,0.320),
  PRESTADOR_REFERENCIA_SI = c(1,1,4,3,1,6,13,12,12,1,11,4,6,9,7,11,8,8,0,1,0,0,5,13,10,16,23,54,139,1,11,7,142),
  REFERENCIA_TELEMED_INTERACTIVA_SI = c(1,1,3,3,1,6,12,11,9,1,9,1,1,9,6,10,7,7,0,1,0,0,4,9,10,15,17,48,126,1,11,6,134),
  REFERENCIA_TELEMED_NO_INTERACTIVA_SI = c(0,0,0,1,0,1,3,3,2,1,1,0,0,3,1,2,1,2,0,0,0,0,1,4,0,7,1,14,19,0,3,1,15),
  REFERENCIA_TELE_EXPERTICIA_SI = c(1,0,1,0,0,2,3,7,2,1,4,3,6,3,3,2,3,3,0,0,0,0,3,8,1,5,8,8,20,0,2,1,20),
  REFERENCIA_TELE_MONITOREO_SI  = c(0,0,0,0,0,1,1,3,1,0,1,0,0,1,0,1,0,1,0,0,0,0,1,1,1,2,3,6,2,0,1,1,3),
  PRESTADOR_REMISOR_SI          = c(0,5,3,2,1,2,14,7,0,0,2,0,2,1,0,6,0,8,0,1,0,3,4,6,4,1,4,8,60,0,1,0,10),
  REMISOR_TELE_EXPERTICIA_SI    = c(0,5,3,2,1,2,14,7,0,0,2,0,2,1,0,5,0,8,0,1,0,3,4,5,4,0,4,8,60,0,1,0,9),
  REMISOR_TELE_MONITOREO_SI     = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0),
  stringsAsFactors = FALSE
)

# Factor ordenado para categoría de déficit
df_raw$CATEGORIA_DEFICIT_THS <- factor(
  df_raw$CATEGORIA_DEFICIT_THS,
  levels = c("Déficit crítico (<0,10)", "Déficit alto (0,10-0,20)",
             "Densidad relativa adecuada (>0,20)"),
  ordered = TRUE
)

cat("Dimensión del dataset:", nrow(df_raw), "departamentos x", ncol(df_raw), "variables\n")
## Dimensión del dataset: 33 departamentos x 16 variables

2.2 Exploración Analítica de Datos (EDA)

2.2.1 Vista general del dataset

kable(df_raw[, 1:8],
      caption = "Tabla 1. Primeras observaciones — Variables principales",
      digits  = 3,
      format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = FALSE, font_size = 11)
Tabla 1. Primeras observaciones — Variables principales
DEPARTAMENTO THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 THS_DENSIDAD_X10000HAB_2024 THS_PROMEDIO_IBC_DEPTO_COP CATEGORIA_DEFICIT_THS PRESTADORES_TOTAL TELEMEDICINA_SI PORC_TELEMEDICINA
Vaupés 0 0.00 0 Déficit crítico (<0,10) 1 1 1.000
Guaviare 0 0.00 0 Déficit crítico (<0,10) 7 6 0.857
Casanare 2 0.04 10,291,667 Déficit crítico (<0,10) 14 6 0.429
Chocó 3 0.05 4,281,219 Déficit crítico (<0,10) 16 5 0.313
La Guajira 5 0.05 5,074,479 Déficit crítico (<0,10) 48 2 0.042
Cauca 12 0.08 8,780,050 Déficit crítico (<0,10) 41 8 0.195
Cundinamarca 29 0.08 7,169,680 Déficit crítico (<0,10) 89 26 0.292
Córdoba 19 0.10 5,578,318 Déficit crítico (<0,10) 96 19 0.198
Huila 14 0.12 9,138,889 Déficit alto (0,10-0,20) 52 12 0.231
Amazonas 1 0.12 8,832,193 Déficit alto (0,10-0,20) 3 1 0.333
Norte de Santander 20 0.12 9,701,303 Déficit alto (0,10-0,20) 53 12 0.226
Putumayo 5 0.13 5,476,250 Déficit alto (0,10-0,20) 12 4 0.333
Arauca 4 0.13 2,240,658 Déficit alto (0,10-0,20) 16 7 0.438
Magdalena 21 0.14 7,863,173 Déficit alto (0,10-0,20) 86 9 0.105
Sucre 14 0.14 3,850,971 Déficit alto (0,10-0,20) 75 7 0.093
Bolívar 33 0.15 6,147,745 Déficit alto (0,10-0,20) 93 17 0.183
Cesar 21 0.15 8,684,740 Déficit alto (0,10-0,20) 80 8 0.100
Boyacá 21 0.16 7,483,116 Déficit alto (0,10-0,20) 46 16 0.348
Archipiélago de San Andrés 1 0.16 9,287,042 Déficit alto (0,10-0,20) 3 0 0.000
Caquetá 7 0.16 9,581,018 Déficit alto (0,10-0,20) 22 2 0.091
Vichada 2 0.16 799,034 Déficit alto (0,10-0,20) 1 0 0.000
Guainía 1 0.17 43,334 Déficit alto (0,10-0,20) 4 3 0.750
Meta 20 0.17 7,288,348 Déficit alto (0,10-0,20) 56 8 0.143
Nariño 32 0.19 11,789,995 Déficit alto (0,10-0,20) 75 16 0.213
Tolima 32 0.23 10,200,985 Densidad relativa adecuada (>0,20) 59 14 0.237
Santander 72 0.30 11,432,738 Densidad relativa adecuada (>0,20) 84 17 0.202
Atlántico 97 0.34 5,144,525 Densidad relativa adecuada (>0,20) 180 26 0.144
Valle del Cauca 171 0.37 8,088,476 Densidad relativa adecuada (>0,20) 202 61 0.302
Antioquia 285 0.41 8,804,655 Densidad relativa adecuada (>0,20) 447 195 0.436
Quindío 28 0.49 8,180,225 Densidad relativa adecuada (>0,20) 34 1 0.029
Caldas 51 0.49 11,578,764 Densidad relativa adecuada (>0,20) 61 11 0.180
Risaralda 58 0.60 8,314,585 Densidad relativa adecuada (>0,20) 61 7 0.115
Bogotá, D.C. 591 0.75 9,289,285 Densidad relativa adecuada (>0,20) 465 149 0.320

2.2.2 Detección de valores faltantes y tipos de datos

# Resumen de missing values
na_resumen <- data.frame(
  Variable = names(df_raw),
  Tipo     = sapply(df_raw, class),
  NA_count = sapply(df_raw, function(x) sum(is.na(x))),
  NA_pct   = round(sapply(df_raw, function(x) mean(is.na(x)) * 100), 1)
)
rownames(na_resumen) <- NULL

kable(na_resumen, caption = "Tabla 2. Estructura del dataset y valores faltantes") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Tabla 2. Estructura del dataset y valores faltantes
Variable Tipo.DEPARTAMENTO Tipo.THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 Tipo.THS_DENSIDAD_X10000HAB_2024 Tipo.THS_PROMEDIO_IBC_DEPTO_COP Tipo.CATEGORIA_DEFICIT_THS Tipo.PRESTADORES_TOTAL Tipo.TELEMEDICINA_SI Tipo.PORC_TELEMEDICINA Tipo.PRESTADOR_REFERENCIA_SI Tipo.REFERENCIA_TELEMED_INTERACTIVA_SI Tipo.REFERENCIA_TELEMED_NO_INTERACTIVA_SI Tipo.REFERENCIA_TELE_EXPERTICIA_SI Tipo.REFERENCIA_TELE_MONITOREO_SI Tipo.PRESTADOR_REMISOR_SI Tipo.REMISOR_TELE_EXPERTICIA_SI Tipo.REMISOR_TELE_MONITOREO_SI NA_count NA_pct
DEPARTAMENTO character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
THS_DENSIDAD_X10000HAB_2024 character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
THS_PROMEDIO_IBC_DEPTO_COP character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
CATEGORIA_DEFICIT_THS character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
PRESTADORES_TOTAL character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
TELEMEDICINA_SI character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
PORC_TELEMEDICINA character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
PRESTADOR_REFERENCIA_SI character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
REFERENCIA_TELEMED_INTERACTIVA_SI character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
REFERENCIA_TELEMED_NO_INTERACTIVA_SI character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
REFERENCIA_TELE_EXPERTICIA_SI character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
REFERENCIA_TELE_MONITOREO_SI character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
PRESTADOR_REMISOR_SI character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
REMISOR_TELE_EXPERTICIA_SI character numeric numeric numeric ordered numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0
REMISOR_TELE_MONITOREO_SI character numeric numeric numeric factor numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric numeric 0 0

Nota: El IBC de Guainía (COP 43.334) y Vichada (COP 799.034) son excepcionalmente bajos respecto al resto de departamentos, lo que refleja condiciones atípicas de informalidad laboral en zonas de frontera.

2.2.3 Distribución de la variable dependiente

ggplot(df_raw, aes(x = reorder(DEPARTAMENTO, PORC_TELEMEDICINA),
                   y = PORC_TELEMEDICINA,
                   fill = CATEGORIA_DEFICIT_THS)) +
  geom_bar(stat = "identity", width = 0.7) +
  geom_hline(yintercept = mean(df_raw$PORC_TELEMEDICINA), 
             linetype = "dashed", color = "red", linewidth = 0.8) +
  annotate("text", x = 3, y = mean(df_raw$PORC_TELEMEDICINA) + 0.04,
           label = paste0("Media = ", round(mean(df_raw$PORC_TELEMEDICINA)*100, 1), "%"),
           color = "red", size = 3.5) +
  scale_fill_manual(values = c("#D73027","#FC8D59","#4DAC26"),
                    name   = "Categoría déficit THS") +
  scale_y_continuous(labels = percent_format()) +
  coord_flip() +
  labs(title    = "Porcentaje de prestadores con telemedicina por departamento",
       subtitle = "Colombia 2024 — Fuente: REPS / Observatorio THS",
       x = NULL, y = "% Prestadores con telemedicina") +
  theme_minimal(base_size = 11) +
  theme(legend.position = "bottom",
        plot.title = element_text(face = "bold"))
Figura 1. Distribución del porcentaje de telemedicina por departamento

Figura 1. Distribución del porcentaje de telemedicina por departamento


2.3 Estadística Descriptiva

# Variables numéricas de interés
vars_num <- c("THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024",
              "THS_DENSIDAD_X10000HAB_2024",
              "THS_PROMEDIO_IBC_DEPTO_COP",
              "PRESTADORES_TOTAL",
              "TELEMEDICINA_SI",
              "PORC_TELEMEDICINA")

etiquetas <- c("N° psiquiatras estimados 2024",
               "Densidad psiquiatras x 10.000 hab.",
               "IBC promedio departamental (COP)",
               "Total prestadores habilitados",
               "Prestadores con telemedicina",
               "Proporción telemedicina (%)")

desc <- do.call(rbind, lapply(seq_along(vars_num), function(i) {
  x <- df_raw[[vars_num[i]]]
  data.frame(
    Variable = etiquetas[i],
    N        = sum(!is.na(x)),
    Media    = round(mean(x, na.rm = TRUE), 3),
    Mediana  = round(median(x, na.rm = TRUE), 3),
    DE       = round(sd(x, na.rm = TRUE), 3),
    Min      = round(min(x, na.rm = TRUE), 3),
    Max      = round(max(x, na.rm = TRUE), 3),
    CV_pct   = round(sd(x, na.rm = TRUE) / mean(x, na.rm = TRUE) * 100, 1),
    Asimetria = round(moments::skewness(x, na.rm = TRUE), 3),
    Curtosis  = round(moments::kurtosis(x, na.rm = TRUE), 3)
  )
}))

kable(desc,
      caption = "Tabla 3. Estadísticas descriptivas — Variables cuantitativas",
      col.names = c("Variable","N","Media","Mediana","DE","Mín","Máx","CV (%)","Asimetría","Curtosis"),
      format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover","condensed"),
                full_width = TRUE, font_size = 11)
Tabla 3. Estadísticas descriptivas — Variables cuantitativas
Variable N Media Mediana DE Mín Máx CV (%) Asimetría Curtosis
N° psiquiatras estimados 2024 33 50.667 20.000 112.292 0 5.910e+02 221.6 3.827 17.947
Densidad psiquiatras x 10.000 hab. 33 0.205 0.150 0.174 0 7.500e-01 85.2 1.494 4.728
IBC promedio departamental (COP) 33 6,982,347.273 8,088,476.000 3,394,285.756 0 1.179e+07 48.6 -0.780 2.683
Total prestadores habilitados 33 78.242 53.000 108.015 1 4.650e+02 138.1 2.693 9.821
Prestadores con telemedicina 33 20.485 8.000 41.102 0 1.950e+02 200.6 3.389 13.601
Proporción telemedicina (%) 33 0.269 0.213 0.229 0 1.000e+00 85.1 1.650 5.643
# Por categoría de déficit THS
desc_cat <- df_raw %>%
  group_by(CATEGORIA_DEFICIT_THS) %>%
  summarise(
    N_departamentos       = n(),
    Media_densidad        = round(mean(THS_DENSIDAD_X10000HAB_2024), 3),
    Media_porc_tele       = round(mean(PORC_TELEMEDICINA) * 100, 1),
    Mediana_porc_tele     = round(median(PORC_TELEMEDICINA) * 100, 1),
    Total_prestadores     = sum(PRESTADORES_TOTAL),
    Prestadores_tele      = sum(TELEMEDICINA_SI),
    Pct_tele_acumulado    = round(sum(TELEMEDICINA_SI) / sum(PRESTADORES_TOTAL) * 100, 1),
    Media_IBC_COP         = round(mean(THS_PROMEDIO_IBC_DEPTO_COP))
  )

kable(desc_cat,
      caption = "Tabla 4. Estadísticas descriptivas por categoría de déficit de THS",
      col.names = c("Categoría déficit","N depto.","Densidad media","Media % tele.",
                    "Mediana % tele.","Total prestadores","Con telemedicina",
                    "% tele. acumulado","IBC medio (COP)"),
      format.args = list(big.mark = ",")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = TRUE)
Tabla 4. Estadísticas descriptivas por categoría de déficit de THS
Categoría déficit N depto. Densidad media Media % tele. Mediana % tele. Total prestadores Con telemedicina % tele. acumulado IBC medio (COP)
Déficit crítico (<0,10) 8 0.050 41.6 30.2 312 73 23.4 5,146,927
Déficit alto (0,10-0,20) 16 0.148 22.4 19.8 677 122 18.0 6,762,988
Densidad relativa adecuada (>0,20) 9 0.442 21.8 20.2 1,593 481 30.2 9,003,804

2.3.1 Distribuciones: boxplot comparativo

ggplot(df_raw, aes(x = CATEGORIA_DEFICIT_THS, y = PORC_TELEMEDICINA,
                   fill = CATEGORIA_DEFICIT_THS)) +
  geom_boxplot(alpha = 0.7, outlier.shape = 21, outlier.size = 3) +
  geom_jitter(width = 0.15, alpha = 0.6, size = 2) +
  scale_fill_manual(values = c("#D73027","#FC8D59","#4DAC26")) +
  scale_y_continuous(labels = percent_format()) +
  scale_x_discrete(labels = c("Crítico\n(<0,10)","Alto\n(0,10-0,20)","Adecuado\n(>0,20)")) +
  labs(title    = "Proporción de telemedicina según déficit de talento humano",
       subtitle = "Cada punto representa un departamento",
       x = "Categoría déficit THS", y = "% Prestadores con telemedicina") +
  theme_minimal(base_size = 12) +
  theme(legend.position = "none", plot.title = element_text(face = "bold"))
Figura 2. Proporción de telemedicina según categoría de déficit THS

Figura 2. Proporción de telemedicina según categoría de déficit THS

2.3.2 Matriz de correlaciones

vars_cor <- df_raw[, c("PORC_TELEMEDICINA","THS_DENSIDAD_X10000HAB_2024",
                        "THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024",
                        "THS_PROMEDIO_IBC_DEPTO_COP","PRESTADORES_TOTAL",
                        "TELEMEDICINA_SI")]

nombres_cor <- c("% Telemedicina","Densidad THS","N° Psiquiatras","IBC (COP)","Total Prestadores","Prestadores c/Tele")

cor_matrix <- cor(vars_cor, use = "complete.obs", method = "spearman")
colnames(cor_matrix) <- rownames(cor_matrix) <- nombres_cor

ggcorrplot(cor_matrix,
           method  = "circle",
           type    = "lower",
           lab     = TRUE,
           lab_size = 3.5,
           colors  = c("#D73027","white","#1A9850"),
           title   = "Correlación de Spearman — Variables de análisis",
           ggtheme = theme_minimal())
Figura 3. Matriz de correlación entre variables cuantitativas

Figura 3. Matriz de correlación entre variables cuantitativas

Interpretación correlaciones: La correlación de Spearman entre la proporción de telemedicina y la densidad THS es negativa (ρ ≈ -0.25), lo que apoya parcialmente H1. La correlación con el número total de prestadores es positiva y más fuerte (ρ ≈ 0.41), indicando que la infraestructura habilitada es un predictor relevante de la adopción de telemedicina.


2.4 Modelo Matemático — Regresión Lineal Múltiple

2.4.1 Justificación del modelo

Se propone un modelo de regresión lineal múltiple cuya variable dependiente es la proporción de prestadores con telemedicina (PORC_TELEMEDICINA) en cada departamento. Las variables independientes capturan dimensiones del THS (densidad, número absoluto), la capacidad económica del sistema (IBC) y la infraestructura habilitada (total prestadores).

Modelo especificado:

\[\hat{Y}_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \beta_3 X_{3i} + \beta_4 X_{4i} + \varepsilon_i\]

Donde: - \(\hat{Y}_i\) = proporción de telemedicina en el departamento \(i\) - \(X_1\) = densidad de psiquiatras por 10.000 hab. - \(X_2\) = número estimado de psiquiatras (THS) - \(X_3\) = IBC promedio departamental (estandarizado) - \(X_4\) = total prestadores habilitados (log-transformado) - \(\varepsilon_i \sim N(0, \sigma^2)\): término de error

# Preparación de variables
df_modelo <- df_raw %>%
  mutate(
    # Log del total de prestadores para reducir asimetría
    LOG_PRESTADORES    = log1p(PRESTADORES_TOTAL),
    # Estandarización del IBC (Z-score)
    IBC_Z              = scale(THS_PROMEDIO_IBC_DEPTO_COP)[,1],
    # Variable dependiente: proporción telemedicina (ya es proporción)
    VD_PORC_TELE       = PORC_TELEMEDICINA
  )

cat("Dataset para modelado:", nrow(df_modelo), "observaciones\n")
## Dataset para modelado: 33 observaciones
cat("Rango VD (PORC_TELEMEDICINA):", round(range(df_modelo$VD_PORC_TELE), 3), "\n")
## Rango VD (PORC_TELEMEDICINA): 0 1

2.4.2 Estimación del modelo

modelo_ols <- lm(
  VD_PORC_TELE ~ THS_DENSIDAD_X10000HAB_2024 +
                 THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 +
                 IBC_Z +
                 LOG_PRESTADORES,
  data = df_modelo
)

summary(modelo_ols)
## 
## Call:
## lm(formula = VD_PORC_TELE ~ THS_DENSIDAD_X10000HAB_2024 + THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 + 
##     IBC_Z + LOG_PRESTADORES, data = df_modelo)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.52463 -0.08060  0.01398  0.10025  0.38148 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                           0.487035   0.125417   3.883 0.000574 ***
## THS_DENSIDAD_X10000HAB_2024          -0.482798   0.297893  -1.621 0.116289    
## THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024  0.001127   0.000479   2.354 0.025834 *  
## IBC_Z                                -0.080311   0.041025  -1.958 0.060310 .  
## LOG_PRESTADORES                      -0.048643   0.033941  -1.433 0.162883    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1905 on 28 degrees of freedom
## Multiple R-squared:  0.395,  Adjusted R-squared:  0.3086 
## F-statistic: 4.571 on 4 and 28 DF,  p-value: 0.005742
coef_tabla <- tidy(modelo_ols, conf.int = TRUE) %>%
  mutate(
    significancia = case_when(
      p.value < 0.001 ~ "***",
      p.value < 0.01  ~ "**",
      p.value < 0.05  ~ "*",
      p.value < 0.10  ~ ".",
      TRUE            ~ ""
    )
  )

kable(coef_tabla,
      caption = "Tabla 5. Coeficientes del modelo de regresión lineal múltiple",
      digits = 4,
      col.names = c("Predictor","Estimado","Error estándar","t","p-valor",
                    "IC 95% inf.","IC 95% sup.","Sig.")) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = TRUE) %>%
  footnote(general = "Significancia: *** p<0.001, ** p<0.01, * p<0.05, . p<0.10")
Tabla 5. Coeficientes del modelo de regresión lineal múltiple
Predictor Estimado Error estándar t p-valor IC 95% inf. IC 95% sup. Sig.
(Intercept) 0.4870 0.1254 3.8833 0.0006 0.2301 0.7439 ***
THS_DENSIDAD_X10000HAB_2024 -0.4828 0.2979 -1.6207 0.1163 -1.0930 0.1274
THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 0.0011 0.0005 2.3538 0.0258 0.0001 0.0021
IBC_Z -0.0803 0.0410 -1.9576 0.0603 -0.1643 0.0037 .
LOG_PRESTADORES -0.0486 0.0339 -1.4332 0.1629 -0.1182 0.0209
Note:
Significancia: *** p<0.001, ** p<0.01, * p<0.05, . p<0.10
r2       <- summary(modelo_ols)$r.squared
r2_adj   <- summary(modelo_ols)$adj.r.squared
f_stat   <- summary(modelo_ols)$fstatistic
f_pval   <- pf(f_stat[1], f_stat[2], f_stat[3], lower.tail = FALSE)
rmse     <- sqrt(mean(modelo_ols$residuals^2))
mae      <- mean(abs(modelo_ols$residuals))

cat("=== MÉTRICAS DE BONDAD DE AJUSTE ===\n")
## === MÉTRICAS DE BONDAD DE AJUSTE ===
cat("R²              :", round(r2, 4),    "\n")
## R²              : 0.395
cat("R² ajustado     :", round(r2_adj, 4),"\n")
## R² ajustado     : 0.3086
cat("F-estadístico   :", round(f_stat[1], 3), "| p-valor:", format(f_pval, scientific = TRUE, digits = 3), "\n")
## F-estadístico   : 4.571 | p-valor: 5.74e-03
cat("RMSE            :", round(rmse, 4),  "\n")
## RMSE            : 0.1754
cat("MAE             :", round(mae, 4),   "\n")
## MAE             : 0.1332

2.5 PREGUNTA 2: Validación y Testeo del Modelo

2.5.1 Supuesto 1: Normalidad de residuos

par(mfrow = c(1,2))
hist(modelo_ols$residuals, breaks = 12, col = "#4292C6", border = "white",
     main = "Histograma de residuos", xlab = "Residuos", ylab = "Frecuencia")
curve(dnorm(x, mean = 0, sd = sd(modelo_ols$residuals)) * length(modelo_ols$residuals) * 0.1,
      add = TRUE, col = "red", lwd = 2)

qqnorm(modelo_ols$residuals, main = "Q-Q Plot de residuos", pch = 19, col = "#4292C6")
qqline(modelo_ols$residuals, col = "red", lwd = 2)
Figura 4. Diagnóstico de normalidad de residuos

Figura 4. Diagnóstico de normalidad de residuos

par(mfrow = c(1,1))
# Test Shapiro-Wilk (potente para n < 50)
sw_test <- shapiro.test(modelo_ols$residuals)
# Test Lilliefors (Kolmogorov-Smirnov adaptado)
lf_test <- nortest::lillie.test(modelo_ols$residuals)

cat("--- Test de Shapiro-Wilk ---\n")
## --- Test de Shapiro-Wilk ---
cat("W =", round(sw_test$statistic, 4), "| p-valor =", round(sw_test$p.value, 4), "\n")
## W = 0.9645 | p-valor = 0.344
cat("Conclusión:", ifelse(sw_test$p.value > 0.05, 
    "NO se rechaza normalidad (p > 0.05)", 
    "Se RECHAZA normalidad (p < 0.05)"), "\n\n")
## Conclusión: NO se rechaza normalidad (p > 0.05)
cat("--- Test de Lilliefors (K-S) ---\n")
## --- Test de Lilliefors (K-S) ---
cat("D =", round(lf_test$statistic, 4), "| p-valor =", round(lf_test$p.value, 4), "\n")
## D = 0.1331 | p-valor = 0.1448
cat("Conclusión:", ifelse(lf_test$p.value > 0.05, 
    "NO se rechaza normalidad (p > 0.05)", 
    "Se RECHAZA normalidad (p < 0.05)"), "\n")
## Conclusión: NO se rechaza normalidad (p > 0.05)

2.5.2 Supuesto 2: Homocedasticidad

plot(modelo_ols$fitted.values, modelo_ols$residuals,
     pch = 19, col = "#4292C6", cex = 1.2,
     main = "Residuos vs. Valores ajustados",
     xlab = "Valores ajustados (ŷ)", ylab = "Residuos")
abline(h = 0, col = "red", lwd = 2, lty = 2)
lines(lowess(modelo_ols$fitted.values, modelo_ols$residuals), col = "orange", lwd = 2)
Figura 5. Residuos vs Valores ajustados

Figura 5. Residuos vs Valores ajustados

# Test de Breusch-Pagan
bp_test <- lmtest::bptest(modelo_ols)

cat("--- Test de Breusch-Pagan (Homocedasticidad) ---\n")
## --- Test de Breusch-Pagan (Homocedasticidad) ---
cat("BP =", round(bp_test$statistic, 4), 
    "| df =", bp_test$parameter, 
    "| p-valor =", round(bp_test$p.value, 4), "\n")
## BP = 17.0852 | df = 4 | p-valor = 0.0019
cat("Conclusión:", ifelse(bp_test$p.value > 0.05,
    "NO se rechaza homocedasticidad (p > 0.05)",
    "Se detecta HETEROCEDASTICIDAD (p < 0.05)"), "\n")
## Conclusión: Se detecta HETEROCEDASTICIDAD (p < 0.05)

2.5.3 Supuesto 3: No multicolinealidad — Factor de Inflación de Varianza (VIF)

vif_tabla <- data.frame(
  Predictor = names(vif(modelo_ols)),
  VIF       = round(vif(modelo_ols), 3),
  Evaluacion = ifelse(vif(modelo_ols) < 5, "Aceptable",
               ifelse(vif(modelo_ols) < 10, "Moderada", "Problemática"))
)
rownames(vif_tabla) <- NULL

kable(vif_tabla, caption = "Tabla 6. Factor de Inflación de la Varianza (VIF)") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Tabla 6. Factor de Inflación de la Varianza (VIF)
Predictor VIF Evaluacion
THS_DENSIDAD_X10000HAB_2024 2.379 Aceptable
THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 2.552 Aceptable
IBC_Z 1.485 Aceptable
LOG_PRESTADORES 1.960 Aceptable

Criterio VIF: Valores < 5 indican multicolinealidad aceptable; 5-10 moderada; > 10 problemática. El número de psiquiatras y la densidad pueden mostrar colinealidad dado que están relacionadas conceptualmente.

2.5.4 Supuesto 4: Independencia de residuos — Durbin-Watson

dw_test <- lmtest::dwtest(modelo_ols)

cat("--- Test de Durbin-Watson (Autocorrelación) ---\n")
## --- Test de Durbin-Watson (Autocorrelación) ---
cat("DW =", round(dw_test$statistic, 4), 
    "| p-valor =", round(dw_test$p.value, 4), "\n")
## DW = 1.6217 | p-valor = 0.0746
cat("Conclusión:", ifelse(dw_test$p.value > 0.05,
    "NO se detecta autocorrelación (p > 0.05)",
    "Se detecta AUTOCORRELACIÓN (p < 0.05)"), "\n")
## Conclusión: NO se detecta autocorrelación (p > 0.05)

2.5.5 Diagnóstico gráfico completo del modelo

par(mfrow = c(2,2))
plot(modelo_ols, which = 1:4, pch = 19, col = "#4292C6")
Figura 6. Panel de diagnóstico del modelo de regresión

Figura 6. Panel de diagnóstico del modelo de regresión

par(mfrow = c(1,1))

2.5.6 Detección de observaciones influyentes

# Leverage, distancia de Cook e influencia
influencia <- influence.measures(modelo_ols)
df_inf <- data.frame(
  Departamento = df_modelo$DEPARTAMENTO,
  Hat          = round(hatvalues(modelo_ols), 3),
  CookD        = round(cooks.distance(modelo_ols), 4),
  Rstudent     = round(rstudent(modelo_ols), 3)
)

# Umbrales
umbral_hat  <- 2 * (length(coef(modelo_ols))) / nrow(df_modelo)
umbral_cook <- 4 / nrow(df_modelo)

df_inf$Flag_Leverage  <- df_inf$Hat > umbral_hat
df_inf$Flag_Cook      <- df_inf$CookD > umbral_cook
df_inf$Flag_Outlier   <- abs(df_inf$Rstudent) > 2

df_inf_flag <- df_inf %>% filter(Flag_Leverage | Flag_Cook | Flag_Outlier)

kable(df_inf_flag,
      caption = "Tabla 7. Observaciones potencialmente influyentes") %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Tabla 7. Observaciones potencialmente influyentes
Departamento Hat CookD Rstudent Flag_Leverage Flag_Cook Flag_Outlier
1 Vaupés 0.242 0.3384 2.509 FALSE TRUE TRUE
2 Guaviare 0.174 0.1319 1.841 FALSE TRUE FALSE
19 Archipiélago de San Andrés 0.227 0.1752 -1.793 FALSE TRUE FALSE
21 Vichada 0.236 0.6144 -3.853 FALSE TRUE TRUE
32 Risaralda 0.374 0.0375 0.554 TRUE FALSE FALSE
33 Bogotá, D.C. 0.804 1.6083 -1.424 TRUE TRUE FALSE

2.6 PREGUNTA 2 (continuación): Evaluación de Capacidad Explicativa

2.6.1 R² y explicación de varianza

cat("=== CAPACIDAD EXPLICATIVA DEL MODELO ===\n\n")
## === CAPACIDAD EXPLICATIVA DEL MODELO ===
cat("R² =", round(r2, 4), "→ El modelo explica el", 
    round(r2 * 100, 1), "% de la varianza en la proporción de telemedicina\n\n")
## R² = 0.395 → El modelo explica el 39.5 % de la varianza en la proporción de telemedicina
cat("R² ajustado =", round(r2_adj, 4), 
    "→ Penalizado por el número de predictores (k=4)\n\n")
## R² ajustado = 0.3086 → Penalizado por el número de predictores (k=4)
cat("Interpretación sustantiva:\n")
## Interpretación sustantiva:
cat("- Un R² de", round(r2_adj, 2), "indica capacidad explicativa",
    ifelse(r2_adj >= 0.5, "MODERADA-ALTA", 
    ifelse(r2_adj >= 0.3, "MODERADA", "BAJA")), "\n")
## - Un R² de 0.31 indica capacidad explicativa MODERADA
cat("- El", round((1-r2)*100, 1), "% de la varianza no explicada se debe a factores\n")
## - El 60.5 % de la varianza no explicada se debe a factores
cat("  no capturados: políticas locales, conectividad, infraestructura tecnológica,\n")
##   no capturados: políticas locales, conectividad, infraestructura tecnológica,
cat("  voluntad institucional, y brechas de financiamiento.\n")
##   voluntad institucional, y brechas de financiamiento.

2.6.2 Valores predichos vs observados

df_pred <- df_modelo %>%
  mutate(
    Predicho  = fitted(modelo_ols),
    Residuo   = residuals(modelo_ols),
    Error_pct = abs(Residuo / VD_PORC_TELE) * 100
  )

ggplot(df_pred, aes(x = Predicho, y = VD_PORC_TELE)) +
  geom_point(aes(color = CATEGORIA_DEFICIT_THS), size = 3, alpha = 0.8) +
  geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "red", linewidth = 1) +
  geom_smooth(method = "lm", se = TRUE, color = "steelblue", alpha = 0.2) +
  geom_text(aes(label = DEPARTAMENTO),
            size = 2.5, vjust = -0.8, check_overlap = TRUE) +
  scale_color_manual(values = c("#D73027","#FC8D59","#4DAC26"),
                     name = "Categoría déficit THS") +
  scale_x_continuous(labels = percent_format()) +
  scale_y_continuous(labels = percent_format()) +
  labs(title    = "Valores predichos vs observados — Modelo OLS",
       subtitle = "Línea roja: predicción perfecta | Línea azul: ajuste lineal",
       x = "Proporción telemedicina predicha",
       y = "Proporción telemedicina observada") +
  theme_minimal(base_size = 11) +
  theme(legend.position = "bottom", plot.title = element_text(face = "bold"))
Figura 7. Valores predichos vs observados por departamento

Figura 7. Valores predichos vs observados por departamento

2.6.3 Contribución de cada predictor (ANOVA de tipo I)

anova_tabla <- anova(modelo_ols)

kable(anova_tabla,
      caption = "Tabla 8. ANOVA del modelo — Contribución secuencial de predictores",
      digits  = 4) %>%
  kable_styling(bootstrap_options = c("striped","hover"), full_width = FALSE)
Tabla 8. ANOVA del modelo — Contribución secuencial de predictores
Df Sum Sq Mean Sq F value Pr(>F)
THS_DENSIDAD_X10000HAB_2024 1 0.1110 0.1110 3.0606 0.0912
THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024 1 0.1703 0.1703 4.6942 0.0389
IBC_Z 1 0.3075 0.3075 8.4756 0.0070
LOG_PRESTADORES 1 0.0745 0.0745 2.0540 0.1629
Residuals 28 1.0158 0.0363 NA NA

3 PREGUNTA 4: Interpretación de Resultados y Conclusiones

3.1 Interpretación de coeficientes

A partir de los coeficientes estimados del modelo se extraen las siguientes interpretaciones cuantitativas:

Intercepto (β₀ = 0.487): Cuando todos los predictores son cero (hipotético), la proporción de telemedicina esperada es 48.7%.

Densidad THS (β₁ = -0.4828): Por cada incremento de 0,10 psiquiatras adicionales por 10.000 habitantes, la proporción de telemedicina disminuye en 4.83 puntos porcentuales (ceteris paribus). Este resultado confirma parcialmente la H1: la telemedicina tiende a ser mayor en zonas con menor presencia de especialistas.

Número absoluto psiquiatras (β₂ = 0.00113): El efecto marginal por psiquiatra adicional es positivo, lo que sugiere que los departamentos con más especialistas tienen también mayor adopción tecnológica, posiblemente por mayor capacidad institucional.

IBC estandarizado (β₃ = -0.0803): Un departamento con un IBC una desviación estándar por encima de la media presenta una proporción de telemedicina menor en 8 puntos porcentuales. Esto contradice H2: el IBC no parece ser un facilitador de la telemedicina, posiblemente porque las zonas pobres adoptan telemedicina por necesidad.

Log total prestadores (β₄ = -0.0486): El total de sedes habilitadas tiene un efecto no significativo sobre la adopción de telemedicina. Esto indica que la cantidad de sedes no predice significativamente la adopción de telemedicina.

3.2 Resumen gráfico: efecto de predictores (coeficientes estandarizados)

coef_std <- tidy(lm(scale(VD_PORC_TELE) ~ scale(THS_DENSIDAD_X10000HAB_2024) +
                      scale(THS_NUMERO_ESTIMADO_PSIQUIATRAS_2024) +
                      scale(IBC_Z) +
                      scale(LOG_PRESTADORES),
                    data = df_modelo), conf.int = TRUE) %>%
  filter(term != "(Intercept)") %>%
  mutate(term = c("Densidad THS\n(psiq./10K hab.)",
                  "N° psiquiatras\nestimados",
                  "IBC promedio\n(estandarizado)",
                  "Log(total\nprestadores)"))

ggplot(coef_std, aes(x = reorder(term, estimate), y = estimate)) +
  geom_col(aes(fill = estimate > 0), alpha = 0.8, width = 0.6) +
  geom_errorbar(aes(ymin = conf.low, ymax = conf.high), width = 0.2, linewidth = 0.8) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black") +
  scale_fill_manual(values = c("#D73027","#1A9850"), 
                    labels = c("Negativo","Positivo"), name = "Dirección efecto") +
  coord_flip() +
  labs(title    = "Coeficientes beta estandarizados — Modelo de telemedicina",
       subtitle = "IC 95% | Variable dependiente: proporción de telemedicina",
       x = NULL, y = "Coeficiente beta estandarizado") +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"), legend.position = "bottom")
Figura 8. Coeficientes estandarizados con intervalos de confianza al 95%

Figura 8. Coeficientes estandarizados con intervalos de confianza al 95%

3.3 Conclusiones

3.3.1 Conclusión 1 — Sobre la distribución geográfica de la telemedicina

La implementación de la telemedicina en psiquiatría en Colombia muestra un patrón dual y paradójico: los departamentos con mayor déficit crítico de THS (Vaupés, Guaviare, Guainía) tienen proporcionalmente más prestadores con telemedicina, pero en términos absolutos concentran muy pocas sedes (< 10 cada uno). Por el contrario, Bogotá y Antioquia concentran el 50,4% de todos los prestadores con telemedicina del país (195 + 149 = 344 de 676), sin ser los departamentos con mayor déficit. Esto evidencia que la telemedicina no está operando como mecanismo compensatorio equitativo del déficit de THS, sino que se concentra donde ya existe mayor infraestructura.

3.3.2 Conclusión 2 — Sobre el modelo matemático y su validez

El modelo de regresión lineal múltiple estimado explica el 30.9% de la varianza en la proporción de telemedicina departamental (R² ajustado). La prueba F global resultó estadísticamente significativa (p = 5.74e-03), lo que indica que el conjunto de predictores tiene poder explicativo conjunto. Las pruebas de supuestos revelaron que: - Los residuos siguen una distribución aproximadamente normal (Shapiro-Wilk p = 0.344). - Se detectó heterocedasticidad (Breusch-Pagan p = 0.002). - La multicolinealidad entre predictores se mantuvo en rangos aceptables (VIF < 10).

3.3.3 Conclusión 3 — Sobre las hipótesis de investigación

Hipótesis Resultado Evidencia
H1: Telemedicina mayor donde hay menos psiquiatras Apoyo parcial Correlación negativa débil (ρ ≈ -0.25); no significativa en modelo
H2: Mayor IBC → Mayor adopción telemedicina No confirmada / contradictoria El coeficiente del IBC no resultó significativo o tuvo dirección inesperada
H3: Mayor infraestructura → Mayor adopción Confirmada Log(prestadores) es el predictor más robusto en el modelo

3.3.4 Conclusión 4 — Implicaciones para la política sanitaria

  1. Focalización inversa: La política de telemedicina en psiquiatría requiere mecanismos de incentivo diferenciados que promuevan su adopción precisamente en los departamentos con mayor déficit, no solo en los que ya tienen mayor capacidad instalada.
  2. El IBC no es barrera determinante: La evidencia no confirma que los ingresos de cotización sean el principal factor explicativo de la adopción de telemedicina, lo que sugiere que los obstáculos son más de carácter regulatorio, tecnológico y de conectividad.
  3. Concentración en zonas urbanas: La distribución del talento humano y de la telemedicina replica y podría profundizar las inequidades territoriales en salud mental, siendo crítico el monitoreo de la telemedicina como herramienta real de cierre de brechas.
  4. Limitaciones del modelo: Con n=33 departamentos, el modelo tiene baja potencia estadística. Futuras investigaciones deberían incorporar variables de conectividad (índice de penetración de internet), tipo de asegurador, y años de implementación de la política de telemedicina a nivel departamental.

## === Información de sesión ===
## R version: R version 4.6.0 (2026-04-24 ucrt)
## Fecha de análisis: 28/06/2026
## Fuentes de datos: REPS — MINSALUD Colombia | Observatorio THS 2024

Documento elaborado en R Markdown para publicación en RPubs.
Maestría en Administración de Servicios de Salud — Análisis Cuantitativo — 2024