我在 R 中创建了五个估算数据集,并且正在使用该包MICE运行一些事后分析。lsmeans尽管 MICE 具有轻松合并和比较模型的强大功能(例如pool()和pool.compare()),但它们在这里不起作用。
这让我对如何汇集lsmeans为每个估算数据集计算的对比度感到困惑。我最终得到了一个包含五个lsmobj对象的列表,它们输出以下内容(当然,每个对象的值都略有不同):
[[1]]
contrast estimate SE df t.ratio p.value
tpol.tpole.post -12.523126 4.021919 360 -3.114 0.0037
tpol.tpole.fu -9.557416 4.542045 360 -2.104 0.0621
P value adjustment: mvt method for 2 tests
[[2]]
contrast estimate SE df t.ratio p.value
...
在进行一些基本的数据操作以将每个插补中的相应行组合成一个数据框列表后,我最终得到:
lsm.restruc
[[1]]
contrast estimate SE df t.ratio p.value
1 tpol.tpole.post -12.52313 4.021919 360 -3.113719 0.003718103
2 tpol.tpole.post -12.66746 4.056950 360 -3.122411 0.003650298
3 tpol.tpole.post -12.74482 4.087365 360 -3.118101 0.003681073
4 tpol.tpole.post -13.32695 4.009558 360 -3.323796 0.001839164
5 tpol.tpole.post -12.38995 4.045162 360 -3.062906 0.004383206
[[2]]
contrast estimate SE df t.ratio p.value
1 tpol.tpole.fu -9.557416 4.542045 360 -2.104210 0.06211271
2 tpol.tpole.fu -9.526316 4.524851 360 -2.105333 0.06277749
3 tpol.tpole.fu -8.240829 4.545330 360 -1.813032 0.11865308
4 tpol.tpole.fu -10.539075 4.508579 360 -2.337560 0.03500318
5 tpol.tpole.fu -9.791866 4.490159 360 -2.180739 0.05187948
什么是合并列以获得组合 β 估计值、SE 和显着性检验的合适方法?
让我们处理上面的第一个数据框以使其简单。
到目前为止,我的策略是使用MICEpool.scalar() 函数来组合估计:
lsm.1 <- lsm.restruc[[1]]
pooled.1 <- pool.scalar(lsm.1[,2], lsm.1[,3]^2, unique(lsm.1[,4]))
我对这种方法有三个问题:
1)pool.scalar需要一个方差向量作为第二个参数,所以我对 SE 估计值进行平方。这是有效的吗?
2)这里的样本量(第三个)参数应该基于什么?目前我直接从分析中输入dflsmeans,但这不是函数要求的样本大小,所以我怀疑合并的 df 将不正确。如何确定正确的样本量?例如,我的研究中有 183 名参与者,随机分为三组并在三个时间点进行评估,总共贡献了 549 个个人数据点。我是否指定了参与者的总数 (183)、单个数据点的总数 (549)、在此特定对比中比较的参与者数量 (123)、在此对比中比较的单个数据点的数量 (246)、或者别的什么......显然这里有点困惑。
另一个问题是如何汇集p值。我认为最好从合并的估计中计算一个新的p值,而不是尝试合并现有的p值。从pooled.1我得到一个调整后的df,并且可以计算一个新的t -statistic. 因此,为了获得一个新的p值,我运行:
pooled.p <- 2 * pt(-(abs(pooled.1$qbar / sqrt(pooled.1$t))), pooled.1$df)
# Bonferroni correction to match the original correction applied by lsmeans
pooled.p <- 2 * pooled.p
3) 上述逻辑或p值计算是否存在任何误解或错误?
任何指导或建议都将受到欢迎,尤其是围绕上述第二个问题。