用R语言对网络数据进行统计分析(五)

时间:2022-09-16 01:44:50

R语言社交网络快速入门(一)(7天入门社交网络)
R语言社交网络快速入门(二)(7天入门社交网络)
R语言社交网络快速入门(三)(7天入门社交网络)
R语言社交网络快速入门(四)(7天入门社交网络)
R语言社交网络快速入门(五)(7天入门社交网络)

网络图特征的描述性统计

简介

在对给定的复杂系统的研究中,利益问题通常可以用作为对相应的网络图的结构或特征的某些方面的问题的方式来重新表述。例如,各种类型的基本社会动力学可以用三重顶点来表示;涉及信息或商品的移动的问题通常对应网络图的路径,沿着这些路径流动;对于单个系统元素的’重要性’的某些概念,可以通过’中心’对应网络的顶点;一个系统中搜索’社区’和类似类型的未指定的’组’通常可以作为一个图分区问题来解决。

在传统中,网络图的结构性分析主要作为一种描述性任务来处理,而不是推理任务,而用于此类目的的工具主要来自’主流’统计之外的领域。例如,这些工具中绝大部分是来自于图论和计算机科学。同样的,社会网络分析领域也是另一个重要来源,提供了用以获取社会结构和动态网络的基本面。最近,在物理学领域,尤其是在统计力学,新的工具被大量挖掘。

顶点和边的属性

由于网络图的基本元素是它们的顶点和边,因此有许多以这些为中心的网络特征。我们在这一节讨论了几个这样的描述。我们的展示是根据顶点度和那些一些更基本的概念(通常是顶点的中心度量)的特征来分解的。我们将探讨从顶点到边的规则扩展。

顶点的度数

这里我们用之前空手道的数据集举例。
用R语言对网络数据进行统计分析(五)

左图是度数的频率分布图,右图是强度的频率分布图。强度又被称为加权度数,顾名思义它是每个顶点邻近边的加权平均。这两张图都反映了空手道分裂成两派后,教练和管理者的频率和接近,其他的都是会员,强度图会更加明显。

再来看一下 在酵母中蛋白质对之间的相互作用网络
用R语言对网络数据进行统计分析(五)
从右边的图中可以看出,对数频率作为对数度函数存在一个相当线性的衰减。虽然我们可以用一个简单的线性归回得出一个简单的衰变率,但在这里举例,说明我们可以用一个稍复杂一点的方法得出更好的结论。

用R语言对网络数据进行统计分析(五)
除了度数分布本身,了解不同度数顶点之间联系是很有趣的,这导致我们给出了一个顶点的邻接平均度的概念。如上图所示,一个酵母的平均邻接度与顶点度的数据。表明了,虽然高度数的顶点更倾向于与他相似的顶点,低度数的顶点则与两者都保持了密切的关联。

中心性

这里我们引入三个不同的中心概念及其定义。
Closeness centrality 用来描述一个顶点与其他所有顶点的一种中心性。我们定义顶点v的中心性是他到其他顶点距离和的倒数。

c C l ( v ) = 1 u V d i s t ( v , u )

Betweenness centrality 基于两点来描述的中心性,其中 σ ( s , t ) 表示的是节点s和t之间的最短路径的数量,而 σ ( s , t | v ) 是最短路径中经过节点v的数量

c B ( v ) = s t v V σ ( s , t | v ) σ ( s , t )

Eigencentrality centrality 使用邻接矩阵来寻找特征向量的中心性

c E i ( v ) = α u , v E c E i ( u )

对于给定的图 G := ( V , E ) 同 V 顶点的数量 A = ( a v , t ) 是邻接矩阵,即 a v , t = 1 如果顶点v 链接到顶点t,和 a v , t = 0 除此以外。顶点的相对中心性分数 v 可以定义为:

x v = 1 λ t M ( v ) x t = 1 λ t G a v , t x t x v = 1 λ t M ( v ) x t = 1 λ t G a v , t x t

A x = λ x

一般来说,将会有许多不同的特征值 λ 为此存在非零特征向量解。由于邻接矩阵中的各项是非负的,因此Perron-Frobenius定理有一个唯一的最大特征值,它是真实的和正的。这个最大的特征值导致期望的中心性度量。所述的 v t h 第 相关特征向量的分量然后给出顶点的相对中心性分数v在网络中。特征向量只被定义为一个公共因子,因此只有顶点的中心性比率被很好地定义。为了定义绝对分数,必须对特征向量进行归一化,例如使得所有顶点的总和为1或顶点总数n。功率迭代是许多特征值算法之一,可以用来找到这个主导特征向量。此外,这可以被概括,使得在条目阿可以是代表连接强度的实数,如在一个随机矩阵。

下面我们用空手道的数据来展示一下三种中心性;
用R语言对网络数据进行统计分析(五)
用R语言对网络数据进行统计分析(五)
用R语言对网络数据进行统计分析(五)
用R语言对网络数据进行统计分析(五)

用R语言对网络数据进行统计分析(五)

用R语言对网络数据进行统计分析(五)

边的描述

到目前为止所讨论的所有处理都是对于顶点来说的,因为在实践中最常见的问题是关于图形顶点的重要性。但有些情况紧密的和边缘联系在一起。比如,我们可能会问,在社交网络中,哪些联系最重要的是信息或者谣言的传播。在中心度之间的边,通过给每条边赋值,反应最短路径的数量。我们继续以空手道数据为例,检查最大的三条边,我们注意到成员20在沟通John和Mr Hi之间起了重要作用(管理者和教练)。

R
eb <- edge.betweenness(karate)
E(karate)[order(eb,decreasing = T)[1:3]]
[1] Actor 20--John A   Mr Hi   --Actor 20 Mr Hi   --Actor 32

网络凝聚力

在网络工作中,许多问题归结为涉及网络工作内聚性的问题,即顶点的子集在多大程度上内聚(形象来说,就是粘在一起)。在社交网络中,你的朋友的朋友是否彼此之间也会成为朋友呢?细胞内的蛋白质集合是如何紧密结合在一起的?万维网的页面结构是否倾向于区分不同类型的内容?一个互联网拓扑结构的那一部分似乎构成了’主干’。

我们可以通过许多方式来定义网络内聚性。

子图和统计

定义网络聚合的一种方法是通过对特定子图的规范。这种子图的典型例子是一个小团体。对各种大小的小团体的统计可以提供一些关于图标结构的子图。

各种各样削弱了派系的概念存在。比如,一个拥有k-core图G的是一个G的子图,所有顶点的度都至少是k,并且没有其他子图遵循相同俄条件包含他。
核心的概念在可视化中也别受欢迎,因为它提供了一种将网络分解为层的方法。这样的分解可以以一种特别有效的方式组合在一个径向布局上。如下图所示。
用R语言对网络数据进行统计分析(五)

相对频率的密度和相关性

到目前为止所描述的网络内聚的特征首先说明了一种预先指定的子结构概念,然后观察它是否出现在图G中,如果有,那么接着观察它在哪里以及如何发生。一般说来,相对频率的相关概念可以在各个地方来应用。

图的密度是真实边相对于潜在边的频率。比如,一个无自环没有重边的无向图G,其中一个子图H 的密度定义如下:

d e n ( v ) = | E H | | V H | ( | V H | 1 ) / 2

d e n ( H ) 的值将介于0和1之间,衡量了H 距离一个小集团的接近程度。如果G是一个有向图,分母就用 | V H | ( | V H | 1 )

接下来我们将密度应用在空手道数据集中,可以明显地看到教练和管理员的子图与整个网络图相比,密度更高。

ego.instr <- induced.subgraph(karate,
+ neighborhood(karate,1,1)[[1]])
ego.admin <- induced.subgraph(karate,
+ neighborhood(karate,1,34)[[1]])
graph.density(karate)
[1] 0.1390374
graph.density(ego.instr)
[1] 0.25
graph.density(ego.admin)
[1] 0.2091503

相对频率也用于定义图中’聚类’的概念。比如,术语聚类系数的标准用法通常指的是数量。

c l γ ( G ) = 3 τ Δ ( G ) τ 3 ( G )

其中 τ Δ ( G ) 为图G的三角形数, τ 3 ( G ) 表示连通的三元组数(一个有两条边相连的三个顶点的子图)。 c l γ ( G ) 的价值被称为图的传递性,它是社会网络文学兴趣中的一个标准量。我们注意到 c l γ ( G ) 是一种全局聚类的度量方法,它总结了连接三元组与形成三角形的关系。比如,在空手道网络中,我们看到只有接近四分之一是以这种方式连接。

transitivity(karate)
[1] 0.2556818
局部模拟也可以应用相应的方法。 τ 3 ( v ) = ( d v 2 ) , τ Δ ( v ) ,局部的密度定义为 c l ( v ) = τ Δ ( v ) / τ 3 ( v ) ,我们可以看到局部的聚类效果只有整体的50%-60%
transitivity(karate,’local’,vids = c(1,34))
[1] 0.1500000 0.1102941

有向图所特有的概念是互惠,即在一个有向网络中,再关系中有相互作用的程度。有两种主要的方法来获取这一概念,区别在于计算相对频率的基本对象是成对边或者是有向边。在使用成对边作为单位的情况下,互惠被定义为有往复运动的成对边的数量;有向边除以一个单一的无往复边的成对边的数量。或者,互惠被定义成往复边的数量除以总数。

在艾滋病博客网络中,这两种定义的互惠性都非常低。

reciprocity(aidsblog,mode = ‘default’)
[1] 0.03243243
reciprocity(aidsblog,mode = ‘ratio’)
[1] 0.01648352

连通、切断、流动

一个基本的问题,一个给定的图是否可以分成不同的子图。如果不行,我们可以通过量化它尽可能地做到这一点。

通过之前的学习,我们已经了解如果每个顶点都可以从其他顶点访问,那么图G就是连同的。如果对于任意两个点,在两个顶点之间存在一条路径,并且图的连通分量是一个最大连通子图。通常情况下,图G中一个连通部分极大地影响着其他部分,因为包含了绝大多数的顶点,那么它就被称为最大连通分支(giant component)

比如,我们在酵母中的蛋白质相互作用网络并不是连通图,但通过统计显示,显然有一个巨大的连通分支包含了2375个顶点。

is.connected(yeast)
[1] FALSE
comps <- decompose.graph(yeast)
table(sapply(comps,vcount))
2 3 4 5 6 7 2375
63 13 5 6 1 3 1