首页 > 解决方案 > 如何在 R 中创建一个遍历整个数据帧的简单线性回归函数?

问题描述

我正在通过 ISLR 工作并被困在一个问题上。基本上,我正在尝试创建一个遍历整个数据框的函数。这是问题 3.7、15a。

对于每个预测变量,拟合一个简单的线性回归模型来预测响应。描述你的结果。在哪些模型中,预测变量和响应之间存在统计上显着的关联?创建一些图表来支持您的断言。

所以我的想法是这样的:

y = Boston$crim 
x = Boston[, -crim] 
TestF1 = lm(y ~ x) 
summary(TestF1) 

但这远不是正确的答案。我希望通过以下方式分解它:

  1. 以crim 作为我的响应和其他作为预测器来迭代整个数据框
  2. 提取统计显着的 p 值(或提取不显着的值)
  3. 继续下一个问题(这要容易得多)

但我被困住了。我用谷歌搜索但找不到任何东西。我尝试了这个 combn(Boston) 的东西,但也没有用。请帮忙,谢谢。

标签: rstatistics

解决方案


如果您的问题是迭代数据框,这里有一个示例mtrcarsmpg是目标变量,其余是预测变量,假设模型具有单个预测变量)。这个想法是生成字符串并将它们转换为公式:

lms <- vector(mode = "list", length = ncol(mtcars)-1)

for (i in seq_along(lms)){
  lms[[i]] <- lm(as.formula(paste0("mpg~",names(mtcars)[-1][i])), data = mtcars)
}

如果您想查看每个变量组合,请从包含所有变量的模型开始,然后消除不显着的预测变量以找到最佳模型。


推荐阅读