5 votos

Porcentaje de predicción correcta del modelo logit

¿Existe una forma estándar de comunicar el porcentaje de predicción correcta cuando se predice un resultado binario? Utilizando glm en r, los resultados son probabilidades predichas. Sin embargo, para hacer una comparación con otro modelo, quiero informar de un único valor porcentual de predicción correcta de mi modelo binario. ¿Simplemente elijo un punto de corte, y si es así, cómo? He aquí un ejemplo sencillo del código.

model.results <- glm(binary.outcome ~ predictor1 + predictor2, family=quasibinomial)

Gracias,

6voto

Bou Puntos 1859

@FrankHarrell tiene razón en que el porcentaje de precisión no es la función de pérdida que la regresión logística intenta optimizar. Así que podría haber situaciones en las que el mejor modelo según la probabilidad (cuasi) binomial no es también el mejor según el porcentaje de precisión.

Editado para añadir : También tiene razón en los comentarios de abajo en que establecer un punto de corte tiene serios problemas. Lo que he propuesto a continuación es una solución que se acerca a la intuición de la precisión porcentual, pero evita establecer un umbral arbitrario entre las predicciones del modelo continuo subyacente.

Por otro lado, el porcentaje de exactitud también parece una función de pérdida perfectamente razonable, y podría valer la pena saber cómo funciona la regresión logística con ella. El porcentaje de precisión puede ser más intuitivo, y no es tan susceptible a los valores atípicos y a la predicción ocasional que está fuera de lugar por una cantidad muy grande.

Encontrar este valor es bastante sencillo. En primer lugar, hay que encontrar las probabilidades que el modelo asigna a cada resultado:

probabilities <- predict(model.results, type = "response")

Si tu glm lanzara un montón de monedas sesgadas para cada respuesta, daría cara este porcentaje de veces. Entonces todo lo que tienes que hacer es encontrar la proporción de veces que la moneda saldrá mal. La forma más sencilla es probablemente:

1 - mean(abs(probabilities - binary.outcome))

Puedes probarte a ti mismo que esto da la respuesta correcta simulando tú mismo los lanzamientos de moneda sesgados con rbinom .

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