症状网络笔记 · 互动页
这一页用一份 500 人、16 个症状的模拟数据,从中抽出不同人数后重新估计网络。人数越少,网络上留下的边越少:抽 100 人时,200 次抽样有 139 次一条边也估不出来。中心性排名的变化更隐蔽:抽 300 人时,整体排序已经和 500 人的结果高度相关,排第一的症状却还在换。
线越粗,两个症状的偏相关绝对值越大;圆越大,症状的强度越高。点一条线或一个症状可以看数字。
右侧写的是这个症状比 500 人时的名次上升或下降了几位。强度为 0 的症状并列,不写名次变化。
500 人时排第一的是呼吸困难(强度 0.646),端坐呼吸只差 0.010(0.636)。点一行可以切换到那个人数。
深色线是相关系数的平均值。浅色带的下沿表示 95% 的抽样都高于它,下沿还没有低于 0.7 的最后一档,就对应 CS 系数。一条边也没有的抽样算不出相关系数,按没有达到 0.7 计算,所以人少时下沿会掉出图外。点图上任意位置可以看那一档的数字。
EBICglasso 会把证据不足的边压成 0。人越少,证据越少,被压掉的边就越多。这份数据的 500 人网络有 24 条边,抽 300 人时平均留下 12.4 条,约为一半;抽 400 人时平均留下 19.9 条。所以样本小时看到的稀疏网络,不一定说明症状之间的关系少,也可能是证据不够。
CS 系数看的是全部症状的强度和原网络的相关,不看某一名是否换人。抽 300 人时,200 次里有 199 次相关系数达到 0.7,但排第一的症状有 133 次是端坐呼吸,63 次是呼吸困难,而 500 人的网络里排第一的是呼吸困难。这两个症状的强度只差 0.010,名次本来就容易互换。因此 CS 系数达标后,还要看排在前面的症状原始强度差多少,再看差异检验,才能判断第一名是否真的领先。CS 系数达标也不等于边留得住:这份数据的 CS 系数对应保留约 242 人,而抽 200 人和抽 300 人时,500 人网络的边平均只留下 24% 和 52%。
同一份数据、同样的设置,只换随机种子连续跑 8 次,有 5 次是 0.516,3 次是 0.438,一边高于 0.5,一边低于 0.5。原因是 bootnet 默认只检查 10 档人数,1000 次抽样分到每一档只有约 100 次,把握接近 95% 的那一档就可能这次过、下次不过。所以 CS 系数刚好高于或低于 0.5 时,不宜看成两种性质不同的结果,论文里应写明 bootstrap 次数。上面那张图来自另外一次运行,读数也是 0.516。
这是模拟数据,网络的强弱和症状多少不同,结果也会不同。每批人都从同一份 500 人的数据里抽取,人数越接近 500,和完整样本重叠越多,所以 400 人留下的边会偏多。500 人的网络也只是一次估计,并不等于真实网络。要估计自己的研究需要多少人,应当根据预期网络做样本量模拟。
算法:EBICglasso,相关矩阵用 cor_auto,gamma 取 0.5,每种人数不放回抽 200 次,页面可翻其中 20 批;CS 系数用 bootnet 1.9.1 个案剔除 1000 次。数据是模拟的,不来自真实患者。
CS 系数的定义和 0.25、0.5 两个参考值出自 Epskamp S, Borsboom D, Fried EI. Estimating psychological networks and their accuracy: A tutorial paper. Behavior Research Methods, 2018, 50(1): 195-212。原文说明这两个参考值有一定随意性。