2016-11-10 109 views
0

我在想如何使用broom包来计算置信区间。R - 整齐增强置信区间

我所试图做的是简单的标准:

set.seed(1) 
x <- runif(50) 
y <- 2.5 + (3 * x) + rnorm(50, mean = 2.5, sd = 2) 
dat <- data.frame(x = x, y = y) 
mod <- lm(y ~ x, data = dat) 

使用visreg我可以积回归模型CI很简单地:

library(visreg) 
visreg(mod, 'x', overlay=TRUE) 

enter image description here

我有意思在使用broomggplot2再现这一点,到目前为止,我只能实现编辑本:

library(broom) 

dt = lm(y ~ x, data = dat) %>% augment(conf.int = TRUE) 
ggplot(data = dt, aes(x, y, colour = y)) + 
    geom_point() + geom_line(data = dt, aes(x, .fitted, colour = .fitted)) 

enter image description here

augment功能可按不计算conf.int。任何线索我如何可以添加一些smooth信心invervals?

geom_smooth(data=dt, aes(x, y, ymin=lcl, ymax=ucl), size = 1.5, 
     colour = "red", se = TRUE, stat = "smooth") 
+1

为什么你不使用'geom_smooth(方法= “LM”)'用原来的数据框添加CI的回归线? –

+0

原因是我需要添加许多不同的线条和做更复杂的东西,所以我想知道是否有一个简单的方法来绘制'扫帚'。 'geom_smooth(method =“lm”)'当你有很多变量并且你想控制哪一行被绘制时,它会变得复杂吗? – giacomo

回答

6

使用broom输出,你可以做这样的事情:

ggplot(data = dt, aes(x, y)) + 
    geom_ribbon(aes(ymin=.fitted-1.96*.se.fit, ymax=.fitted+1.96*.se.fit), alpha=0.2) + 
    geom_point(aes(colour = y)) + 
    geom_line(aes(x, .fitted, colour = .fitted)) + 
    theme_bw() 

我感动colour=ygeom_point(),因为你不能在彩色审美适用于geom_ribbon

enter image description here

0

只是这样做(与你的原始数据集DAT):

ggplot(data = dat, aes(x, y, colour = y)) + 
    geom_point(size=2) + geom_smooth(method='lm', se = TRUE) + theme_bw() 

enter image description here

+0

如果您正在运行多变量回归并且只想显示一个变量,该怎么办? – giacomo

+0

@giacomoV不知道我是否得到了你,我想你是在谈论多元回归(而不是多元回归的权利),其中你有多个预测因子,例如,另一个预测变量x1,s.t. y〜x + x1,但在这种情况下,可视化应该是一个平面而不是一条直线,您需要三维可视化来显示回归平面和飞机周围的密度区间体积,对吗? –

+0

二维我想我们只会有兴趣只显示响应和单个预测变量之间的关系,保持其他变量不变。 –