La acromegalia es una enfermedad crónica y poco común causada por un exceso de la hormona del crecimiento en adultos. Esta condición se caracteriza por un aumento anormal del tamaño de los huesos y tejidos blandos, lo que puede tener un impacto significativo en la calidad de vida de los pacientes. Uno de los tratamientos más utilizados para la acromegalia son los análogos de somatostatina, que actúan inhibiendo la liberación de la hormona del crecimiento y ayudando a controlar los síntomas.
El objetivo de este estudio es evaluar la eficacia del tratamiento con análogos de somatostatina en pacientes con acromegalia y analizar los factores que podrían estar relacionados con un menor control de la enfermedad. Para ello, se ha recopilado información detallada sobre la evolución de los pacientes, incluyendo datos demográficos, características clínicas, resultados de pruebas de laboratorio y detalles sobre el tratamiento recibido.
El análisis de supervivencia se ha utilizado para estudiar el tiempo que los pacientes se mantienen bajo control después de recibir el tratamiento con análogos de somatostatina. La curva de Kaplan-Meier se ha empleado para estimar la función de supervivencia y comparar la probabilidad de mantener el control de la enfermedad entre diferentes grupos de pacientes. Además, se han realizado análisis de regresión logística para identificar posibles factores predictivos de un menor control de la enfermedad.
Los resultados de este estudio proporcionarán información valiosa sobre la eficacia del tratamiento con análogos de somatostatina en pacientes con acromegalia y ayudarán a identificar aquellos pacientes que podrían estar en mayor riesgo de un mal control de la enfermedad. Esta información podría ser útil para mejorar la atención médica y desarrollar estrategias de tratamiento más personalizadas y efectivas para los pacientes con acromegalia.
La base de datos utilizada en este estudio corresponde al registros administrativo del departametno de Endocrinología del Instituto de Previsión Social, donde se han recopilado datos de pacientes con acromegalia. La base de datos contiene información detallada sobre estos pacientes, incluyendo variables demográficas como edad y sexo, así como características clínicas como el índice de masa muscular, el diagnóstico de diabetes e hipertensión, entre otros.
Además, la base de datos incluye datos sobre el tratamiento recibido por los pacientes, como la dosis y la duración del tratamiento con análogos de somatostatina y cabergolina. También se registran los resultados de pruebas de laboratorio, como los niveles de factor de crecimiento tipo insulina 1 (IGF-1) y hormona de crecimiento (GH), que son importantes para evaluar la respuesta al tratamiento.
El objetivo principal de utilizar esta base de datos es evaluar la eficacia del tratamiento con análogos de somatostatina en pacientes con acromegalia y analizar los factores que podrían estar relacionados con un menor control de la enfermedad. Mediante el análisis de supervivencia y modelos de regresión logística, se busca identificar posibles predictores de un mal control de la enfermedad y mejorar la comprensión de cómo el tratamiento afecta a la evolución de los pacientes.
En resumen, la base de datos del Instituto de Previsión Social de Endocrinología proporciona una valiosa fuente de información para este estudio, permitiendo explorar la efectividad del tratamiento y buscar posibles factores asociados al control de la acromegalia en los pacientes.
## 'data.frame': 39 obs. of 29 variables:
## $ casos : num 1 2 3 4 5 6 7 8 9 10 ...
## $ sexo : chr "M" "M" "M" "H" ...
## $ edad_actual : num 40 46 47 40 31 51 36 64 35 61 ...
## $ indice_masa_muscular : num 24.4 30.1 30.6 NA 22.8 ...
## $ anio_diagnostico : num 2019 2010 2018 2015 2014 ...
## $ edad_al_diagnostico : num 39 39 44 32 28 51 25 63 27 58 ...
## $ igf_1_actual : num 164 112 72 145 467 280 715 400 284 135 ...
## $ paciente_bajo_control : chr "si" "si" "si" "si" ...
## $ igf_1_inicial : num 458 NA 716 380 NA 746 NA 557 NA NA ...
## $ gh_inicial : num 24 40 3.93 8.96 126 7.18 42 5.59 40 15 ...
## $ gh_actual : num NA 9.80e-01 4.70e-01 1.10e-01 2.01e+05 ...
## $ diametro_mayor_inicial : num 21 16 49 57 23 8 26 63 28 11 ...
## $ macro_micro_inicial : chr "MACRO" "MACRO" "MACRO" "MACRO" ...
## $ supraselar_inicial : chr "NO" "NO" "SI" "SI" ...
## $ esfenoidal_inicial : chr "NO" "NO" "SI" "NO" ...
## $ cavernoso_incial : chr "NO" "NO" "SI" "NO" ...
## $ quiasma_inicial : chr "NO" "NO" "SI" "NO" ...
## $ tenencia_cir : chr "SI" "SI" "SI" "SI" ...
## $ recibe_octeroide : chr "SI" "SI" "SI" "SI" ...
## $ meses_de_tratamiento : num 7 84 37 91 24 1 128 NA 84 24 ...
## $ recibe_caber : chr "NO" "NO" "NO" "SI" ...
## $ diametro_mayor_final : num 0 8 32 40 17 6 21 55 11 NA ...
## $ volumen_actual : num NA 0.2 3.9 NA 0.33 0.02 NA 36 NA NA ...
## $ diabetes_inicial : chr "NO" "NO" "NO" "NO" ...
## $ tipo_diabetes_inicial : chr "NO" "NO" "NO" "NO" ...
## $ hipertension_inicial : chr "NO" "NO" "NO" "NO" ...
## $ cardiopatia_inicial : chr "NO" "NO" "NO" "NO" ...
## $ hipopituitarismo_inicial: chr "NO" "NO" "NO" "SI" ...
## $ neoplasia_inicial : chr "NO" "NO" "NO" "NO" ...
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
Variable | Minimo | Cuartil_25 | Mediana | Media | Cuartil_75 | Maximo | |
---|---|---|---|---|---|---|---|
25%…1 | casos | 1.00 | 10.50 | 20.000 | 20.00000 | 29.500 | 39.0 |
25%…2 | edad_actual | 31.00 | 40.00 | 51.000 | 51.23684 | 61.000 | 73.0 |
25%…3 | indice_masa_muscular | 21.69 | 27.85 | 31.175 | 31.98833 | 35.200 | 48.4 |
25%…4 | anio_diagnostico | 1999.00 | 2011.00 | 2015.000 | 2013.66667 | 2017.000 | 2022.0 |
25%…5 | edad_al_diagnostico | 25.00 | 36.00 | 45.000 | 46.35135 | 58.000 | 68.0 |
25%…6 | igf_1_actual | 72.00 | 135.50 | 214.000 | 290.74359 | 382.000 | 1268.0 |
25%…7 | igf_1_inicial | 105.00 | 400.00 | 534.000 | 608.92857 | 717.750 | 1600.0 |
25%…8 | gh_inicial | 2.20 | 8.72 | 24.000 | 32.89892 | 40.000 | 240.0 |
25%…9 | gh_actual | 0.11 | 2.24 | 1630.000 | 10836.97004 | 4105.000 | 201300.0 |
25%…10 | diametro_mayor_inicial | 8.00 | 14.00 | 20.000 | 23.20513 | 28.500 | 63.0 |
25%…11 | meses_de_tratamiento | 1.00 | 16.00 | 36.000 | 46.20000 | 66.000 | 132.0 |
25%…12 | diametro_mayor_final | 0.00 | 7.00 | 10.500 | 13.58824 | 16.250 | 55.0 |
25%…13 | volumen_actual | 0.02 | 0.11 | 0.500 | 3.56500 | 1.975 | 36.0 |
## [1] "Tabla de Frecuencia para sexo con respecto a paciente_bajo_control"
##
## no si
## H 9 9
## M 7 14
## [1] "Tabla de Porcentajes para sexo con respecto a paciente_bajo_control"
##
## no si
## H 56.25000 39.13043
## M 43.75000 60.86957
## [1] "Tabla de Frecuencia para macro_micro_inicial con respecto a paciente_bajo_control"
##
## no si
## MACRO 14 22
## MICRO 2 1
## [1] "Tabla de Porcentajes para macro_micro_inicial con respecto a paciente_bajo_control"
##
## no si
## MACRO 87.500000 95.652174
## MICRO 12.500000 4.347826
## [1] "Tabla de Frecuencia para supraselar_inicial con respecto a paciente_bajo_control"
##
## no si
## NO 10 18
## SI 6 5
## [1] "Tabla de Porcentajes para supraselar_inicial con respecto a paciente_bajo_control"
##
## no si
## NO 62.50000 78.26087
## SI 37.50000 21.73913
## [1] "Tabla de Frecuencia para esfenoidal_inicial con respecto a paciente_bajo_control"
##
## no si
## NO 14 16
## SI 2 7
## [1] "Tabla de Porcentajes para esfenoidal_inicial con respecto a paciente_bajo_control"
##
## no si
## NO 87.50000 69.56522
## SI 12.50000 30.43478
## [1] "Tabla de Frecuencia para cavernoso_incial con respecto a paciente_bajo_control"
##
## no si
## NO 11 17
## SI 5 6
## [1] "Tabla de Porcentajes para cavernoso_incial con respecto a paciente_bajo_control"
##
## no si
## NO 68.75000 73.91304
## SI 31.25000 26.08696
## [1] "Tabla de Frecuencia para quiasma_inicial con respecto a paciente_bajo_control"
##
## no si
## NO 13 22
## SI 3 1
## [1] "Tabla de Porcentajes para quiasma_inicial con respecto a paciente_bajo_control"
##
## no si
## NO 81.250000 95.652174
## SI 18.750000 4.347826
## [1] "Tabla de Frecuencia para tenencia_cir con respecto a paciente_bajo_control"
##
## no si
## NO 2 7
## SI 14 16
## [1] "Tabla de Porcentajes para tenencia_cir con respecto a paciente_bajo_control"
##
## no si
## NO 12.50000 30.43478
## SI 87.50000 69.56522
## [1] "Tabla de Frecuencia para recibe_octeroide con respecto a paciente_bajo_control"
##
## no si
## SI 16 23
## [1] "Tabla de Porcentajes para recibe_octeroide con respecto a paciente_bajo_control"
##
## no si
## SI 100 100
## [1] "Tabla de Frecuencia para diabetes_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 3 0
## NO 6 10
## SI 7 13
## [1] "Tabla de Porcentajes para diabetes_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 18.75000 0.00000
## NO 37.50000 43.47826
## SI 43.75000 56.52174
## [1] "Tabla de Frecuencia para tipo_diabetes_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 3 0
## NO 6 7
## PRE.DBT 0 3
## SI 7 13
## [1] "Tabla de Porcentajes para tipo_diabetes_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 18.75000 0.00000
## NO 37.50000 30.43478
## PRE.DBT 0.00000 13.04348
## SI 43.75000 56.52174
## [1] "Tabla de Frecuencia para hipertension_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 2 0
## NO 6 8
## SI 8 15
## [1] "Tabla de Porcentajes para hipertension_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 12.50000 0.00000
## NO 37.50000 34.78261
## SI 50.00000 65.21739
## [1] "Tabla de Frecuencia para cardiopatia_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 2 0
## NO 9 10
## SI 5 13
## [1] "Tabla de Porcentajes para cardiopatia_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 12.50000 0.00000
## NO 56.25000 43.47826
## SI 31.25000 56.52174
## [1] "Tabla de Frecuencia para hipopituitarismo_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 3 0
## NO 10 19
## SI 3 4
## [1] "Tabla de Porcentajes para hipopituitarismo_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 18.7500 0.0000
## NO 62.5000 82.6087
## SI 18.7500 17.3913
## [1] "Tabla de Frecuencia para neoplasia_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 3 0
## NO 10 20
## NON 1 0
## SI 2 3
## [1] "Tabla de Porcentajes para neoplasia_inicial con respecto a paciente_bajo_control"
##
## no si
## NA 18.75000 0.00000
## NO 62.50000 86.95652
## NON 6.25000 0.00000
## SI 12.50000 13.04348
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## `summarise()` has grouped output by 'paciente_bajo_control'. You can override
## using the `.groups` argument.
## Warning: Removed 5 rows containing missing values (`geom_point()`).
El análisis de supervivencia en el contexto de este estudio sobre pacientes con acromegalia tratados con análogos de somatostatina se refiere a un método estadístico que se utiliza para estudiar el tiempo que transcurre desde un evento de interés hasta que ocurre otro evento, o hasta que se alcanza un estado específico. En este caso, el evento de interés es el control de la enfermedad o el tiempo que los pacientes se mantienen bajo control después de recibir el tratamiento con análogos de somatostatina.
El análisis de supervivencia es especialmente útil cuando se estudian tiempos de duración, como en este caso, donde se desea evaluar la eficacia del tratamiento a lo largo del tiempo y entender los factores que pueden influir en el control de la enfermedad.
La técnica más común para realizar el análisis de supervivencia es la curva de Kaplan-Meier, que estima la función de supervivencia y muestra la probabilidad de que un paciente sobreviva o permanezca bajo control en función del tiempo. Esta curva se puede comparar entre grupos utilizando el test de log-rank, que permite evaluar si hay diferencias significativas en la supervivencia entre diferentes subgrupos de pacientes (por ejemplo, aquellos con o sin ciertas características o condiciones).
En este análisis, se han segmentado los datos por diferentes variables, como “recibe_caber” y “diabetes_inicial”, para comparar la supervivencia entre los pacientes con diferentes características o tratamientos. Además, se han generado tablas y gráficas para resumir y visualizar los resultados.
El análisis de supervivencia es una herramienta valiosa para estudiar el tiempo hasta un evento de interés en un estudio médico, y en este caso específico, proporciona información importante sobre la eficacia del tratamiento con análogos de somatostatina y la influencia de otras variables en el control de la enfermedad en pacientes con acromegalia.
## Loading required package: ggpubr
##
## Attaching package: 'survminer'
## The following object is masked from 'package:survival':
##
## myeloma
## Call:
## survdiff(formula = survival_obj ~ data_filtrado$paciente_bajo_control)
##
## n=35, 4 observations deleted due to missingness.
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## data_filtrado$paciente_bajo_control=no 12 0 5.68 5.68 8.01
## data_filtrado$paciente_bajo_control=si 23 23 17.32 1.86 8.01
##
## Chisq= 8 on 1 degrees of freedom, p= 0.005
## [1] NA
## Call:
## survdiff(formula = survival_obj_caber ~ data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber ==
## "SI"])
##
## N
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=no 8
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=si 6
## Observed
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=no 0
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=si 6
## Expected
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=no 1.79
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=si 4.21
## (O-E)^2/E
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=no 1.792
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=si 0.763
## (O-E)^2/V
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=no 2.88
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "SI"]=si 2.88
##
## Chisq= 2.9 on 1 degrees of freedom, p= 0.09
## Call:
## survdiff(formula = survival_obj_no_caber ~ data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber ==
## "NO"])
##
## n=21, 2 observations deleted due to missingness.
##
## N
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=no 4
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=si 17
## Observed
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=no 0
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=si 17
## Expected
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=no 0.867
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=si 16.133
## (O-E)^2/E
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=no 0.8670
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=si 0.0466
## (O-E)^2/V
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=no 1.04
## data_filtrado$paciente_bajo_control[data_filtrado$recibe_caber == "NO"]=si 1.04
##
## Chisq= 1 on 1 degrees of freedom, p= 0.3
## [1] NA
## [1] NA
# Filtrar las filas con valores válidos en la variable paciente_bajo_control y meses_de_tratamiento no perdido para pacientes con diabetes_inicial igual a "SI"
data_filtrado_diabetes_si <- data[!is.na(data$paciente_bajo_control) & !is.na(data$meses_de_tratamiento) & data$diabetes_inicial == "SI", ]
# Filtrar las filas con valores válidos en la variable paciente_bajo_control y meses_de_tratamiento no perdido para pacientes con diabetes_inicial igual a "NO"
data_filtrado_diabetes_no <- data[!is.na(data$paciente_bajo_control) & !is.na(data$meses_de_tratamiento) & data$diabetes_inicial == "NO", ]
# Creamos el objeto de supervivencia utilizando la función Surv para pacientes con diabetes_inicial igual a "SI"
survival_obj_diabetes_si <- Surv(time = data_filtrado_diabetes_si$meses_de_tratamiento,
event = data_filtrado_diabetes_si$paciente_bajo_control == "si")
# Creamos el objeto de supervivencia utilizando la función Surv para pacientes con diabetes_inicial igual a "NO"
survival_obj_diabetes_no <- Surv(time = data_filtrado_diabetes_no$meses_de_tratamiento,
event = data_filtrado_diabetes_no$paciente_bajo_control == "si")
# Realizamos el análisis de Kaplan-Meier para estimar la función de supervivencia para pacientes con diabetes_inicial igual a "SI"
km_fit_diabetes_si <- survfit(survival_obj_diabetes_si ~ 1)
# Realizamos el análisis de Kaplan-Meier para estimar la función de supervivencia para pacientes con diabetes_inicial igual a "NO"
km_fit_diabetes_no <- survfit(survival_obj_diabetes_no ~ 1)
# Graficamos las curvas de supervivencia utilizando survminer
ggsurvplot(km_fit_diabetes_si, data = data_filtrado_diabetes_si, risk.table = TRUE, xlab = "Tiempo (meses)", ylab = "Probabilidad de Supervivencia",
main = "Curva de Supervivencia - Pacientes con Diabetes Inicial (SI)",
title = "Diabetes Inicial: SI")
ggsurvplot(km_fit_diabetes_no, data = data_filtrado_diabetes_no, risk.table = TRUE, xlab = "Tiempo (meses)", ylab = "Probabilidad de Supervivencia",
main = "Curva de Supervivencia - Pacientes con Diabetes Inicial (NO)",
title = "Diabetes Inicial: NO")
# Realizamos el test de log-rank para comparar grupos
logrank_test_diabetes <- survdiff(survival_obj ~ data$diabetes_inicial)
print(logrank_test_diabetes)
## Call:
## survdiff(formula = survival_obj ~ data$diabetes_inicial)
##
## n=35, 4 observations deleted due to missingness.
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## data$diabetes_inicial=NO 15 10 7.67 0.711 1.17
## data$diabetes_inicial=SI 20 13 15.33 0.355 1.17
##
## Chisq= 1.2 on 1 degrees of freedom, p= 0.3
# Obtener el valor p del test de log-rank
p_value_logrank_diabetes <- logrank_test_diabetes$chisq["p.value"]
print(p_value_logrank_diabetes)
## [1] NA
La curva de supervivencia muestra la probabilidad de supervivencia de los pacientes con “diabetes_inicial” igual a “SI” a lo largo del tiempo (meses de tratamiento). En el eje x, se encuentra el tiempo en meses, y en el eje y, la probabilidad de supervivencia. La línea azul representa la curva de supervivencia estimada para estos pacientes.
Podemos observar que la probabilidad de supervivencia disminuye gradualmente a medida que transcurren los meses de tratamiento. Esto sugiere que algunos pacientes con “diabetes_inicial” igual a “SI” experimentan un menor control de la enfermedad a lo largo del tiempo.
Es importante mencionar que esta gráfica se basa en los datos disponibles y representa una estimación de la supervivencia para pacientes con “diabetes_inicial” igual a “SI”. Cada punto en la curva representa un evento (en este caso, el control de la enfermedad) que ocurre en un paciente durante el tiempo de seguimiento.
Es necesario realizar un análisis más detallado y considerar otras variables para comprender mejor los factores que pueden influir en la supervivencia y el control de la enfermedad en pacientes con “diabetes_inicial” igual a “SI”.