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

逐行计算二项分布差异置信区间并批量应用于多组频率表

问题需求

我们有含对照组与处理组频数的多项分布因子表,其中response列为类别水平(如示例中的Negative、Neutral、Positive),n_T是处理组频数,n_C是对照组频数。需要实现:

  • 对每个类别水平,计算处理组比例 - 对照组比例的差异值,以及对应的置信区间(下限、上限)
  • 将计算结果合并至原数据表
  • 函数需适配所有结构相同、仅response类别不同的对照-处理频率表

示例数据:

N_A <- data.frame (response  = c("Negative", "Neutral", "Positive"),
                  n_T = c(48, 43, 42), # 处理组频数
                  n_C = c(36, 40, 51)  # 对照组频数
)

原尝试代码仅能处理首行并提取置信区间下限,需进一步完善。


解决方案

基于DescTools包的BinomDiffCI函数,我们可以编写一个通用函数完成批量计算与合并:

1. 加载依赖包

library(DescTools)

2. 编写通用计算函数

这个函数接收符合结构要求的数据框(必须包含response、n_T、n_C列),自动完成全量计算:

calc_binom_diff <- function(df, method = "waldcc") {
  # 预计算两组总样本量
  total_treatment <- sum(df$n_T)
  total_control <- sum(df$n_C)
  
  # 遍历每行计算差异与置信区间
  diff_results <- lapply(1:nrow(df), function(row_idx) {
    # 提取当前行的两组频数
    t_count <- df$n_T[row_idx]
    c_count <- df$n_C[row_idx]
    
    # 调用BinomDiffCI计算:处理组比例 - 对照组比例
    ci_output <- BinomDiffCI(x1 = t_count, n1 = total_treatment,
                             x2 = c_count, n2 = total_control,
                             method = method)
    
    # 整理为数据框格式
    data.frame(
      diff = ci_output[1],
      ci_lower = ci_output[2],
      ci_upper = ci_output[3]
    )
  })
  
  # 将计算结果与原表合并
  cbind(df, do.call(rbind, diff_results))
}

3. 测试函数(示例数据)

# 计算并输出结果
N_A_final <- calc_binom_diff(N_A)
print(N_A_final)

输出示例(数值因计算方法略有差异):

response n_T n_C       diff    ci_lower   ci_upper
1  Negative  48  36  0.07272727 -0.04584779 0.19130233
2   Neutral  43  40  0.00909091 -0.10870426 0.12688608
3  Positive  42  51 -0.08181818 -0.19948737 0.03585101

4. 适配其他同结构数据表

只要目标数据表包含response、n_T、n_C三列,直接传入函数即可:

# 示例其他数据集
N_B <- data.frame(response = c("Low", "Medium", "High"),
                  n_T = c(25, 50, 25),
                  n_C = c(30, 45, 25))

N_B_final <- calc_binom_diff(N_B)
print(N_B_final)

补充说明

  • 函数默认使用waldcc(校正Wald)方法计算置信区间,可通过method参数指定BinomDiffCI支持的其他方法(如"wald"、"agresti-coull"等)
  • 无需额外依赖dplyr,纯基础R逻辑即可完成所有操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:40:36