【问题标题】:extracting SE from a list of results从结果列表中提取 SE
【发布时间】:2017-03-03 07:41:44
【问题描述】:

如果您运行此代码,您将看到 5 个回归

library(quantreg)
data(engel)
xx <- income - mean(income)
fit2 = summary(rq(foodexp~income,tau=c(.05, .25, .5, .75, .95)))
fit2

每个都有下bd和上bd

我想提取 INTERCEPT 的系数和下限和上限,并将其放入数据表中

现在访问系数,以及我使用 [[]] 的每个回归的上下截距,然后抓取第一行,然后 rbind:

rbind(coef(summary(  fit2  )[[1]])[1,] ,
coef(summary(  fit2  )[[2]])[1,],
coef(summary(  fit2  )[[3]])[1,],
coef(summary(  fit2  )[[4]])[1,],
coef(summary(  fit2  )[[5]])[1,])

但是必须有一种更简单的动态方法...有 20 个回归而不是 5 个回归是什么?谢谢。

【问题讨论】:

  • 如果我运行该代码,我会收到一个错误 - engel$xx &lt;- engel$income - mean(engel$income) 我想你的意思是。

标签: r


【解决方案1】:
library(quantreg)
data(engel)
fit2 = rq(foodexp~income, tau=c(.05, .25, .5, .75, .95), data = engel )

do.call('rbind', lapply(summary(fit2), function(x) coef(x)[1,]))
#      coefficients lower bd  upper bd
# [1,]    124.88004 98.30212 130.51695
# [2,]     95.48354 73.78608 120.09847
# [3,]     81.48225 53.25915 114.01156
# [4,]     62.39659 32.74488 107.31362
# [5,]     64.10396 46.26495  83.57896

基于@thelatemail 建议 - 使用sapply

截距系数

sapply( summary(fit2), function(x) x[['coefficients']][1,] )
#                   [,1]      [,2]      [,3]      [,4]     [,5]
# coefficients 124.88004  95.48354  81.48225  62.39659 64.10396
# lower bd      98.30212  73.78608  53.25915  32.74488 46.26495
# upper bd     130.51695 120.09847 114.01156 107.31362 83.57896

收入系数

sapply( summary(fit2), function(x) x[['coefficients']][2,] )
#                   [,1]      [,2]      [,3]      [,4]      [,5]
# coefficients 0.3433611 0.4741032 0.5601806 0.6440141 0.7090685
# lower bd     0.3433270 0.4203298 0.4870223 0.5801552 0.6739000
# upper bd     0.3897500 0.4943288 0.6019890 0.6904127 0.7344405

【讨论】:

  • @thelatemail 我相信 broom 包有一个 tidy 方法可以为 rq 模型执行此操作。
  • 如果我回答了您的问题,请接受。谢谢
猜你喜欢
  • 2022-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多