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

如何在R中合并同研究OR值并开展随机效应模型Meta分析

问题描述

拟采用随机效应模型开展Meta分析,数据包含研究名称、比值比(Odds Ratio, OR)及95%置信区间。因分析变量由多个子变量构成(如物质使用障碍包含酒精使用障碍、大麻使用障碍等),部分研究针对同一变量存在多个效应量。为控制同研究的影响,需要先合并每个研究的效应量,再将合并后的效应量用于随机效应模型Meta分析。

数据结构如下:

dput(data)
structure(list(author = c("Study 1", "Study 1", 
"Study 2", "Study 3", "Study 3", 
"Study 4", "Study 5", "Study 5"
), OR = c(2.88, 0.75, 1.09, 4.24, 2.64, 2.77, 2.6, 3.2), ci.low = c(1.07, 
0.31, 0.39, 0.89, 1.25, 1.63, 1.2, 1.6), ci.high = c(13.38, 1.81, 
3.03, 20.25, 5.62, 4.69, 5.7, 6.2), row.names = 4:8, class = "data.frame")

尝试使用metagen函数并设置cluster = author参数,但随机效应模型的结果在使用该参数前后无差异,未实现正确调整。代码如下:

metagen(TE = OR, lower = ci.low, upper = ci.high, 
        studlab = author, fixed = F, random = T, cluster = author,
        sm = "OR", data = data)

需要解决的问题:如何正确合并单个研究的多个效应量,并将其用于随机效应模型以获得合并OR值?


解决方案

你需要分两步完成:先按研究合并内部的多个效应量,得到每个研究的单一合并效应量;再用这些合并后的结果进行随机效应Meta分析。

步骤1:合并同一研究内的多个效应量

使用meta包的metagen函数,按研究分组,对每个研究内部的效应量进行合并(同一研究内的效应量通常针对同一总体子指标,异质性较低,推荐用固定效应模型)。

library(meta)

# 按研究分组,合并每个研究内的效应量(OR需先取对数,避免偏倚)
study_level_meta <- by(data, data$author, function(subdata) {
  metagen(TE = log(subdata$OR),
          lower = log(subdata$ci.low),
          upper = log(subdata$ci.high),
          sm = "OR",
          fixed = TRUE,
          random = FALSE)
})

# 提取每个研究合并后的核心结果
merged_data <- do.call(rbind, lapply(study_level_meta, function(x) {
  data.frame(
    author = x$studlab[1],
    merged_OR = exp(x$TE.fixed),
    merged_ci_low = exp(x$lower.fixed),
    merged_ci_high = exp(x$upper.fixed),
    se_logOR = x$seTE.fixed
  )
}))

步骤2:用合并后的研究水平效应量做随机效应Meta分析

基于步骤1得到的merged_data,再次使用metagen函数进行随机效应模型分析:

final_meta <- metagen(TE = log(merged_OR),
                      seTE = se_logOR,
                      studlab = author,
                      sm = "OR",
                      fixed = FALSE,
                      random = TRUE,
                      data = merged_data)

# 查看合并结果
print(final_meta)
# 绘制森林图
forest(final_meta)

关键说明

  • cluster参数的局限性:metagen中的cluster参数是用于直接在Meta模型中考虑同一研究内效应量的相关性,而非先合并研究内效应量,这和你的需求逻辑不符,因此之前用该参数无法得到预期结果。
  • 对数转换的必要性:OR属于右偏分布,取对数后近似正态分布,合并结果更准确,最后再转换回原始OR尺度。
  • 研究内合并模型选择:若同一研究内子指标异质性较大,也可改用随机效应模型合并,但需在结果中解释合理性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:23:33