R语言metafor包运行regtest出现零除错误的解决方案咨询
报错根因
该报错与效应值数值大小无关,核心触发原因是你定义的se向量中存在0值项:
你的代码中se <- c(1,3,2,4,0,3)的第5个元素为0,regtest调用的rma模型默认采用逆方差加权,抽样方差为标准误的平方,0值方差会导致计算权重时出现除零错误,对应你收到的警告信息中「存在非正抽样方差」的提示。
修复方案
- 优先方案:检查数据录入错误
真实研究场景下抽样标准误为0是不符合逻辑的异常值,先核对原始研究的统计结果,将该位置的标准误修正为正确数值后即可正常运行代码。 - 次选方案:删除异常数据
若无法获取该研究的正确标准误,可以直接剔除这条异常数据后再运行检验:library("metafor") value <- c(0.0001,0.0003,0.0002,0.0009,0.002) se <- c(1,3,2,4,3) data <- data.frame(value, se) regtest(x = data$value, sei = data$se, model="rma") - 特殊场景方案:保留异常数据调整检验逻辑
如果你必须保留全部数据,可以关闭逆方差加权逻辑,调整代码如下:
注意:该调整会改变检验的统计假设,结果解释需要格外谨慎。regtest(x = data$value, sei = data$se, model="rma", weighted = FALSE)
内容的提问来源于stack exchange,提问作者vojtam
相关产品推荐
相关产品推荐

