1. Problemática y Planteamiento del Problema

1.1 Contexto de Investigación

En el ámbito de la gestión de recursos sanitarios, el uso de modelos matemáticos se ha convertido en una herramienta esencial para la optimización de la planificación. La sostenibilidad financiera de las instituciones de salud (aseguradoras y hospitales) depende de la capacidad de anticipar costos. La incertidumbre en la estimación del gasto médico por paciente puede llevar a errores de planificación y asignaciones ineficientes de presupuesto.

1.2 Planteamiento del Problema

¿Es posible construir y validar un modelo matemático robusto que prediga los costos médicos individuales basándose en variables demográficas y de estilo de vida, garantizando que sus predicciones sean confiables para la toma de decisiones?

La falta de validación de estos modelos puede generar sesgos y errores que afecten la calidad del servicio. Por tanto, el objetivo es no solo ajustar un modelo, sino someterlo a un riguroso proceso de validación y testeo para evaluar su capacidad explicativa y predictiva.

2. Exploración Analítica de Datos

Utilizaremos la base de datos de costos de seguros médicos para simular un entorno de gestión de riesgos en salud.

# Carga de datos desde el repositorio (Opción K de la guía)
url <- "https://raw.githubusercontent.com/stedy/Machine-Learning-with-R-datasets/master/insurance.csv"
datos <- read.csv(url)

# Inspección inicial
str(datos)
## 'data.frame':    1338 obs. of  7 variables:
##  $ age     : int  19 18 28 33 32 31 46 37 37 60 ...
##  $ sex     : chr  "female" "male" "male" "male" ...
##  $ bmi     : num  27.9 33.8 33 22.7 28.9 ...
##  $ children: int  0 1 3 0 0 0 1 3 2 0 ...
##  $ smoker  : chr  "yes" "no" "no" "no" ...
##  $ region  : chr  "southwest" "southeast" "southeast" "northwest" ...
##  $ charges : num  16885 1726 4449 21984 3867 ...
summary(datos)
##       age            sex                 bmi           children    
##  Min.   :18.00   Length:1338        Min.   :15.96   Min.   :0.000  
##  1st Qu.:27.00   Class :character   1st Qu.:26.30   1st Qu.:0.000  
##  Median :39.00   Mode  :character   Median :30.40   Median :1.000  
##  Mean   :39.21                      Mean   :30.66   Mean   :1.095  
##  3rd Qu.:51.00                      3rd Qu.:34.69   3rd Qu.:2.000  
##  Max.   :64.00                      Max.   :53.13   Max.   :5.000  
##     smoker             region             charges     
##  Length:1338        Length:1338        Min.   : 1122  
##  Class :character   Class :character   1st Qu.: 4740  
##  Mode  :character   Mode  :character   Median : 9382  
##                                        Mean   :13270  
##                                        3rd Qu.:16640  
##                                        Max.   :63770

2.1 Análisis de Correlación

Verificamos las relaciones entre variables para asegurar que sean consistentes con la realidad sanitaria.

# Matriz de correlación para variables numéricas
datos_num <- datos %>% select_if(is.numeric)
cor_matrix <- cor(datos_num)
corrplot(cor_matrix, method = "circle", type = "upper", tl.col = "black")

Interpretación: Se observa una correlación positiva entre la edad (age) y los cargos (charges), así como con el índice de masa corporal (bmi).

3. Construcción del Modelo Matemático

Se propone un modelo de Regresión Lineal Múltiple. Este modelo busca explicar la variable dependiente (Costos Médicos) a partir de variables independientes (Edad, BMI, Hijos, Fumador, Región).

# División de datos para Validación Externa 
# Se separa el 80% para entrenamiento y 20% para prueba.
set.seed(123)
index <- createDataPartition(datos$charges, p = 0.8, list = FALSE)
train_set <- datos[index, ]
test_set  <- datos[-index, ]
# Ajuste del modelo con datos de entrenamiento
modelo_final <- lm(charges ~ age + bmi + children + smoker + region, data = train_set)
summary(modelo_final)
## 
## Call:
## lm(formula = charges ~ age + bmi + children + smoker + region, 
##     data = train_set)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -11805.6  -2739.1   -903.9   1443.9  29556.8 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -11271.51    1085.21 -10.386  < 2e-16 ***
## age                247.22      13.23  18.692  < 2e-16 ***
## bmi                327.09      31.67  10.328  < 2e-16 ***
## children           437.22     154.20   2.835  0.00466 ** 
## smokeryes        24232.46     453.80  53.399  < 2e-16 ***
## regionnorthwest   -515.51     532.28  -0.968  0.33302    
## regionsoutheast   -980.37     523.68  -1.872  0.06147 .  
## regionsouthwest  -1041.98     536.01  -1.944  0.05217 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6008 on 1064 degrees of freedom
## Multiple R-squared:  0.7594, Adjusted R-squared:  0.7578 
## F-statistic: 479.7 on 7 and 1064 DF,  p-value: < 2.2e-16

4. Validación y Testeo del Modelo

De acuerdo con García Díaz (2025), la utilidad de un modelo radica en su capacidad para representar la realidad con precisión. A continuación, aplicamos las técnicas de validación sugeridas.

4.1 Capacidad Explicativa (Bondad de Ajuste)

Evaluamos qué tan bien el modelo representa los datos observados utilizando el Coeficiente de Determinación (\(R^2\)).

  • R-cuadrado ajustado: 0.7578

Análisis: El valor de \(R^2\) indica la proporción de variabilidad explicada por el modelo. Un valor cercano a 0.75 sugiere que el modelo tiene una alta capacidad explicativa sobre los costos médicos, permitiendo comprender los factores de riesgo.

4.2 Evaluación de la Precisión Predictiva (Validación Externa)

Más allá del ajuste, la precisión predictiva es fundamental para hacer pronósticos confiables. Utilizamos el set de datos de prueba (datos no vistos por el modelo) para calcular el Error Cuadrático Medio (ECM o RMSE).

# Predicciones sobre el conjunto de prueba
predicciones <- predict(modelo_final, newdata = test_set)

# Cálculo del RMSE (Raíz del Error Cuadrático Medio)
rmse_val <- rmse(test_set$charges, predicciones)
cat("El RMSE del modelo en datos de prueba es:", round(rmse_val, 2))
## El RMSE del modelo en datos de prueba es: 6290.48

Interpretación: El RMSE evalúa la diferencia promedio entre las predicciones y los valores observados. Este valor nos da un margen de error monetario que debe ser considerado en la reserva presupuestal.

4.3 Diagnóstico del Modelo: Análisis de Residuos

El análisis de residuos es esencial para detectar patrones sistemáticos o sesgos.

par(mfrow = c(2, 2))
plot(modelo_final)

  1. Normalidad (Q-Q Plot): Si los residuos no siguen la línea diagonal, se viola el supuesto de normalidad.
  2. Homocedasticidad (Residuals vs Fitted): Buscamos una varianza constante. Si hay forma de embudo, indica heterocedasticidad.

Diagnóstico: Si se observan patrones no aleatorios en los residuos, el modelo podría tener problemas de especificación o falta de linealidad en las relaciones, lo cual es común en costos médicos que crecen exponencialmente.

5. Interpretación de Resultados y Conclusiones

5.1 Interpretación de Coeficientes

A la luz de la gestión sanitaria: * Fumadores: Ser fumador incrementa significativamente el costo médico, manteniendo las demás variables constantes. Esto valida que las relaciones son consistentes con la realidad clínica. * Edad: Existe un incremento progresivo del costo por cada año de vida, lo cual justifica políticas de prevención en poblaciones mayores.

5.2 Conclusiones Finales

  1. Validez del Modelo: Se ha realizado una validación externa separando los datos, lo que garantiza que el modelo no esté sobreajustado a los datos de entrenamiento y sea generalizable a nuevos pacientes.

  2. Capacidad Predictiva: El modelo presenta un \(R^2\) robusto, lo que indica una buena capacidad explicativa. Sin embargo, el análisis de residuos sugiere que podrían explorarse modelos no lineales (como modelos lineales generalizados o transformaciones logarítmicas) para corregir la heterocedasticidad detectada.

  3. Impacto en la Gestión: Contar con modelos validados permite reducir la incertidumbre en la toma de decisiones y mejorar la asignación de recursos. Este modelo permite a la administración segregar pacientes de alto costo (fumadores, alto BMI) para programas de intervención temprana.


Referencias: García Díaz, C. M. (2025). Validación y testeo de un modelo. Fundación Universitaria de Ciencias de la Salud.