有人可以在这里解释我做错了什么。我想要 找到我的变量的平均响应的置信区间 " list1的&#34。 R有一个在线使用“忠实”的例子。数据集和它 工作良好。但是,每当我试图找到信心/预测时 间隔,我总是收到此错误消息。我一直在这5点 几个小时,尝试了一百万种不同的东西,没有任何作用。
> list1 <- c(1,2,3,4,5) #first data set
> list2 <- c(2,4,5,6,7) # second data set
> frame <- data.frame(list1,list2) # made a data.frame object
> reg <- lm(list1~list2,data=frame) # regression
> newD = data.frame(list1 = 2.3) #new data input for confidence/prediction interval estimation
> predict(reg,newdata=newD,interval="confidence")
fit lwr upr
1 0.7297297 -0.08625234 1.545712
2 2.3513514 1.88024388 2.822459
3 3.1621622 2.73210185 3.592222
4 3.9729730 3.45214407 4.493802
5 4.7837838 4.09033237 5.477235
Warning message:
'newdata' had 1 row but variables found have 5 rows #Why does this keep happening??
答案 0 :(得分:1)
问题是您正在尝试传递一个新的自变量进行预测,但该预测变量的name
与初始模型中的因变量匹配。回归中的公式语法为y ~ x
。使用predict()
函数时,可以传递新的独立(x)变量。有关详细信息,请参阅?predict
的详细信息部分。
然而,这似乎有效:
newD2 = data.frame(list2 = 2.3) #note the name is list2 and not list1
predict(reg, newdata = newD2, interval = "confidence")
---
fit lwr upr
1 0.972973 0.2194464 1.7265