web-dev-qa-db-fra.com

Comment puis-je tracer les résidus de lm () avec ggplot?

J'aimerais avoir une belle intrigue sur les résidus que j'ai obtenus d'un modèle lm(). Actuellement, j'utilise plot(model$residuals), mais je veux quelque chose de plus agréable. Si j'essaye de le tracer avec ggplot, j'obtiens le message d'erreur suivant:

ggplot2 ne sait pas comment traiter les données de la classe numeric

7
Lanza

Fortify n'est plus recommandé et pourrait être déconseillé selon Hadley.

Vous pouvez utiliser le paquet balai pour faire quelque chose de similaire (meilleur):

library(broom)
y <-rnorm(10)
x <-1:10
mod <- lm(y ~ x)
df <- augment(mod)
ggplot(df, aes(x = .fitted, y = .resid)) + geom_point()
21
Gopala

Utilisez ggfortify::autoplot() pour la version gg des tracés de diagnostic de régression. Voir cette vignette .


Exemple

fit <- lm(mpg ~ hp, data = mtcars)

library(ggfortify)
autoplot(fit)

 enter image description here

7
ikashnitsky

ggplot veut un data.frame. fortify en fera un pour vous.

y <-rnorm(10)
x <-1:10
mod <- lm(y ~ x)
modf <- fortify(mod)
ggplot(modf, aes(x = .fitted, y = .resid)) + geom_point()
2
Richard Telford