首页 文章

预测R中的lm函数(多元线性回归)

提问于
浏览
0

我使用函数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 回答

  • 1

    问题是,当您适合模型时,您将 v 定义为 t 中的一个新的,不同的变量 . 当你适合模型时,R不知道 vt 的函数 . 因此,当您去预测值时,它会使用 v 的现有值,其长度与您指定的 t 的新值不同 .

    相反,你想要适应

    new <- data.frame(t=c(10, 20, 30))
    LinReg <- lm(p ~ log(t) + I(1/t))
    Pred <- predict(LinReg, new, interval="confidence")
    

    如果您确实希望 v 是一个完全独立的变量,那么您需要在 new data.frame中为 v 提供值,以便预测 p .

相关问题