我有以下数据结构,大约。研究i = 50,实验j = 75和条件k = 200。
在级别k我有相关的措施。对于大约 20 项研究(25 个实验和 65 个条件),我有关于主题级别的数据并计算了方差 - 协方差矩阵。对于其余部分,我根据估计的相关性(针对受试者和条件)计算了一个方差-协方差矩阵。最后,我有一个完整的kxk方差-协方差矩阵V。
为了尊重数据的多级结构,我让每个研究中的每个实验中的每个条件都使用非结构化方差-协方差矩阵具有其独特的协方差(请参阅详细信息 - 指定随机效应)。请注意,我不是 100% 确定这种推理,或者一般推理/反对多级模型中的方差 - 协方差假设结构。所以我很高兴收到一些关于这方面的想法/文献......
我现在想进行一个多元(多级)随机效应模型:
rma.mv(
yi = yk
, V = V
, random = list(~ exp_j | stu_i,
~ con_k | exp_j)
, struct = "UN"
, method = "REML"
, test = "t" ## slightly mimics knha
, data = dat
, slab = con_k
, control=list(optimizer="optimParallel", ncpus=32)
)
当在完整的数据集上运行时,计算在几分钟内达到 128GB(!)的 RAM,并且在某些时候 R只是终止而没有错误消息。
1)我拥有的数据量是否可以预期?
使用原始数据的子集运行相同的模型(即i = 20、j = 25和k = 65,我只是在没有估计方差 - 协方差矩阵的情况下抓取数据)可以正常工作并达到 ~20GB RAM 的顶部。
我看到了metafor 包的tipps 部分以及注释rma.mv()
中的优化选项。2)在我的场景中,切换到Microsoft R Open或其他算法(没有并行化?!)是否合理?
请注意,上面的模型不是我要进行的最终模型。尚未包括版主。其他模型应包括主持人的回归项。它会变得更加复杂,我想......
我在 x86_64-pc-linux-gnu(64 位)上运行 R 版本 3.6.3(2020-02-29):Ubuntu 18.04.5 LTS。Metafor 的版本为 2.4-0。
最佳乔纳斯