R 使用带置信区间的lm表预测

R 使用带置信区间的lm表预测,r,linear-regression,R,Linear Regression,我有一个线性模型,用于生成lm类型对象列表的分组数据。我想用这个线性模型,在给定的置信区间内,在给定的x上预测y的值。我想要一个变量w的唯一预测。以下是包含示例数据的代码: x<-c(.34,.355,.37,.385,.34,.355,.37,.385,.34,.355,.37,.385,.34,.355,.37,.385) y<-c(40,35,28,25,42,36,29,25,44,37,26,23,46,37,33,27) w<-c(1,1,1,1,2,2,2,2,3

我有一个线性模型,用于生成lm类型对象列表的分组数据。我想用这个线性模型,在给定的置信区间内,在给定的x上预测y的值。我想要一个变量w的唯一预测。以下是包含示例数据的代码:

x<-c(.34,.355,.37,.385,.34,.355,.37,.385,.34,.355,.37,.385,.34,.355,.37,.385)
y<-c(40,35,28,25,42,36,29,25,44,37,26,23,46,37,33,27)
w<-c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)
data<-data.frame(x,y,w)
ggplot(data=data,aes(x=x,y=log10(y),color=factor(w)))+
   geom_point(size=4)+
   geom_smooth(method=lm,aes(group=w,fill=factor(w)),fullrange=TRUE)+
   facet_wrap(~w,nrow=2)+
   scale_x_continuous(limit=c(.33,.5))
mod <- dlply(data, .(w), function(df) lm(log(y)~x, data = df))
但是,我希望能够对列表中的每个元素应用predict。我尝试使用library
nlme
执行以下操作,但没有给出置信区间

library(nlme)

ll=lmList(log10(y)~x|w,data = data)
predict(ll,newdata,interval="confidence")
输出:

1         2         3         4 
0.8476424 0.8042928 0.5818862 0.8633285 

我使用ggplot2只是为了视觉上的帮助,但我需要置信区间边界处的实际值来计算预测的
y
变量的范围。

如果您想
对列表的每个元素应用
lappy
(列表应用)是一种方法:

do.call(rbind, lapply(mod, function(x) predict(x, newdata, interval="confidence")))

       fit       lwr      upr
1 1.951769 1.3772699 2.526268
1 1.851953 1.4852869 2.218618
1 1.339843 0.1453728 2.534312
1 1.987887 1.4446006 2.531174

因此,使用
lappy
,我们正在运行匿名函数
predict(x,newdata,interval=“confidence”)
,其中x是mod的每个元素。do.call将列表输出转换为更好的矩阵。

谢谢。我没有得到正确的函数参数。这解决了我的问题。
1         2         3         4 
0.8476424 0.8042928 0.5818862 0.8633285 
do.call(rbind, lapply(mod, function(x) predict(x, newdata, interval="confidence")))

       fit       lwr      upr
1 1.951769 1.3772699 2.526268
1 1.851953 1.4852869 2.218618
1 1.339843 0.1453728 2.534312
1 1.987887 1.4446006 2.531174