如何从线性模型中创建r的置信区间?

0 regression r confidence-interval

我想创建一个y vs x的线性模型,并使用它来找到给定x的观测值的y的置信区间.

所以我创建了一些样本:

x=rnorm(100,2)
y=rnorm(100,2)
Run Code Online (Sandbox Code Playgroud)

并创建了线性模型:

bbbb=lm(y~x)
Run Code Online (Sandbox Code Playgroud)

但是,当我使用预测来创建置信区间时,它给出了一系列置信区间而不是一个置信区间?

predict(bbbb,x=2,interval="confidence")
Run Code Online (Sandbox Code Playgroud)

收益:

...
51  2.188294 1.949615 2.426973
52  2.189329 1.932474 2.446183
53  2.176816 1.950111 2.403521
54  2.183961 1.998136 2.369786
...
Run Code Online (Sandbox Code Playgroud)

当x = 2时,如何使y返回一个置信区间?

Rei*_*son 5

你需要:

predict(bbbb, newdata = data.frame(x = 2), interval  = "confidence")
Run Code Online (Sandbox Code Playgroud)

当你看时,原因很明显?predict.lm.

newdata参数必须是数据框.您提供了长度为1的向量.其次,由于S3方法的工作方式,你认为你传递的内容newdata实际上根本没有传递给它newdata.你实际上用一个x值来指定一个新的参数2,这个参数predict()很快就被遗忘了(它被...参数搞砸了).如果newdata未提供,则predict()使用存储在拟合模型对象(bbbb)中的数据,并返回拟合值加上任何请求的额外内容,如CI,标准错误等.