使用 dplyr 的因子水平回归模型:重复错误

Regression model over factor levels using dplyr : getting repeated errors

我正在尝试 运行 我的数据框中多个因子水平的逻辑回归模型,我得到每个因子水平的重复结果而不是唯一模型的参数。当我使用钻石数据集和 运行 相同的代码时,会发生这种情况,这个:

diamonds$E <- 
  if_else(diamonds$color=='E',1,0)   #Make 'E' binary

fitted_models <- diamonds %>% 
  group_by(clarity) %>%              #Group by clarity
  do(model=glm(E~price,#regress price on E
           data=diamonds,
           family=binomial(link='logit'))) 

fitted_models %>% 
  tidy(model)%>% 
  View    #use broom package to look

我不知道为什么会遇到这个特定问题。

问题出在您的 glm 电话中。删除 data=diamonds 并将其替换为 data=..

fitted_models <- diamonds %>% 
  group_by(clarity) %>%              #Group by clarity
  do(model=glm(E~price,#regress price on E
               data = .,
           family=binomial(link='logit'))) 

fitted_models %>% 
  tidy(model)

无论何时使用 do,都需要使用 . 引用分组数据框。正如您当前读取的代码,您引用的是原始的、未分组的帧,而不是管道传递给 do 的帧。例如,您不能只调用 E 列,您需要使用 .$E。另一种解决方案是 glm(.$E~.$price)