escalc
来获取值向量,并传递给rma
包中的metafor
以计算汇总估算值。
我有问题,在问题后概述了MWE的理由:
measure=
选项来合并可以采用负值和正值的费率?measure="COR"
,其中yi是将我的利率除以某个除数,则y是一个介于-1和1之间的向量,为什么合并利率随我使用的除数而变化? 因此,我正在处理的数据示例为:
rates <- c(32.691314, 89.236488, 59.954874, 28.832000, 9.530486, 12.590196)
pop <- c(6175139, 218932, 3888834, 425415, 4784373, 2061030)
我最初尝试使用escalc中的measure="PR"
选项来总结这些内容:
library(metafor)
div.pr <- 100000 #divisor used for PR measures. This is denominator for the reported rates
no <- rates/div.pr * pop #to get a whole number
no[no<0] <- 0 # replace neg with 0, since cannot handle negative rates
dat.pr1 <- escalc(measure="PR", xi=no, ni=pop, append=TRUE) # calculate state-weighted estimate
res.pr1 <- rma(yi, vi, data = dat.pr1) #random effects summary estimate of the 5 rates
pooled.dat.pr1 <- res.pr1$b+c(0,-1,1)*1.96*res.pr1$se #estimate with 95%CI converted back to the rate scale ie.per 100,000 population
pr.est1 <- pooled.dat.pr1 * div.pr
但是,我的一些利率是负数。这是因为它们是疾病归因的比率,有时疾病可能阻止住院而不是引起住院。由于measure="PR"
选项无法处理负税率,因此所有负数都必须替换为NA,因此汇总估算值有偏差,只支持仅看到增加的税率(从不减少税率)。
因此,我被建议改为使用相关性作为结果度量。例如,使用measure="COR"
并将费率强制在-1和1之间。当我使用这些数据(即除以100)进行计算时,得出的估算值与PR
选项具有可比性:>
div.cor1 <- 100
dat.cor1 <- escalc(measure="COR", ri=rates/div.cor1, ni=pop, append=TRUE)
res.cor1 <- rma(yi, vi, data = dat.cor1)
pooled.dat.cor1 <- res.cor1$b+c(0,-1,1)*1.96*res.cor1$se
cor.est1 <- pooled.dat.cor1 * div.cor1
rbind(pr.est1,cor.est1)
给予
[,1] [,2] [,3]
pr.est 38.44942 14.35175 62.54709
cor.est1 38.80594 14.34719 63.26469
我认为这看起来还可以。
正如预期的那样,当存在负值时,合并的估计会有所不同(COR> PR),因为PR会忽略负值;例如如果我改为使用以下比率向量:rates2 <- c(32.691314, 89.236488, 59.954874, 28.832000, -9.530486, 12.590196)
,而第5个元素现在为负,则得到:
[,1] [,2] [,3]
pr.est2 36.89265 11.133870 62.65143
cor.est2 35.62909 7.702166 63.55602
因此,在我需要用大于100的值除以将速率限制在-1和1之间(例如,当速率在100s或1000s而不是10s时),这一切似乎都可以。当我这样做时,RMA估计可能会大不相同。例如将上述比率集除以100、1000或100,000所得的结果是:
[,1] [,2] [,3]
div100 35.62909 7.702166 63.55602
div1000 35.60032 7.695190 63.50545
div100000 25.47503 -21.306178 72.25625
当我需要汇总高度不同的费率时,情况就大不一样了。 (是的,我意识到总结异构数据可能是不明智的,但我想说明我的观点。)
rates4 <- c(26.50879, 853.48396, -142.67102, 371.09702, -632.73573, -497.44352)
pop4 <- c(48451, 1932, 30824, 3120, 36447, 16073)
div.cor5 <- 1000
dat.cor5 <- escalc(measure="COR", ri=rates4/div.cor5, ni=pop4, append=TRUE)
res.cor5 <- rma(yi, vi, data = dat.cor5)
pooled.dat.cor5 <- res.cor5$b+c(0,-1,1)*1.96*res.cor5$se
(cor.est5 <- pooled.dat.cor5 * div.cor5)
dat.cor6 <- escalc(measure="COR", ri=rates4/div.pr, ni=pop4, append=TRUE)
res.cor6 <- rma(yi, vi, data = dat.cor6)
pooled.dat.cor6 <- res.cor6$b+c(0,-1,1)*1.96*res.cor6$se
(cor.est6 <- pooled.dat.cor6 * div.pr)
给予
[,1] [,2] [,3]
cor.est5 -3.678168 -447.0409 439.6845
cor.est6 -229.202430 -759.0382 300.6333
因此,我决定使用measure="PR"
选项,将负值替换为0,但是我很想知道这些数据是否有更好的选项,以及为什么“ COR”选项会更改在很大程度上取决于除数。谢谢。