r - 使用 broom 和 tidyverse 对不同的因变量运行回归

标签 r loops regression tidyverse broom

我正在寻找可以解决这个难题的 Tidyverse/broom 解决方案:

假设我有 不同的DV 和一个 具体 一组 IVS,我想执行一个回归,考虑每个 DV 和这组特定的 IV。
我知道我可以使用 for i in 或 apply family 之类的东西,但我真的很想使用 tidyverse 来运行它。

以下代码作为示例

ds <- data.frame(income = rnorm(100, mean=1000,sd=200),
                 happiness = rnorm(100, mean = 6, sd=1),
                 health = rnorm(100, mean=20, sd = 3),
                 sex = c(0,1),
                 faculty = c(0,1,2,3))

mod1 <- lm(income ~ sex + faculty, ds)
mod2 <- lm(happiness ~ sex + faculty, ds)
mod3 <- lm(health ~ sex + faculty, ds)
summary(mod1)
summary(mod2)
summary(mod3)

收入、幸福和健康都是DV。 Sex 和 Faculty 是 IV,它们将用于所有回归。

That是我找到的最接近的

如果我需要澄清我的问题,请告诉我。
谢谢。

最佳答案

由于您有不同的因变量但相同的独立变量,您可以形成这些矩阵并传递给 lm

mod = lm(cbind(income, happiness, health) ~ sex + faculty, ds)

我认为 broom::tidy 有效
library(broom)
tidy(mod)

#    response        term      estimate  std.error  statistic      p.value
# 1    income (Intercept) 1019.35703873 31.0922529 32.7849205 2.779199e-54
# 2    income         sex  -54.40337314 40.1399258 -1.3553431 1.784559e-01
# 3    income     faculty   19.74808081 17.9511206  1.1001030 2.740100e-01
# 4 happiness (Intercept)    5.97334562  0.1675340 35.6545278 1.505026e-57
# 5 happiness         sex    0.05345555  0.2162855  0.2471528 8.053124e-01
# 6 happiness     faculty   -0.02525431  0.0967258 -0.2610918 7.945753e-01
# 7    health (Intercept)   19.76489553  0.5412676 36.5159396 1.741411e-58
# 8    health         sex    0.32399380  0.6987735  0.4636607 6.439296e-01
# 9    health     faculty    0.10808545  0.3125010  0.3458723 7.301877e-01

关于r - 使用 broom 和 tidyverse 对不同的因变量运行回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51642146/

相关文章:

javascript - 遍历JavaScript中的数组

javascript - 将数组分成 4 个数组并将这些数组存储在新数组 javascript/Jquery 中

r - 如何设置 nls 系数的界限?

r - 用 R 制作一份关于 Latex 的漂亮报告

r - R 中逻辑数组的最内层真值

r - 当变量的拼写方式略有不同时,如何对变量进行计数?

r - 将回归线拟合为 R 中对数轴的图形

r - mclapply 的半全局变量

javascript - 循环访问 classList 时无法编辑它

Matlab - 回归