【问题标题】:R: multiple linear regression model and prediction modelR:多元线性回归模型和预测模型
【发布时间】:2014-05-01 23:39:16
【问题描述】:

从线性model1 = lm(temp~alt+sdist) 开始,我需要开发一个预测模型,其中将获得新数据并做出关于temp 的预测。

我尝试过这样做:

model2 = predict.lm(model1, newdata=newdataset)

但是,我不确定这是正确的方法。我想在这里知道的是,如果这是对temp 进行预测的正确方法。对于newdataset,我也有点困惑。应该填写哪些值等?

【问题讨论】:

  • 您可以使用predict 而不是predict.lm 它会做同样的事情。对于newdata,您需要一个与原始模型具有相同预测变量的data.frame - 在您的情况下为altsdist
  • @JohnPaul 好的,我明白了。唯一的区别是我的newdataset 来自read.table 的文本文件。那么这是什么意思呢?我应该如何使用data.frame?如果可以,请将您的评论更新为答案
  • read.table 创建的对象默认是data.frame,所以不用担心。所以只需执行NewDataSet<-read.table(whatever),然后在predict() 函数中使用NewDataSet,一切都会好起来的。这假定 NewDataSet 具有名为 altsdist 的列。
  • @JohnPaul 好的,所以我想我很好,因为你上面描述的正是我所做的。有什么方法可以验证所做的预测吗?

标签: r linear-regression prediction lm


【解决方案1】:

我将 cmets 中的所有内容都放入这个答案中。

1) 您可以使用predict 而不是predict.lm,因为predict 会知道您的输入属于lm 类并自动执行正确的操作。

2 newdataset 应该是 data.frame,其变量与原始预测变量相同 - 在本例中为 altsdist

3) 如果您使用read.table 引入数据,默认情况下它将创建一个data.frame。这假设新数据有名为altsdist 的列然后你可以这样做:

NewDataSet<-read.table(whatever)
NewPredictions<- predict(model1, newdata=NewDatSet)

4) 完成此操作后,如果您想检查预测 - 您可以执行以下操作

summary(model1)

这将为您提供altsdist 的截距和系数 新数据集[1,] 这应该为您提供第一行的 altsdist 值,您可以将括号中的 1 更改为您想要的任何行。然后使用来自summary(model1) 的信息,使用您信任的任何方法计算预测值应该是多少。

终于用上了 新预测[1] 获取predict() 为您提供的第一行(或将 1 更改为任何其他行)

希望一切都能解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多