【问题标题】:Table of regression predictions for all pairings of two factors两个因素的所有配对的回归预测表
【发布时间】:2015-10-01 04:34:05
【问题描述】:

对于一项作业,我们被要求为表中两个因子变量的所有配对提供预测。我有两个因素和一个线性模型。我想输出一个表,其中行是一个因素的水平,列是另一个因素的水平,表中的值是这些水平的预测值。

我已经很容易地完成了预测,但是显示它会导致问题,因为似乎没有任何功能可以完成这项工作。我原以为tapply() 可能会这样做,但我似乎无法使用我的线性模型作为函数?有什么方法可以输出包含线性模型预测的二维因子表?

newdata = expand.grid(GenericFactor1 = c("1", "2", "3"), GenericFactor2 = c("10","20","30","40"))
pred = predict.lm(linear.model.lm, newdata)
newdata$pred = as.vector(pred)

【问题讨论】:

  • 感谢您添加示例,但请注意我们仍然无法运行此代码,因为我们没有 linear.model.lm。您能否将这个模型的训练包括在内,也许用一些合成数据作为输入?
  • 因为它是当前的任务,我已经将代码更改为通用代码,但这就是我目前所拥有的。我有一个两个因素组合的表格,然后将预测添加为第三列。然后我希望能够显示它,但到目前为止还没有弄清楚。
  • 呃...为什么需要合成数据进行测试?我认为这个问题很简单。我有两个因素和一个线性模型。该线性模型预测值向量。我想输出一个表格,其中行是一个因素的水平,列是另一个因素的水平,表中的值是这些水平的预测值。
  • 好吧,对于初学者来说,如果我们有一个关于合成数据和预期输出的模型,那么回答问题的人很容易证明他们的代码输出了预期的输出。

标签: r linear-regression tapply


【解决方案1】:

据我了解,您有两个因素,并且您想创建一个表,其中行与第一个因素的值相关联,列与第二个因素的值相关联,数据是预测相关因子值对的模型。 outer 函数可以很好地处理这种设置:

outer(c(1, 2, 3), c(10, 20, 30, 40), function(x, y) {
  predict.lm(linear.model.lm, newdata=data.frame(GenericFactor1=x, GenericFactor2=y))
})

【讨论】:

  • 非常感谢,这几乎正是我想要的。唯一的问题是它使用索引而不是因子级别标记行和列。我相信我会弄清楚的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 2020-07-30
  • 1970-01-01
  • 2019-09-03
  • 2020-09-22
  • 2021-03-27
相关资源
最近更新 更多