所以我有一个与世界发展指标和出生统计相关的数据集,有 188 行和 65 列。我正在尝试采用有目的的选择方法来创建回归模型。第一步是查看所有单独的简单线性模型。
我的目标是在 R 中针对我的响应运行每个变量的回归模型。我知道我可以跑lm(x$v30 ~ x$v1)
这将给出其中一个变量的回归。然而,我希望能够一步完成此操作,并将所有 p 值放入表中或将它们写入 CSV。
我正在关注这个,但这并不能很好地给出 P 值:用于回归的 R 循环 https://stackoverflow.com/questions/46493011/r-loop-for-variable-names-to-run-linear-regression-model
首先,我不建议您这样做,除非您知道自己在做什么。其他阅读有关选择偏差、错误发现率等的内容。
在下面,我使用 iris 数据集,并将前三列回归到第四列。您可以轻松地将其更改为您拥有的数据。
使用扫帚包不是强制性的。如果您不想这样做,请删除tidy`` command in the
lapply` 函数。
library(broom)
list_out <- lapply(colnames(iris)[1:3], function(i)
tidy(lm(as.formula(paste("Petal.Width ~", i)), data = iris)))
# [[1]]
# term estimate std.error statistic p.value
# 1 (Intercept) -3.2002150 0.25688579 -12.45773 8.141394e-25
# 2 Sepal.Length 0.7529176 0.04353017 17.29645 2.325498e-37
#
# [[2]]
# term estimate std.error statistic p.value
# 1 (Intercept) 3.1568723 0.4130820 7.642242 2.474053e-12
# 2 Sepal.Width -0.6402766 0.1337683 -4.786461 4.073229e-06
#
# [[3]]
# term estimate std.error statistic p.value
# 1 (Intercept) -0.3630755 0.039761990 -9.131221 4.699798e-16
# 2 Petal.Length 0.4157554 0.009582436 43.387237 4.675004e-86
将它们放入 data.frame 中
do.call(rbind, list_out)
# term estimate std.error statistic p.value
# 1 (Intercept) -3.2002150 0.256885790 -12.457735 8.141394e-25
# 2 Sepal.Length 0.7529176 0.043530170 17.296454 2.325498e-37
# 3 (Intercept) 3.1568723 0.413081984 7.642242 2.474053e-12
# 4 Sepal.Width -0.6402766 0.133768277 -4.786461 4.073229e-06
# 5 (Intercept) -0.3630755 0.039761990 -9.131221 4.699798e-16
# 6 Petal.Length 0.4157554 0.009582436 43.387237 4.675004e-86
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)