R语言混合图形模型MGM的网络可预测性分析

网络模型已经成为抽象复杂系统,是深入了解许多科学领域中观测变量之间的关系模式的流行方法。

由Kaizong Ye,Sherry Deng撰写

最近我们被客户要求撰写关于网络可预测性的研究报告。这些应用程序大多数集中于分析网络的结构。但是,如果不是直接观察网络,而是根据数据进行估算(如:吸烟与癌症之间存在关联),则除了网络结构外,我们还可以分析网络中节点的可预测性。

当我们不直接观察网络本身,而是依赖数据来估算和理解网络中的关联和交互时,除了分析网络的结构特性,节点的可预测性同样是一个至关重要的方面。在这种情况下,数据成为了我们洞察网络动态和节点行为的关键工具。

节点的可预测性主要指的是根据已有数据和信息,预测网络中特定节点未来状态或行为的能力。在复杂网络中,每个节点可能代表一个实体(如人、组织或事件),而节点之间的连接则反映了这些实体之间的相互作用或关系。通过分析节点的历史数据和行为模式,我们可以揭示出节点的潜在规律,并据此预测其未来的变化。

也就是说:网络中的所有其余节点如何预测网络中的给定节点?

可预测性有趣,有几个原因:

  1. 它给我们提供了一个关于边的实用性的想法:如果节点A连接到许多其他节点,但是这些仅说明(假设)其方差的1%,那么边的连接会是怎样的?
  2. 它告诉我们网络的不同部分在多大程度上是网络中的其他因素决定的

在此博文中,我们使用R-估计网络模型并计算地震灾民数据集上的创伤后应激障碍(PTSD)症状。我们对网络模型和可预测性进行可视化,并讨论如何将网络模型和节点的可预测性相结合来设计症状网络的有效干预措施。

载入资料

我们加载提供的数据:

 
data <- as.matrix(data)
p <- ncol(data)
dim(data)
## [1] 312  17

数据集包含对344人的17种PTSD症状的完整反应。症状强度的答案类别范围从1“没有”到5“非常强”。 

估计网络模型


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

我们估计了混合图形模型,其中我们将所有变量都视为连续高斯变量。因此,我们将所有变量的类型设置为,type = 'g'并将每个变量的类别数设置为1:

 
fit_obj <- (data = data, 
               type = rep('g', p),
               level = rep(1, p),
               lambdaSel = 'CV',
               ruleReg = 'OR', 
               pbar = FALSE)

计算节点的可预测性

估计网络模型后,我们准备计算每个节点的可预测性。由于可以通过依次获取每个节点并对其上的所有其他节点进行回归来估计该图,因此可以轻松地计算节点的可预测性)。

作为可预测性的度量,我们选择解释的方差的比例:0表示当前节点根本没有被节点中的其他节点解释,1表示完美的预测。我们在估算之前将所有变量中心化,以消除截距的影响。

有关如何计算预测和选择可预测性度量的详细说明,请查看本文。如果网络中还有其他变量类型(例如分类),我们可以为这些变量选择适当的度量。

pred_obj <- predict(object = fit_obj, 
                    data = data
 
pred_obj$error
##     Variable    R2
## 1  intrusion 0.639
## 2     dreams 0.661
## 3      flash 0.601
## 4      upset 0.636
## 5    physior 0.627
## 6    avoidth 0.686
## 7   avoidact 0.681
## 8    amnesia 0.410
## 9    lossint 0.520
## 10   distant 0.498
## 11      numb 0.451
## 12    future 0.540
## 13     sleep 0.565
## 14     anger 0.562
## 15    concen 0.638
## 16     hyper 0.676
## 17   startle 0.626

我们计算了网络中每个节点的解释方差(R2)的百分比。接下来,我们将估计的网络可视化,并讨论与解释方差有关的结构。

可视化网络和可预测性

我们根据估计的加权邻接矩阵和节点的可预测性度量作为参数,进行网络可视化:

 
graph(fit_obj$pairwise$wadj, # 加权邻接矩阵作为输入
       layout = 'spring', 
       pie = pred_obj$error[,2], # 误差作为饼图的输入

有关早期研究不同心理障碍症状可预测性的文章,请参见本文


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds