r - R metafor - 为什么使用默认权重与将权重设置为 1/方差时结果不同?
问题描述
我正在使用 metafor 包来执行元回归。我的模型/代码的形式是:
rma.mv(yi = data_mean, V = data_variance, random = ~ 1 | study_id/arm_id, data=mydata, mods = ~ mod1 + mod2 + mod3)
我的印象是默认权重是逆方差。但是,我注意到如果我将参数“W = 1/data_variance”添加到上面的代码中,它会产生不同的结果(而不是不指定 W)。为什么是这样?
虽然我在这里,但我还想确认 VI 应该使用 (标准误差)^2 而不是 (标准差)^2 - 对吗?(似乎“方差”可以指两者,这令人困惑!)
解决方案
默认情况下,rma.mv()
(and rma.uni()
) 使用模型隐含的观察结果的方差-协方差矩阵的逆矩阵作为权重矩阵。对于简单的固定效应或随机效应模型,模型隐含的方差-协方差矩阵分别沿对角线与V
或对角线。V + tau^2
因此,逆也与对角线对角线1/V
或1/(V + tau^2)
沿对角线对角线。
您在研究级别和手臂级别使用具有随机效应的更复杂模型。因此,模型隐含的结果的 var-cov 矩阵不是对角矩阵,因此其逆矩阵也不是对角矩阵。因此,如果您强制使用1/V
权重(沿对角线变成对角权重矩阵1/V
),则您使用的权重矩阵与默认使用的权重矩阵完全不同。
至于你的第二个问题:V
对应于估计的平方标准误。这些也称为估计的“抽样方差”。
推荐阅读
- aws-cdk - AWS-CDK 单元测试和集成测试
- c++ - 如何获取结构内数组的地址?
- c++ - OpenCV 读取 RGB 值。每次运行的值都不一致
- android - 在没有应用更新的情况下在移动设备上更新 Tensor Flow Lite 模型?
- netbeans - Netbeans:是否可以使用 CLI 创建项目
- ember.js - setupController 不适用于 hasMany 数据
- json - Openlayers - 调用 json 文件时获取 404
- testing - 如何在 Flutter 集成测试中切换开关
- c - 如何获取用户输入以在 C 中打开文件?
- tensorflow - 当我处理超过 1.5 Gig CSV 时,张量流数据验证在 4 核机器上崩溃