给定风险比的试验的荟萃分析

机器算法验证 r 荟萃分析
2022-03-18 20:25:14

我正在尝试在 R(使用 metafor)中对结果进行风险比的试验进行荟萃分析,并且我得到了 95% CI 和/或标准误差和n

因此,如果我有如下列:

Trial name      HR      SE     n

我看过http://www.inside-r.org/packages/cran/metafor/docs/dat.pignon2000

看来我想要的是

1)风险比的对数(简单)

2)方差(我认为我可以做到 (SE*sqrt(n))^2 ,其中 SE 甚至是从 95% CI 给出或计算出来的)。

所以代码是这样的:

#Effect sizes == log HR
dat$yi <- with(dat, log(mid_per_unit))

#Variances == (SE*sqrt(n))^2
dat$vi <- with(dat, (SE*sqrt(n))^2)


res <- rma(yi, vi, data=dat, method="FE")

forest(res)

1)我不确定这是否有效

2)我最终得到了人力资源日志的森林图(我猜)?我想找到我只是做日志(估计)的“元分析”人力资源?

附录:不用担心反向转换,到目前为止,最简单的事情是添加atransf=exp到 rma 对象的 forest() 调用。

1个回答

假设您有对数风险比(在向量中收集yi)和对数风险比的标准误差(在向量中收集sei),那么您可以将固定效应模型拟合到这些数据:

res <- rma(yi, sei=sei, data=dat, method="FE")

与通常用于荟萃分析的其他几个结果指标(例如,风险比、优势比、发生率比)一样,我们不直接荟萃分析风险比,而是首先对它们进行对数转换。这有两个目的:

  1. 原始风险比的抽样分布通常非常偏斜。然而,标准的元分析模型假设结果测量的抽样分布(至少近似)是正态的,并且该假设更适合于对数转换的风险比。

  2. 原始风险比在 1 附近不对称。因此,如果要平均 0.5 和 2.0 的风险比(彼此完全相反),那么我们将得到 1.25,这是没有意义的。但是,对数转换后的值为 -0.6931 和 +0.6931,其平均值为 0。经过反向转换(取幂)后,我们得到 1,并且适当的结论是,平均而言,风险比为 1。

另请注意,使用 Cox 比例风险模型(通常是荟萃分析获得的风险比的来源)的分析是在对数尺度上进行的。因此,当标准误差与风险比一起报告时,该标准误差很可能是指对数转换的风险比,而不是原始风险比(事实上,鉴于原始风险比分布的偏度,如果确实报告了原始风险比的标准误差的有用性,则相当值得怀疑)。

类似地,如果报告了置信区间,那么它很可能是在对数尺度上构建的,并且边界随后被取幂。然后我们可以轻松地反算对数风险比的 SE。另请参阅this question,它正好涉及该问题。

与对数秩检验结果一起报告的风险比也是如此毫不奇怪,正如测试的名称所暗示的那样,基础分析也是在对数尺度上完成的。因此,基于此类结果计算的标准误差再次指的是对数风险比,而不是原始风险比。

一些额外的评论:

  1. 对数风险比的抽样方差是通过简单地对标准误差进行平方来获得的。所以,你可以只使用rma(yi, sei^2, data=dat, method="FE")or 先创建vi <- dat$sei^2然后rma(yi, vi, data=dat, method="FE"). 不要乘以/除以样本大小或其平方根。

  2. 对数风险比标准误与取原始风险比的标准误的对数不同。不能只对标准误差(或方差)应用相同的转换。在某些情况下,可以使用delta 方法来近似某个随机变量在变换后的标准误差(或方差)。