El incremento constante en los costos de los servicios de salud a nivel global representa una amenaza crítica para la sostenibilidad de los sistemas de aseguramiento corporativos y públicos. Para las compañías aseguradoras, la fijación de primas requiere un conocimiento matemático preciso de los riesgos subyacentes. La falta de modelos cuantitativos que aíslen el impacto de factores prevenibles (como el estilo de vida) versus factores inevitables (como el envejecimiento) induce a ineficiencias financieras y tarifas inequitativas para los usuarios.
¿En qué medida la edad, el índice de masa corporal (IMC) y el hábito de fumar permiten explicar y predecir de manera precisa la variabilidad de los cargos financieros por seguros médicos individuales?
Para dar cumplimiento formal al análisis sobre una muestra representativa, se modela una estructura analítica con una muestra estandarizada de \(n = 1,333\) registros observacionales.
# Configuración del entorno reproducible
set.seed(2026)
n <- 1333
# Generación de variables predictoras
edad <- round(runif(n, 18, 64))
imc <- runif(n, 16, 45)
fumador <- sample(c("yes", "no"), n, replace = TRUE, prob = c(0.20, 0.80))
# Estructuración matemática de la variable dependiente (Cargos)
cargos <- 255 * edad + 380 * imc + ifelse(fumador == "yes", 23500, 0) + rnorm(n, mean = 500, sd = 1200)
# Consolidación del DataFrame
datos_seguros <- data.frame(edad, imc, fumador, cargos)Evaluamos las medidas de tendencia central y dispersión del conjunto de datos.
## edad imc fumador cargos
## Min. :18.00 Min. :16.01 Length :1333 Min. :10538
## 1st Qu.:29.00 1st Qu.:23.27 N.unique : 2 1st Qu.:19926
## Median :41.00 Median :30.56 N.blank : 0 Median :24137
## Mean :40.93 Mean :30.52 Min.nchar: 2 Mean :26826
## 3rd Qu.:52.00 3rd Qu.:37.93 Max.nchar: 3 3rd Qu.:29692
## Max. :64.00 Max. :44.99 Max. :58191
library(ggplot2)
# Gráfico: Dispersión de Edad vs Cargos segmentado por Tabaquismo
ggplot(datos_seguros, aes(x = edad, y = cargos, color = fumador)) +
geom_point(alpha = 0.6, size = 1.5) +
scale_color_manual(values = c("#2b8cbe", "#e34a33")) +
theme_minimal() +
labs(title = "Cargos Médicos vs Edad", x = "Edad (Años)", y = "Cargos (USD)")Este modelo evalúa el impacto único y aislado de la variable predictora continua Edad (\(X_1\)) sobre los Cargos Médicos (\(Y\)). Permite responder si el envejecimiento natural es el factor determinante del costo.
La ecuación matemática teórica es: \[Cargos = \beta_0 + \beta_1(Edad) + \epsilon\]
##
## Call:
## lm(formula = cargos ~ edad, data = datos_seguros)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12536 -6606 -2935 494 25957
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16606.96 867.55 19.14 <2e-16 ***
## edad 249.68 20.18 12.37 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9683 on 1331 degrees of freedom
## Multiple R-squared: 0.1031, Adjusted R-squared: 0.1025
## F-statistic: 153 on 1 and 1331 DF, p-value: < 2.2e-16
Basado en el ejemplo de referencia del seminario (rlm),
expandimos la complejidad del análisis estadístico integrando
simultáneamente múltiples predictores: la Edad (\(X_1\)), el Índice de Masa Corporal
- IMC (\(X_2\)) y la variable
cualitativa dicotómica Fumador (\(X_3\)). Esto nos permite evaluar el impacto
conjunto de los hábitos de vida y la demografía sobre el riesgo
financiero.
La ecuación matemática teórica que el sistema resolverá es: \[Cargos = \beta_0 + \beta_1(Edad) + \beta_2(IMC) + \beta_3(Fumador_{yes}) + \epsilon\]
# Ajuste del modelo completo con variables continuas y categóricas
modelo_multiple <- lm(cargos ~ edad + imc + fumador, data = datos_seguros)
# Despliegue de los resultados detallados del modelo
summary(modelo_multiple)##
## Call:
## lm(formula = cargos ~ edad + imc + fumador, data = datos_seguros)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3739.9 -811.0 -14.7 773.4 4205.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 366.158 161.881 2.262 0.0239 *
## edad 258.021 2.537 101.710 <2e-16 ***
## imc 380.872 3.938 96.719 <2e-16 ***
## fumadoryes 23451.277 86.334 271.635 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1217 on 1329 degrees of freedom
## Multiple R-squared: 0.9859, Adjusted R-squared: 0.9858
## F-statistic: 3.089e+04 on 3 and 1329 DF, p-value: < 2.2e-16
Para garantizar que los modelos estadísticos construidos posean una
verdadera capacidad de generalización sobre pacientes nuevos y descartar
problemas de sobreajuste (overfitting), aplicamos un protocolo
cuantitativo de validación cruzada (Split-Validation).
Utilizando el paquete caret, dividimos de forma aleatoria y
controlada la muestra original de la siguiente manera: * 80% de
los datos destinados al Entrenamiento (ajuste
de los parámetros analíticos \(\beta\)). * 20% de los
datos reservados para el Testeo Ciego
(evaluación predictiva pura).
set.seed(987)
# Creación de los índices de partición balanceados sobre la variable dependiente
indices_entreno <- createDataPartition(datos_seguros$cargos, p = 0.8, list = FALSE)
datos_entreno <- datos_seguros[indices_entreno, ]
datos_testeo <- datos_seguros[-indices_entreno, ]
# Re-entrenamiento de los modelos parametrizados ÚNICAMENTE con el set de entrenamiento
fit_simple <- lm(cargos ~ edad, data = datos_entreno)
fit_multiple <- lm(cargos ~ edad + imc + fumador, data = datos_entreno)
# Fase de Testeo: Generación de predicciones matemáticas sobre datos no vistos por el modelo
pred_s <- predict(fit_simple, newdata = datos_testeo)
pred_m <- predict(fit_multiple, newdata = datos_testeo)fumadoryes (\(\beta_3 \approx
23512\)): manteniendo las condiciones de edad e IMC constantes,
un asegurado fumador incrementa sus costos médicos en un promedio
estimado de $23,512 USD anuales frente a un no
fumador.A la luz del enfoque estadístico abordado durante el seminario y basándonos en los resultados empíricos de los modelos validados, se establecen las siguientes conclusiones: