Reputation: 597
I would like to have a nice plot about residuals I got from an lm()
model. Currently I use plot(model$residuals)
, but I want to have something nicer. If I try to plot it with ggplot, I get the error message:
ggplot2 doesn't know how to deal with data of class numeric
Upvotes: 16
Views: 41873
Reputation: 481
Now you can use the ggResidpanel
package developed for creating ggplot type residual plots on CRAN. You can find the intro tutorial here!
Upvotes: 4
Reputation: 3111
Use ggfortify::autoplot()
for the gg
version of the regression diagnostic plots. See this vignette.
fit <- lm(mpg ~ hp, data = mtcars)
library(ggfortify)
autoplot(fit)
Upvotes: 17
Reputation: 10473
Fortify is no longer recommended and might be deprecated according to Hadley.
You can use the broom package to do something similar (better):
library(broom)
y <-rnorm(10)
x <-1:10
mod <- lm(y ~ x)
df <- augment(mod)
ggplot(df, aes(x = .fitted, y = .resid)) + geom_point()
Upvotes: 31
Reputation: 9923
ggplot
wants a data.frame. fortify
will make one for you.
y <-rnorm(10)
x <-1:10
mod <- lm(y ~ x)
modf <- fortify(mod)
ggplot(modf, aes(x = .fitted, y = .resid)) + geom_point()
Upvotes: 4