问询2022年12月-2023年6月R中qgraph中心性计算是否变更
关于qgraph包中心性计算变更的分析及解决建议
1. 2022.12-2023.6期间qgraph的版本变更细节
在你提到的时间范围内,qgraph包推送了v1.9.2(2023-03-14)、v1.9.3(2023-05-09)等关键版本,其中预期影响力(Expected Influence)的计算逻辑明确做了调整:
- 旧版本里,预期影响力会纳入负连接的反向贡献,负边会拉低节点的EI值,所以取值范围能到[-2;1];
- 新版对EI做了重新标准化,把结果压缩到
[0;1]区间,同时调整了负边权重的处理逻辑,不再让负边导致指标出现负数。其他中心性指标的取值范围变化,多半也和这次标准化调整有关。
2. 缺失值出现的可能原因
结合你用的cor_auto()(来自psych包)和EBICglasso,缺失值的出现大概率和这两点有关:
- psych包的版本更新:如果同步更新了psych包,
cor_auto()的缺失值处理或相关系数计算逻辑可能有微调,导致后续EBICglasso拟合时部分变量被剔除; - qgraph中EBICglasso的默认参数变更:新版qgraph可能调整了正则化参数的阈值,弱连接的变量被进一步筛选,看起来像是“缺失”(实际是从网络里被移除了)。
3. 验证和解决的具体步骤
- 查更新日志:在R里运行
packageVersion("qgraph")查看当前版本,再用news(package = "qgraph")直接调取包的更新记录,重点看2023年3-5月的内容,里面会写清楚中心性计算的变更细节; - 复现旧版本结果:用
devtools::install_version("qgraph", version = "1.9.1")安装2022年底的稳定版,重新跑脚本对比,确认是不是版本变更导致的差异; - 核对参数一致性:确保脚本里
qgraph()、EBICglasso()、cor_auto()的所有参数(比如threshold、gamma、use这些)和旧环境完全一致,排除默认参数变动的影响; - 处理缺失值:如果是
cor_auto()输出的相关矩阵有缺失,可添加cor_auto(..., use = "pairwise.complete.obs")明确缺失值处理方式;如果是EBICglasso删除了变量,可调低gamma参数降低正则化强度。
内容的提问来源于stack exchange,提问作者Jurgita
相关产品推荐
相关产品推荐

