2013-03-07 98 views
0

我想繪製線性迴歸模型的預測值。如何將預測值插入數據框中,這些預測值將我的數據列之一作爲因子使用?我的數據幀是這樣的:使用來自另一列的數據添加數據列

 score age rank 
    1 3.03 65 1   
    2 4.31 47 1  
    3 5.09 49 1  
    4 3.71 41 1   
    5 5.29 40 1   
    6 2.70 61 1 

我已經爲每個等級預測分數基於我LM(有3個),我想插入到這些數據幀,所以我可以暗算年齡預測分數。預測比分是:

Rank 1 predicted tolerance score: (8.2+0)+(-.085+0)= 8.2 - .085 age 
Rank 2 predicted tolerance score: (8.2-4.0)+(-.085+.103)=4.2 +.018 age 
Rank 3 predicted tolerance score: (8.2-2.78)+(-.085+.07)=5.42 - .015 age 
    Thank you! 

回答

1

你可以做這樣的:

coefs = c(.085, .018, .015) 
intercepts = c(8.2, 4.2, 5.42) 
d$predicted = intercepts[d$rank] + coefs[d$rank] * d$age 

(假設你的數據幀被稱爲d)。

0

另一種方式來做到這一點:

parms <- data.frame(rank=1:3,int=c(8.2,4.2,5.42),slope=c(-0.85,0.017,-0.015)) 
mydata <- merge(mydata,parms) 
mydata <- transform(mydata,predval=int+age*slope) 

如果你有一組數據(即這些係數是根據您要預測相同的數據)

lmfit <- lm(score~age*rank,data=mydata) 
mydata$pred <- predict(lmfit)