You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于显著性检验在qgraph中抑制边时的报错与方案咨询

搞定qgraph显著边绘制的问题

嘿,我来帮你梳理下你遇到的这个问题:

为啥会报错?

你用graph = "sig"参数时触发的报错其实很直白——qgraph的graph参数根本没有"sig"这个可选值!它只接受报错提示里列的那些选项:'default', 'cor', 'pcor', 'assosciation', 'concentration', 'glasso' or 'factorial'。大概率是你把其他工具的参数或者qgraph里的其他功能记混啦~

正确绘制仅显著边的方法

其实你现在用的OmitInsig = T完全不是临时方案,它就是qgraph官方推荐的过滤不显著边的标准方法之一!除此之外还有更灵活的手动处理方式,给你两种选择:

方法1:用OmitInsig+pmat(最省心)

当你传入相关矩阵(比如你的gm_cor)时,只要搭配pmat参数传入对应的p值矩阵,再打开OmitInsig = TRUE,qgraph就会自动帮你把不显著的边去掉:

# 假设你已经计算出了对应的p值矩阵gm_p
qgraph(gm_cor, pmat = gm_p, OmitInsig = TRUE, layout = "spring", diag = FALSE)

要是没传pmat,qgraph会自动基于样本量估算显著性,但更建议你手动传入自己计算的p值矩阵,结果会更精准。

方法2:手动构建仅含显著边的矩阵(自由度更高)

如果你想自己掌控哪些边保留,可以先把不显著的边对应的相关系数设为0,再传入qgraph绘制:

# 设定显著性阈值,比如0.05
sig_threshold <- 0.05
# 把p值大于阈值的边对应的相关系数置为0
sig_only_cor <- gm_cor
sig_only_cor[gm_p > sig_threshold] <- 0
# 绘制仅含显著边的网络图
qgraph(sig_only_cor, layout = "spring", diag = FALSE)

这种方法适合你需要自定义阈值或者对边做额外筛选的场景。

总结一下

graph="sig"不是qgraph的合法参数,这就是报错的核心原因。而你目前用的OmitInsig = T完全是正式且靠谱的方案,放心用就好啦~

内容的提问来源于stack exchange,提问作者herbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:39:33