2014-10-05 64 views
2

有人可以請解釋我在這裏做錯了什麼。我想 找到我的變量 「list1」的平均響應的置信區間。 R有一個在線使用'忠實'數據集的例子,它可以正常工作。但是,每當我嘗試找到置信度/預測間隔時間,我都會收到此錯誤消息。我一直在這裏工作了5個小時,並嘗試了一百萬種不同的東西,沒有任何效果。迴歸誤差的置信區間,R,

> 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.185 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?? 

回答

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