lm预测r的警告

时间:2014-03-13 08:23:48

标签: r prediction lm

collection <- data.frame(col1=X1,col2=X2,col3=X3,col4=X4)
k <- 5
ind <- sample(seq(1,k), length(X1), replace=TRUE)

test_ind = which(ind==1)
train<-collection[-test_ind,]
fit<-lm(X1~poly(X2,2,raw=T)+X3+X4+X2:X3,data=train)
model1_resid<-predict(fit,collection[test_ind,2:4])

警告讯息: &#39; newdata&#39;有105行,但找到的变量有444行

BTW:长度(test_ind)是105而nrow(train)= 444

我打算运行交叉验证,但是上面的代码会生成警告,我已经在此论坛中跟随其他帖子进行子集化,然后才进入lm函数,为什么还有警告?有人可以指出这个bug吗?感谢

1 个答案:

答案 0 :(得分:0)

我认为您需要使用相同的变量名称,因此如果您想使用列2,3,4进行预测,则名称应为X1,X2,X3,因为它们用于模型(不是col2, col3和col4就像你一样。)

尝试例如colnames(collection)= c(&#34; X0&#34;,&#34; X1&#34;,&#34; X2&#34;,&#34; X3&#34;)之前预测呼叫它应该工作(虽然我不明白你是否真的想用col2,col3和col4进行预测)。