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返回一个置信区间?
你需要:
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,标准错误等.