Contexto del problema: El tabaquismo y el consumo de alcohol pueden ser factores de riesgo asociados a la incidencia del cáncer de esófago, por lo que es fundamental la promoción y prevención de la salud para mejorar los hábitos de vida en cualquier etapa.
Audiencia objetivo: Directivos de instituciones de salud (gerentes, coordinadores clínicos, tomadores de decisiones).
Objetivo analítico: Identificar patrones entre consumo de alcohol o tabaquismo frente a la edad y el número de casos para orientar decisiones preventivas.
Desde la perspectiva de la Gestión de Recursos Sanitarios, la base de datos “Esophageal Cancer dataset” constituye una herramienta valiosa para el análisis de factores asociados al cáncer de esófago en poblaciones específicas. La combinación de variables relacionadas con la edad, el consumo de alcohol, el consumo de tabaco y la presencia o ausencia de la enfermedad permite identificar patrones de riesgo, segmentar la población según niveles de exposición a factores nocivos y analizar la probabilidad de ocurrencia del evento de interés. Asimismo, facilita la estimación de asociaciones entre hábitos de vida y la incidencia del cáncer, así como la comparación entre distintos grupos etarios o niveles de consumo, lo cual es clave para comprender la distribución del riesgo en la población. Desde una perspectiva gerencial, esta información resulta fundamental para orientar estrategias de prevención, diseñar campañas de promoción de la salud enfocadas en la reducción de factores de riesgo modificables, optimizar la asignación de recursos en programas de detección temprana y fortalecer la toma de decisiones basada en evidencia, contribuyendo a mejorar los resultados en salud y la eficiencia del sistema sanitario.
A continuación se presenta la estructura global de la base “Esophageal Cancer dataset” la cual contiene 88 filas que abarcan 5 variables relacionadas con el consumo de tabaco y alcohol. Incluye detalles como edad, número de casos y número de controles:
## 'data.frame': 88 obs. of 5 variables:
## $ agegp : Ord.factor w/ 6 levels "25-34"<"35-44"<..: 1 1 1 1 1 1 1 1 1 1 ...
## $ alcgp : Ord.factor w/ 4 levels "0-39g/day"<"40-79"<..: 1 1 1 1 2 2 2 2 3 3 ...
## $ tobgp : Ord.factor w/ 4 levels "0-9g/day"<"10-19"<..: 1 2 3 4 1 2 3 4 1 2 ...
## $ ncases : num 0 0 0 0 0 0 0 0 0 0 ...
## $ ncontrols: num 40 10 6 5 27 7 4 7 2 1 ...
El análisis preliminar de las variables representa un grupo de edad, y está dividida en segmentos según el nivel de consumo de tabaco, en la que se observa una presencia importante de consumo moderado y alto (20–29 y 30+) en casi todos los grupos, el consumo bajo (0–9 g/día) también está presente, pero no domina claramente; por lo que existe una distribución relativamente homogénea del consumo, aunque con ligera concentración en niveles medios y altos. Las variaciones según el grupo de edad, se identifica que en edades intermedias (45–64), se observa una mayor proporción de consumo alto (30+), en grupos más jóvenes (25–34), el consumo parece más distribuido y en mayores (75+), puede haber menor proporción en cuanto a consumo.
El análisis de variables representa el grupo de edad y de consumo de alcohol, en el cual, en todos los grupos hay presencia de todos los niveles de consumo pero en edades medias (45–64) se observa una mayor proporción de consumo alto y muy alto, mientras que en edades jóvenes (25–34), el consumo está más distribuido, pero ya hay presencia de niveles elevados; y en mayores (75+), puede observarse cierta reducción en consumo extremo.
El número de casos de cáncer de esófago aumenta significativamente con la edad, alcanzando su punto máximo en el grupo de 55 a 64 años, con relación a la variabilidad, en grupos jóvenes se evidencia muy poca variabilidad (casi todos con 0 casos), en edades medias (45–64) hay mayor dispersión, mientras que en el grupo de 65–74 hay una alta variabilidad
## agegp alcgp tobgp ncases ncontrols
## 25-34:15 0-39g/day:23 0-9g/day:24 Min. : 0.000 Min. : 0.000
## 35-44:15 40-79 :23 10-19 :24 1st Qu.: 0.000 1st Qu.: 1.000
## 45-54:16 80-119 :21 20-29 :20 Median : 1.000 Median : 4.000
## 55-64:16 120+ :21 30+ :20 Mean : 2.273 Mean : 8.807
## 65-74:15 3rd Qu.: 4.000 3rd Qu.:10.000
## 75+ :11 Max. :17.000 Max. :60.000
tabla_descriptiva <- data.frame(
Variable = c("ncases", "ncontrols"),
Media = c(mean(esoph$ncases), mean(esoph$ncontrols)),
Mediana = c(median(esoph$ncases), median(esoph$ncontrols)),
DE = c(sd(esoph$ncases), sd(esoph$ncontrols)),
Min = c(min(esoph$ncases), min(esoph$ncontrols)),
Max = c(max(esoph$ncases), max(esoph$ncontrols))
)
tabla_descriptiva##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
tabla_edad <- esoph %>%
group_by(agegp) %>%
summarise(
Media_ncases = mean(ncases),
Mediana_ncases = median(ncases),
DE_ncases = sd(ncases),
Min_ncases = min(ncases),
Max_ncases = max(ncases),
Media_ncontrols = mean(ncontrols),
Mediana_ncontrols = median(ncontrols),
DE_ncontrols = sd(ncontrols),
Min_ncontrols = min(ncontrols),
Max_ncontrols = max(ncontrols)
)
tabla_edadAnálisis descriptivo del comportamiento del cáncer de esófago según casos, controles y grupo etario
A partir del análisis descriptivo de la base de datos, se evaluó la
distribución de los casos de cáncer de esófago (ncases) y
los controles (ncontrols), así como su comportamiento
segmentado por grupos de edad.
En términos generales, se observa que el número promedio de casos
(ncases) es de 2.27, con una mediana de 1, lo que indica
una distribución asimétrica positiva, donde la mayoría de observaciones
presentan pocos casos, pero existen valores extremos que elevan la media
(máximo de 17). Esta variabilidad se confirma con una desviación
estándar de 2.75, sugiriendo heterogeneidad en la ocurrencia de la
enfermedad.
Por su parte, los controles (ncontrols) presentan una
media de 8.81 y una mediana de 4, evidenciando igualmente una
distribución sesgada a la derecha, con una mayor dispersión (desviación
estándar de 12.13) y valores máximos de hasta 60. Esto sugiere que el
grupo control es considerablemente más amplio y variable, lo cual es
consistente con estudios de tipo caso-control.
Al analizar la información por grupos de edad, se identifican patrones relevantes. Los grupos etarios entre 45-54 y 55-64 años presentan las mayores medias de casos (2.87 y 4.75 respectivamente), lo que indica una mayor carga de enfermedad en estas edades. En particular, el grupo de 55-64 años muestra tanto una alta media como una mediana elevada (4), lo que sugiere una concentración importante de casos en este segmento poblacional.
Asimismo, el grupo de 65-74 años presenta una media de 3.67, pero con la mayor variabilidad (DE = 4.10) y el valor máximo más alto (17), indicando la presencia de casos extremos y una distribución más dispersa del riesgo en edades avanzadas.
En contraste, los grupos más jóvenes (25-34 y 35-44 años) muestran valores promedio considerablemente bajos (0.07 y 0.60), con medianas de cero, lo que evidencia una baja ocurrencia de la enfermedad en estas edades.
Finalmente, en el grupo de 75 años o más, se observa una disminución en la media (1.18), lo cual podría estar asociado a menor representación muestral o a efectos de supervivencia.
En conclusión, los resultados evidencian una clara relación entre la edad y la ocurrencia del cáncer de esófago, concentrándose principalmente en edades medias y avanzadas (45-74 años). Este hallazgo es relevante para la toma de decisiones en salud pública, ya que permite orientar estrategias de prevención, detección temprana y asignación de recursos hacia los grupos de mayor riesgo, optimizando así la eficiencia del sistema de salud.
La probabilidad permite modelar la ocurrencia de eventos aleatorios (situaciones que pueden ocurrir con diferentes resultados posibles). En el presente caso, por ejemplo, se puede modelar el consumo de tabaco
## [1] 0-9g/day 10-19 20-29 30+
## Levels: 0-9g/day < 10-19 < 20-29 < 30+
# Selección aleatoria de 20 individuos
set.seed(123)
muestra_tabaco <- sample(esoph$tobgp,
size = 20,
replace = TRUE)
muestra_tabaco## [1] 0-9g/day 10-19 0-9g/day 20-29 0-9g/day 30+ 30+ 0-9g/day
## [9] 20-29 10-19 20-29 20-29 0-9g/day 20-29 20-29 20-29
## [17] 30+ 0-9g/day 20-29 10-19
## Levels: 0-9g/day < 10-19 < 20-29 < 30+
## muestra_tabaco
## 0-9g/day 10-19 20-29 30+
## 6 3 8 3
## muestra_tabaco
## 0-9g/day 10-19 20-29 30+
## 0.30 0.15 0.40 0.15
La simulación evidenció que, dentro de la muestra aleatoria de 20 individuos, el grupo con mayor presencia corresponde a los consumidores de 20–29 gramos de tabaco por día, con una frecuencia de 8 individuos, lo que representa una probabilidad empírica del 40 %. Esto indica que, en el experimento realizado, esta categoría fue la más frecuente entre los niveles de consumo observados.
En segundo lugar, se encontró que 6 individuos (30 %) pertenecen a la categoría de bajo consumo de tabaco (0–9 g/día), mostrando que una parte importante de la muestra se concentra en niveles relativamente menores de exposición al tabaco.
Por otra parte, los grupos de 10–19 g/día y 30 g/día o más registraron la menor participación en la simulación, con 3 individuos cada uno, equivalentes al 15 % de la muestra. Esto sugiere que, para este experimento específico, los consumos moderados y los niveles más altos de tabaquismo tuvieron una menor representación.
Las distribuciones probabilísticas permiten modelar distintos escenarios relacionados con la incidencia del Cáncer de esófago y estimar comportamientos esperados bajo condiciones de consumo de alcohol o de tabaco; estas herramientas son útiles para anticipar demanda asistencial, identificar poblaciones de mayor riesgo y apoyar la planificación operativa.
## uniforme
## 1 2 3 4 5
## 203 204 200 191 202
## binomial
## 0 1
## 825 175
## binomial
## 0 1
## 0.825 0.175
## poisson
## 0 1 2 3 4 5 6 7 8 10
## 46 152 216 220 173 113 53 17 9 1
## [1] 0.1680314
##
## Adjuntando el paquete: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
g1 <- ggplot(data.frame(poisson),
aes(x = poisson)) +
geom_histogram(bins = 10) +
labs(title = "Distribución de Poisson")
ggplotly(g1)La simulación confirma el comportamiento esperado de una distribución de Poisson con una media de tres eventos por intervalo. Los resultados muestran que los valores más probables se concentran entre 2 y 4 eventos, mientras que la probabilidad de observar cantidades mucho mayores disminuye considerablemente. La probabilidad de obtener exactamente cuatro eventos es del 16,8 %, lo cual representa un escenario relativamente frecuente dentro de esta distribución. En términos prácticos, este modelo permite estimar y comprender la ocurrencia de sucesos aleatorios en diferentes contextos, constituyéndose como una herramienta útil para la toma de decisiones basadas en la evaluación de riesgos y probabilidades
El análisis exploratorio mostró que los individuos con mayor número de edad tienden a presentar mayor número de casos de cáncer de esófago. Asimismo, se observaron diferencias entre los niveles de edad relacionado con el consumo de tabaco y alcohol, siendo el consumo del alcohol el que tiene más prevalencia en cada grupo de edad.
Estas asociaciones sugieren que la incidencia del cáncer de esófago no depende de un único factor, sino que responden a una combinación de variables relacionadas con hábitos de vida, edad, consumo y condiciones fisiológicas.
Desde la perspectiva de la gestión de recursos sanitarios, estos hallazgos permiten identificar segmentos poblacionales susceptibles a los cuales se debe intervenir con estrategias de prevención, diagnóstico temprano y asignación de recursos en poblaciones de mediana y avanzada edad, ya que, La intervención temprana a la población puede contribuir a reducir la incidencia de esta enfermedad y mejorar la calidad de vida.
En la gestión de recursos sanitarios, el cáncer de esófago puede generar mayor demanda de consultas médicas, medicamentos de alto costo y atención especializada. Identificar tempranamente los factores de riesgo asociados a la aparición de la enfermedad permite intervenir de forma oportuna a través de la promoción y prevención de la salud modificando hábitos, excesos de consumo y concientización de la población.
El objetivo del modelo analítico es evaluar la capacidad de estas variables para explicar o predecir la ocurrencia de casos de cáncer, facilitando la identificación de grupos de mayor riesgo y apoyando la planificación de estrategias preventivas
library(dplyr)
library(tidyr)
library(tibble)
library(skimr)
library(dplyr)
## Rows: 88
## Columns: 5
## $ agegp <ord> 25-34, 25-34, 25-34, 25-34, 25-34, 25-34, 25-34, 25-34, 25-3…
## $ alcgp <ord> 0-39g/day, 0-39g/day, 0-39g/day, 0-39g/day, 40-79, 40-79, 40…
## $ tobgp <ord> 0-9g/day, 10-19, 20-29, 30+, 0-9g/day, 10-19, 20-29, 30+, 0-…
## $ ncases <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, …
## $ ncontrols <dbl> 40, 10, 6, 5, 27, 7, 4, 7, 2, 1, 2, 1, 0, 1, 2, 60, 13, 7, 8…
| Name | esoph |
| Number of rows | 88 |
| Number of columns | 5 |
| _______________________ | |
| Column type frequency: | |
| factor | 3 |
| numeric | 2 |
| ________________________ | |
| Group variables | None |
Variable type: factor
| skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
|---|---|---|---|---|---|
| agegp | 0 | 1 | TRUE | 6 | 45-: 16, 55-: 16, 25-: 15, 35-: 15 |
| alcgp | 0 | 1 | TRUE | 4 | 0-3: 23, 40-: 23, 80-: 21, 120: 21 |
| tobgp | 0 | 1 | TRUE | 4 | 0-9: 24, 10-: 24, 20-: 20, 30+: 20 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| ncases | 0 | 1 | 2.27 | 2.75 | 0 | 0 | 1 | 4 | 17 | ▇▂▁▁▁ |
| ncontrols | 0 | 1 | 8.81 | 12.14 | 0 | 1 | 4 | 10 | 60 | ▇▁▁▁▁ |
La fase de exploración y selección de variables muestra que la base de datos está compuesta por 88 filas y 5 variables. Las variables incluyen características demográficas como edad, hábitos relacionados con el consumo de alcohol y tabaco, número de casos y número de controles. Los estadísticos descriptivos evidencian variabilidad suficiente entre los individuos, aspecto favorable para la construcción de modelos predictivos.
library(rsample)
set.seed(123)
split <- initial_split(
esoph_modelo,
prop = 0.75
)
train_data <- training(split)
test_data <- testing(split)Con el fin de evaluar la capacidad predictiva del modelo analítico, la base de datos se dividió en dos subconjuntos:
Se estableció una proporción de:
75 % para entrenamiento 25 % para prueba
Dado que la base contiene 88 observaciones, se espera aproximadamente:
Conjunto Observaciones: Entrenamiento: 66, Prueba: 22
La partición de los datos se realizó correctamente y ambos subconjuntos contienen un número suficiente de observaciones para desarrollar y evaluar el modelo analítico. En este estudio, aproximadamente tres cuartas partes de las observaciones se utilizaron para el aprendizaje del modelo y una cuarta parte para la validación de su desempeño, siguiendo una práctica común en análisis predictivo aplicado.
##
## Call:
## lm(formula = ncases ~ agegp + alcgp + tobgp, data = train_data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.8688 -1.2172 -0.1981 0.9036 10.4973
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.0269 0.2650 7.649 3.64e-10 ***
## agegp.L 1.6664 0.6788 2.455 0.01734 *
## agegp.Q -3.6766 0.6770 -5.431 1.37e-06 ***
## agegp.C -1.8023 0.6580 -2.739 0.00833 **
## agegp^4 0.3444 0.6450 0.534 0.59553
## agegp^5 0.4511 0.6145 0.734 0.46606
## alcgp.L 0.4153 0.5436 0.764 0.44821
## alcgp.Q -1.4136 0.5285 -2.675 0.00988 **
## alcgp.C 1.3286 0.5177 2.566 0.01309 *
## tobgp.L -1.8352 0.5486 -3.346 0.00150 **
## tobgp.Q 0.4847 0.5285 0.917 0.36315
## tobgp.C 0.4676 0.5195 0.900 0.37212
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.104 on 54 degrees of freedom
## Multiple R-squared: 0.5626, Adjusted R-squared: 0.4735
## F-statistic: 6.314 on 11 and 54 DF, p-value: 1.398e-06
diag_modelo <- train_data
diag_modelo$fitted <- fitted(modelo_casos)
diag_modelo$resid <- residuals(modelo_casos)Los residuos representan la diferencia entre los casos observados y los casos estimados por el modelo, la mediana cercana a cero (-0.20) indica que, en promedio, el modelo no presenta un sesgo importante de sobreestimación o subestimación, sin embargo, el valor máximo de 10.50 sugiere que existen algunas combinaciones de edad, alcohol y tabaco para las cuales el modelo no logra explicar completamente el número de casos observado; esto indica que pueden existir otros factores de riesgo no incluidos en la base de datos, como antecedentes familiares, estado nutricional, condiciones socioeconómicas o exposición ocupacional
En cuanto a la variable edad, muestra una asociación significativa con el número de casos de cáncer de esófago, esto sugiere que la frecuencia de casos cambia entre los distintos grupos etarios incluidos en el estudio, y el resultado es coherente con la literatura científica, ya que el riesgo de cáncer suele aumentar con la edad debido a una mayor acumulación de exposiciones a factores de riesgo a lo largo de la vida.
library(ggplot2)
library(plotly)
g1 <- ggplot(
diag_modelo,
aes(
x = fitted,
y = resid
)
) +
geom_point() +
geom_hline(
yintercept = 0,
linetype = 2
) +
labs(
title = "Residuos vs Valores Ajustados",
x = "Valores ajustados",
y = "Residuos"
)
ggplotly(g1)En el gráfico hay evidencia de una ligera heterocedasticidad, sin embargo, dado el tamaño reducido de la base de datos (88 observaciones) y el carácter exploratorio del ejercicio, este comportamiento no parece suficientemente severo como para invalidar completamente el modelo.
No se observa una curva pronunciada ni un patrón sistemático claramente definido, la nube de puntos mantiene una distribución relativamente dispersa alrededor de la línea horizontal, lo que sugiere que la relación lineal asumida por el modelo constituye una aproximación razonable para los datos analizados.
Observado: 2, 4, 1 Predicho: 1.8, 3.6, 1.4
La diferencia entre ambos valores constituye el error de predicción.
## [1] 1.700252
library(ggplot2)
library(plotly)
comparacion <- data.frame(
Observado = test_data$ncases,
Predicho = pred_test
)
g2 <- ggplot(
comparacion,
aes(
x = Observado,
y = Predicho
)
) +
geom_point() +
geom_abline(
slope = 1,
intercept = 0,
linetype = 2
) +
labs(
title = "Casos observados vs predichos"
)
ggplotly(g2)El gráfico muestra una tendencia positiva entre los valores observados y los valores predichos, indicando que el modelo logra captar parcialmente el comportamiento general de los datos. A medida que aumentan los casos observados, también existe una tendencia al incremento en los casos estimados por el modelo, lo que evidencia que el modelo identifica la dirección general del fenómeno analizado.
No obstante, se observa una dispersión considerable de los puntos alrededor de la línea de referencia, especialmente en los valores bajos de casos observados (por ejemplo, cuando los valores observados son 0 o 1). En estos casos, las predicciones presentan una alta variabilidad e incluso algunos valores predichos negativos, lo cual indica que el modelo puede estar sobreestimando o subestimando la cantidad real de casos en ciertos escenarios.
En los niveles intermedios y altos de casos observados (entre 3 y 6 casos), las predicciones muestran una mayor cercanía a la tendencia esperada; sin embargo, todavía se presentan diferencias entre los valores reales y estimados. Esto sugiere que el modelo posee una capacidad predictiva moderada, siendo más efectivo para identificar la tendencia general que para estimar con exactitud cada observación individual.
Con el uso de la distribución de Poisson se confirma el comportamiento esperado con un promedio de tres eventos por intervalo. Los resultados muestran que los valores más comunes se encuentran entre 2 y 4 eventos, mientras que cantidades superiores a 6 ocurrencias son poco frecuentes. La forma asimétrica del histograma y la concentración de observaciones alrededor de la media evidencian que el modelo de Poisson es adecuado para representar fenómenos donde se analiza el conteo de eventos aleatorios en un periodo determinado.
Desde la visión de ingenieria, se sugiere construir nuevas variables derivadas
Desde la visión de gestión sanitaria se pueden incluir mejores variables para obetener nuevos resultados, estas variables podrían ser el sexo, el nivel socioeconómico, la ocupación, estado nutricional e historial clínico, con el fin de obtener resultados mejor relacionados y evaluar otros posibles condicionantes de la aparición de cáncer de esófago
Dado que los grupos etarios entre 45 y 74 años concentran la mayor carga de enfermedad, se recomienda priorizar estos segmentos poblacionales mediante programas de tamizaje, seguimiento clínico y educación en factores de riesgo. Esta focalización permitiría optimizar el uso de recursos sanitarios, reducir diagnósticos tardíos y mejorar los desenlaces en salud, incrementando la efectividad de las intervenciones preventivas.
La alta variabilidad observada en los casos, especialmente en edades avanzadas, evidencia la necesidad de implementar sistemas de información más robustos que permitan el análisis en tiempo real de los datos. Se recomienda integrar herramientas de analítica que faciliten la segmentación por variables clave (edad, hábitos de riesgo como alcohol y tabaco), permitiendo anticipar tendencias, identificar patrones emergentes y mejorar la planificación estratégica en salud pública.
En conjunto, estas acciones permitirían una gestión más eficiente de los recursos, una intervención más oportuna sobre los grupos de mayor riesgo y un fortalecimiento de la toma de decisiones basada en datos, contribuyendo a mejorar los resultados en salud de la población.