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

R语言GJRM包bvp模型summary输出提取指定统计量转表格方法

GJRM包双变量Probit模型结果提取实操

前置模型拟合

先运行给定的可复现代码,完成bvp模型对象的构建:

require(GJRM)
set.seed(123)
# 构造模拟数据集
x1 <- sample(1:100, size = 20)
bid1 <- sample(c(5, 10, 20, 30), size = 20, replace = TRUE)
bid2 <- sample(c(5, 10, 20, 30), size = 20, replace = TRUE)
ans1 <- sample(c(1,0), size = 20, replace = TRUE)
ans2 <- sample(c(1,0), size = 20, replace = TRUE)
df <- as.data.frame(cbind(x1, bid1, bid2, ans1, ans2))
# 指定双方程设定
treat.eq <- ans1 ~ bid1 + x1
out.eq <- ans2 ~ bid2 + x1
f.list <- list(treat.eq, out.eq)
mr <- c("probit", "probit")
# 拟合双变量probit模型
bvp <- gjrm(f.list, data = df, Model = "B", margins = mr)

结果提取操作

核心思路:GJRM包的summary()方法返回的是结构化S3对象,不需要通过文本解析控制台输出抓数值,直接读取内置的系数矩阵组件即可,完全避免文本错位、排版变动导致的提取错误。

  1. 将summary结果存为独立对象,而非直接打印输出
    # 存储summary结构化结果
    bvp_summary <- summary(bvp)
    
  2. 直接从对象内置的系数矩阵中提取目标三类统计量
    对象内的Coef组件是和控制台打印完全一致的系数表,列名固定对应估计值、标准误、z值、p值,直接按列名取数即可:
    # 提取Estimate、Std. Error、Pr(>|z|)三列
    target_coef <- bvp_summary$Coef[, c("Estimate", "Std. Error", "Pr(>|z|)")]
    
  3. 整理为规范表格格式
    把矩阵的行名(对应各个参数的名称,比如两个方程的截距、协变量系数、方程间相关参数)转成单独列,得到可直接用于展示、导出的规整数据框:
    # 整理为规范表格
    final_result <- data.frame(
      参数名称 = rownames(target_coef),
      target_coef,
      row.names = NULL,
      check.names = FALSE
    )
    
    整理完成后直接输入final_result即可查看规整后的结果,也可以用write.csv(final_result, "系数结果表.csv")将结果导出为外部表格文件。

注意事项

  • 不要用捕获控制台输出(capture.output(summary(bvp)))加正则匹配的方式提取数值,一旦模型变量长度、输出排版调整,极易出现数值错位的问题
  • 提取的结果会自动包含双变量Probit两个方程的所有系数,以及最后一项两个方程误差项的相关系数(rho)的估计值,和控制台输出的结果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 01:45:01