元分析
先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。
meta
声明通用效应量与抽样方差
Stata
meta set yi seiR 包: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, fixedR 包: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, beggR 包:metafor
metafor::ranktest(metafor::rma(yi, vi, data = data, method = "FE"))与 Stata 有差异 固定流程;请明确调整示例列名。秩相关和小样本p值约定可能不同。
Egger回归不对称检验
Stata
meta bias, eggerR 包: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, correlationR 包:metafor
metafor::escalc(measure = "COR", ri = r, ni = n, data = data)与 Stata 有差异 固定流程;请明确调整示例列名。相关系数须严格处于(-1,1)内;抽样方差取决于变换。
Fisher-z变换相关系数
Stata
meta esize r n, fisherzR 包:metafor
metafor::escalc(measure = "ZCOR", ri = r, ni = n, data = data)与 Stata 有差异 固定流程;请明确调整示例列名。相关系数须严格处于(-1,1)内;抽样方差取决于变换。
以中心化出版年份进行元回归
Stata
meta regress c.yearR 包: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 xR 包:metafor
metafor::rma(yi = yi, vi = vi, mods = ~x, data = data, method = "REML")与 Stata 有差异 固定流程;请明确调整示例列名。元回归分析研究层面汇总量,不能解释为个体层面效应。
指数化合并对数效应及区间
Stata
meta summarize, eformR 包:metafor
exp(c(estimate = as.numeric(fit$b), lower = fit$ci.lb, upper = fit$ci.ub))与 Stata 有差异 固定流程;请明确调整示例列名。仅适用于处于对数比值尺度的效应量。
逐一剔除研究的合并估计
Stata
meta summarize, leaveoneoutR 包: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) predintervalR 包: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) tdistributionR 包: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 trimfillR 包:metafor
metafor::trimfill(metafor::rma(yi, vi, data = data, method = "REML"))与 Stata 有差异 假定meta set采用默认的random(reml)声明;metafor显式选择REML。Stata先前的common、fixed或random声明会改变目标。比较汇总结果前须统一研究顺序、缺失处理和异质性估计。