元分析

先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。

meta

声明通用效应量与抽样方差

Stata

meta set yi sei

R 包:metafor

metafor::escalc(measure = "GEN", yi = yi, sei = sei, data = data)

与 Stata 有差异 两端均以sei输入标准误;metafor将其平方存为vi。escalc生成效应量数据,但不持久保存Stata式meta声明、标签或默认分析模型。

按年份累积的固定效应元分析

Stata

meta summarize, cumulative(year)

R 包:metafor

metafor::cumul(metafor::rma(yi, vi, data = data, method = "REML"), order = data$year)

与 Stata 有差异 假定meta set采用默认的random(reml)声明;metafor显式选择REML。Stata先前的common、fixed或random声明会改变目标。比较汇总结果前须统一研究顺序、缺失处理和异质性估计。

逆方差元分析方法:FE

Stata

meta summarize, fixed

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "FE")

与 Stata 有差异 固定流程;请明确调整示例列名。须统一研究间方差估计量和区间方法;部分估计量的软件名称不同。

逆方差元分析方法:DL

Stata

meta summarize, random(dlaird)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "DL")

与 Stata 有差异 固定流程;请明确调整示例列名。须统一研究间方差估计量和区间方法;部分估计量的软件名称不同。

逆方差元分析方法:ML

Stata

meta summarize, random(mle)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "ML")

与 Stata 有差异 固定流程;请明确调整示例列名。须统一研究间方差估计量和区间方法;部分估计量的软件名称不同。

逆方差元分析方法:REML

Stata

meta summarize, random(reml)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "REML")

与 Stata 有差异 固定流程;请明确调整示例列名。须统一研究间方差估计量和区间方法;部分估计量的软件名称不同。

另有 27 个示例及替代实现

秩相关小样本研究效应检验

Stata

meta bias, begg

R 包:metafor

metafor::ranktest(metafor::rma(yi, vi, data = data, method = "FE"))

与 Stata 有差异 固定流程;请明确调整示例列名。秩相关和小样本p值约定可能不同。

Egger回归不对称检验

Stata

meta bias, egger

R 包:metafor

metafor::regtest(metafor::rma(yi, vi, data = data, method = "REML"), model = "rma", predictor = "sei")

与 Stata 有差异 假定Stata的meta声明采用默认random(reml)。model=“rma”将效应对标准误回归,并以REML估计加性异质性;model=“lm”采用的则是乘性离散。小样本研究效应本身不能证明发表偏差。

对数优势比和方差

Stata

meta esize a b c d, esize(lnoratio)

R 包:metafor

metafor::escalc(measure = "OR", ai = a, bi = b, ci = c, di = d, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。处理和对照单元格顺序须一致,连续性修正须明确选择。

对数风险比和方差

Stata

meta esize a b c d, esize(lnrratio)

R 包:metafor

metafor::escalc(measure = "RR", ai = a, bi = b, ci = c, di = d, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。处理和对照单元格顺序须一致,连续性修正须明确选择。

风险差和方差

Stata

meta esize a b c d, esize(rdiff)

R 包:metafor

metafor::escalc(measure = "RD", ai = a, bi = b, ci = c, di = d, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。处理和对照单元格顺序须一致,连续性修正须明确选择。

Freeman-Tukey变换比例

Stata

meta esize cases n, esize(ftukeyprop)

R 包:metafor

metafor::escalc(measure = "PFT", xi = cases, ni = n, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。须谨慎处理变换定义及反变换,尤其双反正弦变换。

Logit变换研究比例

Stata

meta esize cases n, esize(logitprop)

R 包:metafor

metafor::escalc(measure = "PLO", xi = cases, ni = n, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。须谨慎处理变换定义及反变换,尤其双反正弦变换。

原始研究比例和方差

Stata

meta esize cases n, esize(proportion)

R 包:metafor

metafor::escalc(measure = "PR", xi = cases, ni = n, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。须谨慎处理变换定义及反变换,尤其双反正弦变换。

未修正Cohen标准化均值差

Stata

meta esize n1 m1 sd1 n0 m0 sd0, esize(cohend)

R 包:metafor

metafor::escalc(measure = "SMD", m1i = m1, sd1i = sd1, n1i = n1, m2i = m0, sd2i = sd0, n2i = n0, data = data, correct = FALSE)

与 Stata 有差异 固定流程;请明确调整示例列名。标准化效应的抽样方差估计方法须匹配。

偏差修正标准化均值差

Stata

meta esize n1 m1 sd1 n0 m0 sd0, esize(hedgesg)

R 包:metafor

metafor::escalc(measure = "SMD", m1i = m1, sd1i = sd1, n1i = n1, m2i = m0, sd2i = sd0, n2i = n0, data = data)

与 Stata 有差异 metafor的SMD使用gamma函数计算精确Hedges修正。Stata的hedgesg默认采用近似修正;应指定esize(hedgesg, exact)统一该修正,并另行统一抽样方差公式。

未标准化均值差

Stata

meta esize n1 m1 sd1 n0 m0 sd0, esize(mdiff)

R 包:metafor

metafor::escalc(measure = "MD", m1i = m1, sd1i = sd1, n1i = n1, m2i = m0, sd2i = sd0, n2i = n0, data = data, vtype = "HO")

与 Stata 有差异 vtype=“HO”使用组内合并方差,对应Stata的esize(mdiff)默认等方差抽样方差。metafor默认vtype=“LS”使用两组各自方差,应与Stata的unequal配合。

原始相关系数与抽样方差

Stata

meta esize r n, correlation

R 包:metafor

metafor::escalc(measure = "COR", ri = r, ni = n, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。相关系数须严格处于(-1,1)内;抽样方差取决于变换。

Fisher-z变换相关系数

Stata

meta esize r n, fisherz

R 包:metafor

metafor::escalc(measure = "ZCOR", ri = r, ni = n, data = data)

与 Stata 有差异 固定流程;请明确调整示例列名。相关系数须严格处于(-1,1)内;抽样方差取决于变换。

以中心化出版年份进行元回归

Stata

meta regress c.year

R 包:metafor

metafor::rma(yi = yi, vi = vi, mods = ~year, data = data, method = "REML")

与 Stata 有差异 按year原始尺度建模,截距与Stata命令一样对应年份零。假定Stata声明的模型为random(REML);须统一模型声明和标准误选项。

分类元回归与Knapp-Hartung推断

Stata

meta regress i.x, random(reml)

R 包:metafor

metafor::rma(yi, vi, mods = ~factor(x), data = data, method = "REML")

与 Stata 有差异 采用常规正态参考分布的REML元回归,对应未指定se(khartung)的Stata命令。Knapp-Hartung须在两端显式指定。调节变量关联属于研究层面,不是因果子组效应。

含调节变量的随机效应元回归

Stata

meta regress x

R 包:metafor

metafor::rma(yi = yi, vi = vi, mods = ~x, data = data, method = "REML")

与 Stata 有差异 固定流程;请明确调整示例列名。元回归分析研究层面汇总量,不能解释为个体层面效应。

指数化合并对数效应及区间

Stata

meta summarize, eform

R 包:metafor

exp(c(estimate = as.numeric(fit$b), lower = fit$ci.lb, upper = fit$ci.ub))

与 Stata 有差异 固定流程;请明确调整示例列名。仅适用于处于对数比值尺度的效应量。

逐一剔除研究的合并估计

Stata

meta summarize, leaveoneout

R 包:metafor

metafor::leave1out(metafor::rma(yi, vi, data = data, method = "REML"))

与 Stata 有差异 假定meta set采用默认的random(reml)声明;metafor显式选择REML。Stata先前的common、fixed或random声明会改变目标。比较汇总结果前须统一研究顺序、缺失处理和异质性估计。

逆方差元分析方法:EB

Stata

meta summarize, random(ebayes)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "EB")

与 Stata 有差异 固定流程;请明确调整示例列名。须统一研究间方差估计量和区间方法;部分估计量的软件名称不同。

逆方差元分析方法:HE

Stata

meta summarize, random(hedges)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "HE")

与 Stata 有差异 固定流程;请明确调整示例列名。须统一研究间方差估计量和区间方法;部分估计量的软件名称不同。

随机效应合并推断:z

Stata

meta summarize, random(reml)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "REML", test = "z")

固定流程;请明确调整示例列名。仅knha对应Knapp-Hartung修正;z和t是明确的推断替代方法。

新研究真实效应的预测区间

Stata

meta summarize, random(reml) predinterval

R 包:metafor

stats::predict(metafor::rma(yi, vi, data = data, method = "REML"))

与 Stata 有差异 真实效应预测区间不同于合并均值置信区间。Stata采用t(K-2),metafor默认使用正态分位数。Stata端点应按mu +/- qt(.975,K-2)*sqrt(tau2+se^2)计算;改用metafor的test=“t”会采用K-p自由度,并非相同修正。

随机效应合并推断:knha

Stata

meta summarize, random(reml) se(khartung)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "REML", test = "knha")

固定流程;请明确调整示例列名。仅knha对应Knapp-Hartung修正;z和t是明确的推断替代方法。

随机效应合并推断:t

Stata

meta summarize, random(reml) tdistribution

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "REML", test = "t")

固定流程;请明确调整示例列名。仅knha对应Knapp-Hartung修正;z和t是明确的推断替代方法。

逆方差元分析方法:SJ

Stata

meta summarize, random(sjonkman)

R 包:metafor

metafor::rma(yi = yi, vi = vi, data = data, method = "SJ")

与 Stata 有差异 固定流程;请明确调整示例列名。须统一研究间方差估计量和区间方法;部分估计量的软件名称不同。

按研究亚组合并随机效应

Stata

meta summarize, subgroup(x)

R 包:metafor

lapply(split(data, data$x), function(d) metafor::rma(yi, vi, data = d, method = "REML"))

与 Stata 有差异 固定流程;请明确调整示例列名。分别估计各组异质性,不同于共享tau参数的亚组模型。

剪补法敏感性分析

Stata

meta trimfill

R 包:metafor

metafor::trimfill(metafor::rma(yi, vi, data = data, method = "REML"))

与 Stata 有差异 假定meta set采用默认的random(reml)声明;metafor显式选择REML。Stata先前的common、fixed或random声明会改变目标。比较汇总结果前须统一研究顺序、缺失处理和异质性估计。