本文简要介绍一下网络分析,我想提供一些有关“友谊悖论”的R语言例证。友谊悖论指出
平均而言:你的朋友 比你拥有更多的朋友
例如,这在 Feld(1991),Zuckerman&Jost(2001)中进行了讨论。首先,让我们获取数据集的副本
可下载资源
library(networkD3)
simpleNetwork(data[,1:2]
社会网络分析是社会科学领域的叫法。类似的东西在物理和计算机领域叫复杂网络。在数学领域叫做图论。也有一些学者叫网络科学。基本的东西都类似,但关注的点不同。就和一个男人有时是爸爸,有时是儿子,有时是孙子。
最早的溯源可以归到哥尼斯堡七桥问题。莫雷诺在上世纪初开始将可视化和类似的网络分析技术应用在分析社会现象上,比如女生的午餐关系。之后生物领域和社会领域分别独立发展出比较完善的分析技术。集大成者是Harvard的Harrison White,许多之后著名的学者都是他的徒子徒孙。
很难说Social Network Analysis是一门特定的学科。更多的应用是作为一种研究方法,有时候也会作为一种研究视角(perspective)。当然,也产生了一些中层的理论(theory),比较常见的是Granovetter的弱联系理论,Burt的结构洞理论,Watts的小世界模型,Barabasi的Power Law。
之前的社会科学往往关注个体(或者行动者,如企业、个人)的特性,而忽略个体之间的关系。而社会网络的研究正是研究关系的方法、视角。最大的特征在于考虑了个体之间的互相依赖,更接近于现实社会。将这些关系用如题头所示的图片展示出来,可以直观的看到各个行动者在网络中的位置和网络整体结构。看着很炫、很高级。
可以从以下三个方面定义一个网络:
1,行动者(actors)。比如人组成的网络,班级组成的网络,学校组成的网络。
2,联系(ties)。图形中往往用边来表示。比如人和人的友谊、借贷关系。企业和企业间的合作关系。国家和国家的敌对关系。
3,边界。这些行动者和边需要确定一个界限,比如知乎内的用户,比如政府单位内,比如同性恋群体。
有了这三个部分,我们就可以从日常生活中的各个方面抽取出各种不同的网络。比如知乎用户间的点赞和评论关系网。班级内的朋友网络等。然后用一系列的指标去观察这些网络对网络中的行动者的影响,或者这些网络形成的原因。
复杂网络(complex network)和SNA往往使用相同的分析软件和可视化技术。不过更偏向于理工科,如计算机和物理。他们更关注网络的结构,而不关注行动者的性质。但最近几年两者的研究开始互有交叉,在我看来,综合起来叫网络科学(network science)更合适一些。
网络分析给我们提供了一个看待已有事物的新视角。可视化技术让它看起来更容易,也更cool。我在之后的专栏中会分享一些经典文献、案例、软件的使用和自己的一些研究。
考虑无向图中的顶点v∈V,G =(V,E)(使用经典图形符号),并令d(v)表示它的边数(即v具有d(v)个朋友)。图中随机人的平均好友数为
从而,
方差分解
回到我们的网络。节点列表是
rbind(as.matrix(GoT[,1:2]),as.matrix(GoT[,2:1])
unique(M[,1]
我们每个人都可以得到朋友列表和朋友数量
as.character(M[which(M[,1]==x),2]
Vectorize(function(x) length(friends(x)
以及朋友拥有的朋友数量,以及平均的朋友数量
(Vectorize(function(x) length(friends(x)))(friends(y
Vectorize(function(x) mean(friends_of_friends(x
我们可以查看一个随机节点的朋友数量的密度,
lines(density(Nb),col="red",
lines(density(Nb2),col="blue",
我们还可以计算平均值
mean(Nb)
[1] 6.579439
mean(Nb2)
[1] 13.94243
因此,实际上,人们平均拥有的朋友少于他们的朋友。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!