2016-06-22 24 views
0

假設我有一個數據幀是:R:存儲的線性模型的結果直接將數據幀

df: 
x|y 
1|2 
2|3 
3|5 
4|8 

如果我做

lm(y~x) 

我會得到線性模型

y=-0.5+2*x. 

如何將此線性模型的估計直接存儲到數據框中,因此它看起來像

df: 
x|y|estimate.from.LM 
1|2|1.5 
2|3|3.5 
3|5|5.5 
4|8|7.5 

當然,要做到這一點的方法之一是簡單地用手做出一個新的列,併爲其分配線性模型的直接價值,像

df$estimate.from.LM=-.5+2*df$x 

這是很容易在這個來做例。但是,當線性模型變得更加複雜,係數更加複雜且變量更多時,是否有一種將其估計值存儲在df中的優雅方法?

+1

'df $ estimate.from.LM = predict(model,df [1])'? – Psidom

+0

'df $ estimate < - predict(lm(y〜x,data = df))' –

+0

這些可能是擬合的值。 「估計」涉及模型的參數,而不是觀測。 – Frank

回答

1

predict()函數做你想要的(fitted()函數也是如此);該predict()功能有更多的選擇(見?predict.lm;如@Frank在評論中說,這是從見鏈接的?lm部分)

dd <- data.frame(x=1:4,y=c(2,3,5,8)) 
dd$est <- predict(lm(y~x,data=dd)) 

較好的一般書上R中建模應該告訴你這(例如Dalgaard的R的介紹性統計,Julian Faraway的書籍) - 我確定也有在線數量衆多的教程,但我無法指出具體的教程。爲找出一個提示你可以用模型做如下:

m <- lm(y~x,data=dd) ## fitted model 
class(m) ## "lm" 
methods(class="lm") 
## [1] add1   alias   anova   case.names  coerce   
## [6] confint  cooks.distance deviance  dfbeta   dfbetas  
## [11] drop1   dummy.coef  effects  extractAIC  family   
## [16] formula  hatvalues  influence  initialize  kappa   
## [21] labels   logLik   model.frame model.matrix nobs   
## [26] plot   predict  print   proj   qr    
## [31] residuals  rstandard  rstudent  show   simulate  
## [36] slotsFromS3 summary  variable.names vcov   

現在你可以試着去猜測是否有這些可能是有用的(或通過查找他們的幫助文件,如?confint.lm

相關問題