Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用broom和tidyverse对不同的因变量进行回归_R_Loops_Regression_Tidyverse_Broom - Fatal编程技术网

使用broom和tidyverse对不同的因变量进行回归

使用broom和tidyverse对不同的因变量进行回归,r,loops,regression,tidyverse,broom,R,Loops,Regression,Tidyverse,Broom,我正在寻找一种可以解决这个难题的Tidyverse/broom解决方案: 假设我有不同的DV和一组特定的IVS,我想执行一个回归,考虑每个DV和这组特定的IVS。 我知道我可以使用类似于for I in或apply family的东西,但我真的很想使用tidyverse来运行它 下面的代码就是一个例子 ds <- data.frame(income = rnorm(100, mean=1000,sd=200), happiness = rnorm(100,

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

假设我有不同的DV和一组特定的IVS,我想执行一个回归,考虑每个DV和这组特定的IVS。 我知道我可以使用类似于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。性别和教员是IVs,它们将用于所有回归

是我找到的最接近的

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

我们可以循环遍历作为因变量的列名,使用“粘贴”创建要传递到lm的公式,并从broom获得tidy的汇总统计信息

如果我们希望它位于一个data.frame中,并带有因变量的列标识符

map_df(set_names(names(ds)[1:3]), ~ 
      lm(formula(paste0(.x, "~", 
        paste(names(ds)[4:5], collapse=" + "))), data = ds) %>%
   tidy, .id = "Dep_Variable")
另一种方法是收集因变量,并使用分组数据框来拟合do模型。这是在broom和dplyr渐晕图中解释的方法

图书馆管理员 图书馆扫帚 ds% gatherdv_名称、dv_值、收入:健康%>% 组\u bydv\u名称%>% dotidyldv_值~性别+能力,数据=。 >一个tibble:9x6 >分组:dv_名称[3] >dv_名称术语估计标准误差统计p值 > >1.6.25 0.191 32.7 3.14e-54 >2幸福性0.163 0.246 0.663 5.09e-1 >3幸福系数-0.1720.110-1.561.23e-1 >4健康截距20.1 0.524 38.4 1.95e-60 >5健康性别0.616 0.677 0.909 3.65e-1 >6卫生学院-0.653 0.303-2.16 3.36e-2 >7收入截距1085。32.8 33.0 1.43e-54 >8收入性别-12.9 42.4-0.304 7.62e-1 >9收入学院-25.1 19.0-1.32 1.89e-1
由v0.2.0于2018年8月1日创建。

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

我认为扫帚:整洁有效


不错的选择。我忘了这件事了谢谢你。。。这可能是我的第一个贴有Q标签的tidyverse|您可以使用%>%:=哇,令人惊奇的解决方案使其整洁@user20650我真正的谜题有不同的变量名,我想知道这样的东西是否可行:j%selectincome,happiness,health mod=lmcbindnoquotepaste0variable.namesj,collapse=,~sex+faculty,dsLuis;对不起,你问错人了;我不使用tidyverse语法,perhaps@akrun我可以提供建议。非常感谢,@akrun。你总是回答我的问题。你介意我问你怎么知道这么多关于tidyverse和R的事吗?你是数据科学家吗?你推荐什么书/材料?正如你所看到的,我总是通过反复试验来学习=非常感谢@路易斯很高兴回答你的问题。我主要通过SO和R邮件列表学习R。你的学习方法是好的,因为犯错误会让你思考原因,这比使用正确的方法会给你留下更深刻的印象。网上有很多资源可以学习R。也许你已经通过了这些。此外,您还可以查看udemy、udacity、datacamp等课程。没有适合所有人的特定方法再次感谢,@akrun,您的回复总是非常有用且信息丰富。最好的太神了非常感谢你!
map_df(set_names(names(ds)[1:3]), ~ 
      lm(formula(paste0(.x, "~", 
        paste(names(ds)[4:5], collapse=" + "))), data = ds) %>%
   tidy, .id = "Dep_Variable")
mod = lm(cbind(income, happiness, health) ~ sex + faculty, ds)
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