我想获取loess函数中每个观测值的置信区间的上限和下限,以复制ggplot
在geom_smooth()
中的作用
library(ggplot2)
ggplot(mtcars, aes(x = mpg, y = hp)) +
geom_point() +
geom_smooth(method = 'loess')
我知道我可以从线性模型中获得上限和下限,但这不适用于黄土:
lm_mod <- lm(hp ~ mpg, mtcars)
predict(lm_mod, mtcars, interval="confidence", level=0.95)
loess_mod <- loess(hp ~ mpg, mtcars)
predict(loess_mod, mtcars, interval="confidence", level=0.95)
最佳答案
想通了!置信区间可以根据标准误差计算得出,标准误差可以使用 se = TRUE
参数添加到预测对象中。 1.96 标准差相当于 95% 置信区间(呈正态分布,因此假设误差呈正态)。
loess_mod <- loess(hp ~ mpg, mtcars)
pred <- predict(loess_mod, mtcars, se=TRUE)
mtcars1$lwl <- pred$fit-1.96*pred$se.fit
mtcars1$upl <- pred$fit+1.96*pred$se.fit
library(ggplot2)
ggplot(mtcars1, aes(x = mpg, y = hp)) +
geom_point() +
geom_smooth(method = 'loess') +
geom_line(aes(y = lwl), color = "red") +
geom_line(aes(y = upl), color = "red")
希望这对其他人有帮助。
关于r - 黄土复制 geom_smooth 的置信区间/带,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736600/