es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comprobación de la normalidad de los residuos.

Soy un traductor/a de documentos de IT que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Debo probar la normalidad de un conjunto de residuos en un modelo

glm(Failure ~ Lead ,data=Exercise2, family="binomial")
summary(glm(Failure ~ Lead ,data=Exercise2, family="binomial"))

hist(summary(glm(Failure ~ Lead ,data=Exercise2, family="binomial"))$resi)

He agregado is.numeric para confirmar que mis datos son numéricos

r
is.numeric(Exercise2$Lead)
is.numeric(Exercise2$Failure)

La salida que estoy obteniendo es la siguiente

Error in hist.default(summary(glm(Failure ~ Lead, data = Exercise2, family = “binomial”))$resi) :
‘x’ debe ser numérico
r
is.numeric(Exercise2$Lead)
[1] TRUE
is.numeric(Exercise2$Failure)
[1] TRUE

¿Alguien puede explicar por qué estoy obteniendo un error que dice que los datos deben ser numéricos cuando los datos son numéricos?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El error no está relacionado con la verificación is.numeric() en tus datos, sino con la función hist(). La función hist() requiere una entrada en forma de vector numérico, pero le estás pasando la salida de summary() que no es numérica. Deberías acceder directamente a los residuos desde la salida de glm() usando el atributo $residuals. El código corregido sería:

    # Ajustar el modelo glm
    mod <- glm(Failure ~ Lead, data = Exercise2, family = "binomial")
    # Comprobar la normalidad de los residuos
    hist(mod$residuals)
    shapiro.test(mod$residuals)
    

    Al utilizar mod$residuals en lugar de summary(mod)$resi, estás pasando el vector numérico de residuos a la función hist(), lo que funcionará bien. Además, he añadido una prueba de normalidad utilizando la función shapiro.test() para confirmar la suposición de normalidad.

Comments are closed.