线性模型诊断:在ggplot2中获得的平滑线与通过基本图获得的平滑线不同

时间:2019-01-07 10:42:29

标签: r ggplot2 model diagnostics

我正在尝试使用ggplot2为线性回归模型重现诊断图。我得到的平滑线与使用基本图或ggplot2 :: autoplot获得的平滑线不同。

library(survival)
library(ggplot2)
model <- lm(wt.loss ~ meal.cal, data=lung)
## Fitted vs. residuals using base plot:
plot(model, which=1)
## Fitted vs. residuals using ggplot
model.frame <- fortify(model)
ggplot(model.frame, aes(.fitted, .resid)) + geom_point() + geom_smooth(method="loess", se=FALSE)

平滑线不同,使用ggplot提供的黄土方法,前几个点的影响要大得多。我的问题是:如何使用ggplot2复制通过plot()获得的平滑线?

1 个答案:

答案 0 :(得分:0)

您可以使用相同名称的基函数来计算lowess,该smoothed <- as.data.frame(with(model.frame, lowess(x = .fitted, y = .resid))) ggplot(model.frame, aes(.fitted, .resid)) + theme_bw() + geom_point(shape = 1, size = 2) + geom_hline(yintercept = 0, linetype = "dotted", col = "grey") + geom_path(data = smoothed, aes(x = x, y = y), col = "red") 用于在原始诊断图中绘制红线。

{{1}}

enter image description here

和原件:

enter image description here