我使用函数lm在R中进行了多元线性回归,我想用它来预测几个值 . 所以我正在尝试使用函数 predict()
. 这是我的代码:
new=data.frame(t=c(10, 20, 30))
v=1/t
LinReg<-lm(p ~ log(t) + v)
Pred=predict(LinReg, new, interval="confidence")
所以我想在 t=c(10,20,30...)
时预测p的值 . 但是,这不起作用,我不明白为什么 . 我得到的错误信息是:
“model.frame.default中的错误(条款,newdata,na.action = na.action,xlev = object $ xlevels):变量长度不同(找到'vart')另外:警告消息:'newdata'有3行但找到的变量有132行“
132是我运行回归的变量向量的长度 . 我检查了我的向量1 / t并且它是明确定义的并且具有正确数量的系数 . 令人好奇的是,如果我做一个简单的线性回归(一个变量),相同的代码效果很好......
new=data.frame(t=c(10, 20, 30))
LinReg<-lm(p ~ log(t))
Pred=predict(LinReg, new, interval="confidence")
有人可以帮我吗!提前致谢 .
1 回答
问题是,当您适合模型时,您将
v
定义为t
中的一个新的,不同的变量 . 当你适合模型时,R不知道v
是t
的函数 . 因此,当您去预测值时,它会使用v
的现有值,其长度与您指定的t
的新值不同 .相反,你想要适应
如果您确实希望
v
是一个完全独立的变量,那么您需要在new
data.frame中为v
提供值,以便预测p
.