6 votos

¿Cómo puedo mejorar el poder predictivo de este modelo de regresión logística?

Estoy utilizando el SPSS para analizar un conjunto de datos cuyo objetivo es predecir si los individuos tienen cáncer basándose en cinco síntomas (a, b, c, d, e). En este conjunto de datos, la mayoría de los individuos tienen cáncer. He realizado una regresión logística binaria y he obtenido el siguiente resultado:

Block 0

Esto prueba el modelo con el que sólo incluye la constante, y en general predijo un 91,8% de aciertos. Entiendo que el hecho de que tenga predictores significativos en la tabla "Variables que no están en la ecuación" significa que la adición de una o más de estas variables al modelo debería mejorar su poder predictivo.

A continuación, miré el modelo después de incluir todos los predictores:

http://i.imgur.com/Y5WdePl.png

La predicción es sólo ligeramente diferente. Ahora predice que dos individuos no tendrán cáncer. El porcentaje global de aciertos sigue siendo del 91,8%.

  • ¿Por qué no se produjo ninguna mejora, a pesar de que los predictores eran significativos?
  • ¿Qué debo hacer con este conjunto de datos? ¿Es posible mejorar el poder predictivo del modelo sin incluir nuevos predictores?
  • ¿Cómo debo evaluar el modelo? ¿El hecho de que no mejore con respecto al modelo con sólo la constante evidencia que el modelo es inútil?

Salida completa visible aquí .

Conjunto de datos descargable aquí como un documento de Google.

11voto

Joe Zack Puntos 1248

Resumen

Parece que está buscando las asociaciones entre los síntomas (a, b, c, d y e, codificados como variables numéricas lineales) y el estado del cáncer (sí versus no, codificado en binario).

Asociaciones frente a predicciones

Creo que estás viendo asociaciones entre los síntomas y el estado del cáncer más que la capacidad de los síntomas para predecir estado del cáncer. Si quieres investigar de verdad predictivo capacidad, tendría que dividir su conjunto de datos por la mitad, ajustar los modelos a una mitad de los datos y luego utilizarlos para predecir el estado del cáncer de los pacientes en la otra mitad del conjunto de datos. Tenga en cuenta que esto describe el caso más sencillo de validación de un modelo utilizando un único conjunto de datos. En realidad, no debería hacer esto. Lo que realmente podría hacer es emplear la validación cruzada n-fold (por ejemplo, utilizando el rms en R) para hacer un uso más eficiente de sus datos.

Inicio de la actividad

Puede que ya lo hayas hecho, pero antes de jugar con el modelo de regresión logística creo que deberías dar un paso atrás y simplemente mirar tus datos. Utilizando el programa R para calcular algunos estadísticos de resumen básicos...

# Load libraries
library(Rmisc)
library(metafor)

# Load data
data <- read.csv("example_data.csv", header = TRUE, na.strings = "")
attach(data)

# Summarize data
summary(data)
       a              b               c               d               e             cancer      
 Min.   :11.0   Min.   :13.00   Min.   :13.00   Min.   :12.00   Min.   :17.00   Min.   :0.0000  
 1st Qu.:19.0   1st Qu.:27.00   1st Qu.:28.00   1st Qu.:36.00   1st Qu.:33.00   1st Qu.:1.0000  
 Median :24.0   Median :31.00   Median :32.00   Median :40.00   Median :38.00   Median :1.0000  
 Mean   :24.8   Mean   :31.39   Mean   :32.44   Mean   :39.39   Mean   :37.71   Mean   :0.9169  
 3rd Qu.:30.0   3rd Qu.:36.00   3rd Qu.:37.00   3rd Qu.:43.50   3rd Qu.:42.00   3rd Qu.:1.0000  
 Max.   :49.0   Max.   :50.00   Max.   :50.00   Max.   :50.00   Max.   :50.00   Max.   :1.0000  
 NA's   :20     NA's   :18      NA's   :21      NA's   :20      NA's   :20      NA's   :6

Y ahora a trazar algunos gráficos de dispersión exploratorios... Presta atención a cualquier relación lineal entre variables que te llame la atención. También preste atención (como Benjamín mencionó más adelante) a los gráficos de las variables de los síntomas frente al estado del cáncer.

plot(data)

Scatter plots

Y mira algunos histogramas para hacerte una idea de la distribución de tus datos... Siempre es bueno hacer esto antes de introducirlos en un modelo de regresión

 hist(data)

Histograms

Yendo un poco más allá...

Calcularía la media y el IC95% para cada variable de los síntomas y los estratificaría según el estado del cáncer y los trazaría... Sólo con mirar esto sabrás visualmente qué variables van a ser significativas en tu modelo de regresión logística. Aquí sólo trazo los datos...

forest(
x = c(24.44636,28.94667,31.63066,28.62963,32.59910,30.65852,39.79738,35.04111,37.99030,34.41185),
ci.lb = c(23.57979,25.72939,30.84611,26.15883,31.88579,28.52778,39.16493,32.27390,37.26171,32.10734),
ci.ub = c(25.31292,32.16395,32.41520,31.10043,33.31242,32.78926,40.42983,37.80832,38.71888,36.71637),
xlab = "Mean and 95% CI", slab = c("a cancer","a healthy","b cancer","b healthy","c cancer","c healthy","d cancer","d healthy","e cancer","e healthy"))

Forest plot

Si se observa el gráfico anterior, se puede ver que hay muchos más pacientes con cáncer que contribuyen al conjunto de datos que los que no tienen cáncer.

La última...

Simplemente calcularía las estimaciones de los efectos univariantes de cada variable de los síntomas para sus asociaciones con el resultado del cáncer. A continuación, multiplicaría todos los valores p resultantes por cinco, ya que está realizando muchas pruebas exploratorias. Puede hacerlo en SPSS fácilmente. Para los resultados de los modelos, me centraría más en la dirección, la magnitud y los intervalos de confianza para las estimaciones de los efectos resultantes. A continuación he trazado las estimaciones de los efectos y sus intervalos de confianza de los modelos univariantes de cada variable de síntoma por separado... Ahora debería ir a construir modelos ajustados por edad, género, tabaquismo, etc. y hacer otro gráfico como este... Estoy de acuerdo con Benjamin en que probablemente no hay mucho que se pueda aprender de estos datos dada la escasez de controles sanos.

Logistic regression results

4voto

bdeonovic Puntos 2807

Una cosa que hay que comprobar es si existe una relación lineal entre las probabilidades logarítmicas de cáncer y cada una de sus 5 variables predictoras. Este es un supuesto de la regresión logística. Si no es así, podría considerar añadir términos de orden superior al modelo, o incluso una relación no lineal entre las probabilidades logarítmicas de cáncer y algunas de las variables (ajustando un modelo aditivo generalizado).

A partir de su resultado, parece que estos 5 predictores no hacen un buen trabajo para clasificar el cáncer frente al no-cáncer.

Echaré un vistazo a los datos y añadiré más información a esta pregunta más adelante.

Tras analizar los datos, he confirmado que, efectivamente, estas variables son terribles para predecir el cáncer. Si se comparan las variables con el estado del cáncer, se verá que, aunque para algunas de ellas los pacientes sin cáncer tienen un poco menos de variabilidad, hay muy poca diferencia entre los pacientes con y sin cáncer. Por ejemplo:

enter image description here

Así que si me dices que tienes un paciente que tiene una variable C de 30... no tendría ni idea de si se trata de un paciente con cáncer o sin él.

Un poco más sobre su producción: Cuando no añades ninguna variable dice que predices correctamente el 91,8% de los pacientes. La siguiente tabla que enumera los valores de significación para la adición de más variables significa que si se añaden de una en una.

4voto

dan90266 Puntos 609

Ignora completamente las tablas de clasificación. No se basan en métodos estadísticos sólidos y son completamente arbitrarios.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X