You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将boot()输出的Bootstrap Statistics转换为数据框?

问题描述

使用boot()函数计算一系列回归系数后,得到如下Bootstrap统计结果,希望将其转换为包含original、bias、std.error的完整数据框。尝试调用results$t0仅能获取原始系数值,无法得到偏差和标准误。

代码示例

bs<-function(formula, data, indices) {
  d<-data[indices,]
  fit1<-lm(formula,data=d)
  r<-residuals(fit1)
  taus<-c(0.1, 0.2, 0.3, 0.4, 0.5)
  fit2<-rq(srs~r, tau=taus, data=d)
  return(coef(fit2))
}

library(boot)
results<-boot(data=earli, statistic=bs, R=1000, formula=Freq~prepreg_bmi+mat_age)             
results

输出结果

Bootstrap Statistics :
      original      bias    std. error
t1*  39.000000 -0.06213177   0.4923311
t2*   0.000000  0.81613987   0.9480617
t3*  39.994080  0.20734506   0.5515006
t4*   1.978584 -0.27895713   1.0157747
t5*  41.494479  0.08356320   0.6923510
t6*   2.982711 -0.28310189   1.2957767
t7*  43.464062 -0.22307964   0.7879350
t8*   3.075496  0.31197213   1.4150300
t9*  44.974168  0.03526846   0.8638345
t10*  3.978100 -0.53116587   1.5490870
解决方案

直接提取boot对象中的三个核心统计量,合并为数据框即可,同时可以添加系数名称提升可读性:

# 提取各列数据
original_vals <- results$t0
bias_vals <- results$bias
std_error_vals <- results$std.error

# 合并为数据框
boot_stats_df <- data.frame(
  original = original_vals,
  bias = bias_vals,
  std.error = std_error_vals,
  row.names = names(original_vals)
)

# 查看结果
print(boot_stats_df)

关键说明

  • results$t0对应输出中的original列
  • results$bias对应输出中的bias列
  • results$std.error对应输出中的std. error列
  • names(original_vals)会自动读取每个系数的名称(比如不同分位数下的截距和斜率),让数据框的行标签更清晰

内容的提问来源于stack exchange,提问作者Jeff S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:05:11