使用 dplyr 按组从分位数回归中提取 p 系数

Extract coefficient with p from a quantile regression by group with dplyr

我想从使用分组变量进行的一系列分位数回归中提取 p 值和系数。我主要使用 dplyr 来操作数据帧,所以我想要 dplyr 解决方案。

require(quantreg)
data("engel")
require(dplyr)
engel$grp <- trunc(runif(nrow(engel), min=0, max=3))

group_by(engel,grp) %>% do(summary(rq(foodexp~income,data=.,tau=c(.05, .25, .5, .75, .95)),se="boot"))

这会导致错误

Error: Results are not data frames at positions: 1, 2, 3

我尝试了另一个版本,先做模型,然后做总结

rqm <- group_by(engel,grp) %>% do(mdl=rq(foodexp~income,data=.,tau=c(.05, .25, .5, .75, .95)))
summarise(rqm, coef(summary(mdl,se="boot")))

这也会导致错误

Error: not a vector

一团糟,但它有效:

library(dplyr)
group_by(engel,grp) %>% 
      do(as.data.frame(do.call(rbind,
          lapply(summary(rq(foodexp~income,data=.,tau=c(.05, .25, .5, .75, .95)), se="boot"), coef)
            ), row.names = NULL))

然后您可能想要用 tau 值标记行,以及它是 coef 值还是 p 值。我会把它留给你。