R用于社会网络分析
- 格式:pdf
- 大小:380.34 KB
- 文档页数:9
一、社会网络社会网络(Social Network ,又称人际网络) ,实质上就是为达到特定目的,人与人之间进行信息交流和资源利用的关系网,是一个由某些个体或组织间社会关系构成的动态的系统[ 3 ] 。
社会网络理论是在20 世纪50 、60 年代出现的,长期以来,主要用于社会学问题的研究。
70 年代,社会网络理论研究拓展到其他领域,并涌现出一批颇有影响的研究成果。
当前有影响力的社会网络理论观点主要有:1、以科尔曼(Coleman J . ) 和普特南(Put nan R. ) 为代表的“社会资本”(Social Capital) 理论,普遍公认的社会资本观点认为:社会资本是指个体或组织能够从其有的关系网络中获取的实际或潜在资源的总量,或者说是个体或组织与其他个体或组织之间形成的相对持久的联系以及依靠这种联系来获取资源的能力总和。
2、以格兰诺维特( Granovet ter Mark) 为代表的“弱关系优势理论”( The St rengt h of Weak Ties) :提出社会网络中的弱关系力量假设,认为:在社会网络中,个体或组织之间由于交流和接触而实际存在一种纽带关系,这种关系可以分为强关系、弱关系两种类型。
3、以罗纳德·伯特(BurtR. ) 为代表的结构洞( St ructure Holes) 理论结构洞理论的主要代表人物美国社会学家罗纳德·伯特(Burt . R) 于1992 年首次明确指出,无论是个人还是组织,其社会网络均表现为两种关系:一是网络中的任何主体与其他主体都发生联系,不存在关系间断现象,从整个网络来看就是“无洞”结构,这种形式只有在小群体中才会存在;二是网络中的某些主体与部分主体发生直接联系,但与其他主体不发生直接联系,这种不发生直接联系或关系中断的现象,从网络整体来看,好像网络结构中出现了洞穴,因而称作“结构洞”[ 7 ] 。
如图1 所示,A、B、C 都与甲联系,但是三者彼此没有直接联系,只能通过甲取得联系,这样甲就拥有三个结构洞,而a 、b 、c 不必经过乙就可以取得联系,乙就不具结构洞。
r语言圆形分布法圆形分布法是一种常用的统计分析方法,主要用于描述和分析数据的分布情况。
它通过计算一组数据点到某个中心点的距离,进而确定数据点在空间中的分布特征。
本文将介绍圆形分布法的基本原理、应用场景以及如何使用R语言进行分析。
一、基本原理圆形分布法是基于数据点到某个中心点的距离来刻画数据的分布情况。
它假设数据点在空间中服从均匀分布,并且以中心点为圆心、一定距离为半径绘制圆形。
通过计算每个数据点与中心点的距离,可以得到一组距离值。
然后,可以根据距离值的分布情况来推断数据的分布特征。
二、应用场景圆形分布法广泛应用于各个领域的数据分析中,如生态学、地理学、社会科学等。
它可以用于研究物种分布的规律性、社会网络的结构特征、地理现象的空间分布等。
在生态学中,圆形分布法常用于分析生物种群的空间分布,以揭示物种的生态习性和种群动态变化。
在地理学中,圆形分布法常用于分析城市的空间分布和交通网络的布局。
三、使用R语言进行分析R语言是一种广泛应用于数据分析和统计建模的编程语言,具有丰富的统计函数库和绘图功能,非常适合进行圆形分布法的分析。
下面以一个简单的示例来说明如何使用R语言进行圆形分布的分析。
我们需要准备一组数据,这里假设我们要分析某个城市的住宅分布情况。
我们可以随机生成一组坐标数据,表示住宅的位置。
```R# 生成随机坐标数据set.seed(123)x <- runif(100, min = 0, max = 100)y <- runif(100, min = 0, max = 100)data <- data.frame(x, y)```接下来,我们需要定义中心点和半径的值。
中心点可以是任意一个坐标点,这里我们选择数据中的一个点作为中心点。
半径的值可以根据实际需求来确定,一般情况下可以根据经验或者分析目的来选择。
```R# 定义中心点和半径center <- c(50, 50)radius <- 30```然后,我们可以计算每个数据点与中心点的距离,并进行分类。
社交网络分析技术的使用教程与关系预测算法社交网络分析技术(Social Network Analysis,SNA)是一种研究人际关系网络中的个体以及这些个体之间的联系的方法。
它通过对社交网络中的节点(个体)和边(联系)进行分析,探索社会结构和人际关系的模式、特征和发展,从而揭示了社交网络的运行规律和影响因素。
本文将为您介绍社交网络分析技术的使用教程和关系预测算法。
首先,我们将介绍社交网络分析的步骤和方法。
社交网络分析的第一步是数据收集,可以通过调查问卷、社交媒体平台或者其他途径获取。
收集到的数据需要包含个体的属性信息以及个体之间的联系信息。
第二步是网络建模,即将数据转化为网络图的形式。
在网络图中,个体被表示为节点,联系被表示为边。
第三步是网络分析,通过计算节点的度中心性、接近中心性、媒介中心性等指标,了解网络中的重要个体和关系。
第四步是社区检测,通过算法将网络中具有紧密联系的节点划分为不同的社区,揭示社会结构和集群关系。
最后一步是可视化,将网络图和分析结果可视化展示,更直观地理解网络结构和关系。
在社交网络分析中,关系预测是一个重要的应用方向。
关系预测算法通过已有的节点和联系信息,预测新节点之间的联系。
其中常用的算法包括基于相似度的算法、基于概率图模型的方法以及基于潜在空间模型的算法。
基于相似度的算法通过计算节点属性之间的相似度来预测联系,如共同好友算法和Adamic/Adar算法。
基于概率图模型的方法则将联系看作是节点之间的随机变量,通过建立概率模型预测联系的存在概率,如贝叶斯网络模型和条件随机场模型。
基于潜在空间模型的算法则假设节点存在于某个潜在空间中,通过计算节点在潜在空间中的距离来预测联系,如嵌入模型和随机游走模型。
除了关系预测算法,社交网络分析还可以应用于社交影响力分析、信息传播研究以及社会网络营销等领域。
社交影响力分析旨在识别和衡量网络中的关键节点以及它们对网络的影响程度,帮助企业和组织找到合适的营销策略和目标受众。
社会关系网络的相关理论综述-经济社会学论文-社会学论文——文章均为WORD文档,下载后可直接编辑使用亦可打印——一、社会关系、网络及社会关系网络的内涵关于社会关系的理论,国内外学者有不同的理解。
但对社会关系作出透彻深刻的分析,应是马克思莫属。
马克思指出:人的本质不是单个人所固有的抽象物,在其现实性上,它是一切社会关系的总和。
①即是说,无数个体的人组成了人类社会,是形成社会关系的细胞和源泉。
在漫长的人类历史发展过程中,人类在征服自然、改造自然的同时,也与共同处于一个自然环境中的其他人或其他群体和组织逐渐形成了错综复杂的关系。
不同个体的人组成了人类社会,个体的人在各种社会生活(包括经济、、法律等范畴)中与人类社会建立的关系即为社会关系。
需要注意的是,这里所指的个体的人是广义的个体的人,即是说个体的人既可以指单个内在生命物质本体与特定的大脑意识本体构成整体的自然人②,也可以指单一的进行各种社会活动(包括经济、、法律等范畴)的主体,如企业,政府、组织、机构以及党派等。
社会关系有很多类型。
马克思、恩格斯将物质关系和思想关系看作社会关系的两种基本类型。
人们在生产活动及其他社会活动中形成的、不依人们的意识和意志为转移的必然联系称为物质关系;而通过人们的意识形成的关系为思想关系,它反映了物质关系。
而社会学认为社会关系的类型是:(1)按关系领域划分,可以分为经济关系即生产关系及关系和法律关系。
(2)按关系主体划分,可以分为个人、群体、阶级、民族以及国家内部及相互之间的关系。
(3)按关系矛盾的性质划分,可以分为对抗性关系和非对抗性关系。
(4)按关系建立的基础划分,可以分为血缘关系、地缘关系和业缘关系,等等。
随着人类社会进入信息化时代,网络这一概念在数学、物理、计算机等各种学科领域被频繁地界定和使用。
数学把网络定义为一种特定的加权图,物理学则认为网络是用数学中的图论来表达及研究的并从某种相同类型的实际问题中抽象出来的模型。
linton角名词解释(一)Linton角名词解释什么是Linton角Linton角是指Linton R. Freeman在1978年提出的社会网络分析领域中的一个重要概念。
它是用来描述社会网络中不同节点之间的关联强度的指标。
同伴(peer)同伴是指社会网络中具有相同属性或者功能的节点。
在学生社会网络中,同一个年级的学生可以被视为同伴。
朋友(friend)朋友是指社会网络中有着密切联系的节点。
在社交媒体中,我们通常会将那些互相关注的用户视为朋友。
邻居(neighbor)邻居是指社会网络中相互连接的节点。
在城市社会网络中,邻居通常是指住在同一片区域的居民。
接触(contact)接触是指两个节点之间有过直接或间接的交流或互动。
在研究传染病传播的社会网络中,接触可以表示两个人之间曾经近距离接触过。
友好度(affinity)友好度是指社会网络中两个节点之间的亲近程度或者关系紧密程度。
在营销学中,研究人员可以通过测量消费者对品牌的评价和忠诚度来衡量友好度。
影响力(influence)影响力是指社会网络中某个节点对其他节点的影响能力。
在社交网络营销中,公司可以借助具有高影响力的用户来传播广告和宣传信息。
关键节点(key node)关键节点是指社会网络中具有重要地位或者对网络结构影响较大的节点。
在信息传播研究中,关键节点往往指的是可以迅速将信息传递给整个社会网络的节点。
密度(density)密度是指社会网络中与总可能联系相比,实际联系存在的占比。
在朋友圈社交网络中,密度可以反映出朋友圈成员之间的交流频繁程度。
中心性(centrality)中心性是指社会网络中一个节点的重要程度或者影响力。
常用的中心性指标包括度中心性、接近中心性和媒介中心性等。
以上是关于Linton角名词解释的一些示例,这些概念能够帮助我们更好地理解和分析社会网络中的关系和结构。
R 用于社会网络分析:探索人人网好友推荐系统2011/04/28 陈逸波版权声明:本文版权归原作者所有,未经许可不得转载。
原文可能随时需要修改纰漏,全文复制转载会带来不必要的误导,若您想推荐给朋友阅读,敬请以负责的态度提供原文链接;点此查看如何在学术刊物中引用本文最近四五年间,互联网行业似乎总是绕不开社交网络这个概念。
无论是旗舰级别的传说中的facebook 、LinkedIn ,还是如雨后春笋般冒出来的各种团购和微博网站,全都或多或少地体现着SNS (社会网络服务)的特色。
这些五花八门的产品,在丰富我们业余生活的同时,也为研究者提供了大量珍贵的数据。
以往只能依靠有限的调研或模拟才能进行的社会网络分析(SNA ),现在具备了大规模开展和实施的条件。
国内著名而典型的SNS 网站“人人网”,最近依靠上市新闻重新赢得了大家的关注。
本文基于人人网的好友关系数据,应用统计分析软件R 做了社会网络分析的一些尝试。
注:网络边界的确定,是社会网络分析的关键而困难的步骤。
由于数据获取的限制,本文分析的对象限制于我的好友。
也就是说,本文分析的网络是我自己的好友圈子,读者看了这些分析结果或许会觉得索然无味,感兴趣的同学可以分析一下自己的社交网络,看看是否会有类似的结果。
一、读取数据之所以选择人人网作为分析的对象,很重要的一点原因在于其数据获取较为便利。
本文读取数据的过程借助了一款命令行浏览器cURL ,这个浏览器在R 中可以用RCurl 包实现,简要的中文介绍建议参考medo 的《R 不务正业之RCurl 》。
通过RCurl 的简单编程,我们可以在R 中实现登录人人网、发布状态以及读取页面数据等功能。
人人网好友列表页面的url 为/GetFriendList.do?curpage=0&id=****,其中curpage 为页码参数,id 为相应的用户。
通过对id 与curpage 做简单的循环,我读取了自己(陈逸波)的所有好友以及好友的好友。
(读取数据的R 代码见文末附件。
)用上述代码读取到的数据集记为net.1,该数据有如下的格式:1 2 set.seed(13)net.1[sample(1:nrow(net.1), 10), ]u0 id0 u1 id168282 沈叶 229657865 邢凤婷 23838256019358 吴昊宸 115975869 吴玥 25010613518406 叶敏佳MO 小沫 222288430 官兴华 325034377782 李彬 54598688 鱼化石 32398444257464 牛智 1411553595 谢諹 2213892951833 马天云 23157153 张立 227738255222150 刘雯欢 227317115 李嫣 334590411278125 陈长虹 236145500 李利文 249059215135239 高涛 248013976 宋阳阳 24719654418214 蒋鸿章 35702214 华明明 226037245其中,第一行数据表示“沈叶”与“邢凤婷”是好友关系,id0与id1为相应的用户id 。
需要注意的是人人网中不可避免地会出现同名用户的情况,因此id 才是用户的唯一标识。
二、绘制简单的好友关系网络图本文分析的焦点集中于我的好友之间形成的网络,因此考虑做网络图来直观地展示网络的结构。
首先,从上述读取到的数据集中筛选出希望分析的子集。
这个子集包含了两个条件:(1)网络中没有我自己(否则会呈现以我为中心的分布,失去了分析的意义);(2)网络中的用户都是我自己的好友。
1 2 net.1.1 = net.1[net.1[, 1] != "陈逸波", ]net.1.2 = net.1.1[net.1.1[, 4] %in% net.1.1[, 2], ]因为我的好友中不存在同名的现象,可以直接使用用户名,否则需要对同名用户做一定标记或者直接用id 来做后续的分析。
1 f f = net.1.2[, c(1, 3)]然后就是直接利用igraph 包的做图功能绘制相应的网络图。
1 2 3 4 5 6 7 8 9 10 library(igraph) gg = graph.data.frame(d = ff, directed = F) ## 去掉重复的连接 gg = simplify(gg) ## png("net.png", width = 500, height = 500) par(mar = c(0, 0, 0, 0)) set.seed(14) plot(gg, layout = layout.fruchterman.reingold, vertex.size = 5, bel = NA, edge.color = grey(0.5), edge.arrow.mode = "-") ## dev.off()从图中可以直观地看出,我的好友网络存在一定的人群分割,可以尝试对这个网络进行一些分析以提取出其中相对独立的子群(或者称为社群)。
三、子群分割信息的分类和过滤是社会网络服务的一项特征,例如人人网对好友关系有一套自己的分类方式,用户可以自行对好友进行分组,从而对信息的收发做分组的管理。
但是作为用户却未必能够养成并保持这种分组的习惯(例如我自己就从来没有对好友做过分组)。
与此同时我们揣测,作为真实关系的线上反映,人人网的好友网络是能够自动呈现出一定的人群分割的,而在社会网络分析中,对网络成分的分析也确实是一项重点。
通过分析网络的结构,提取出其中的子群,能够让我们更好地理解这个网络的组成方式,从而更好地管理和利用信息流。
寻找子群的算法有很多,igraph包提供了若干函数以实现对网络子群的搜索,本文采用了其中的munity()函数,更多细节及其他算法可以查看帮助文档。
为了在网络图中展示这些子群,我们采用不同的颜色来标记他们。
1 2 com = munity(gg, steps = 6)sg = data.frame(name = com$labels, sg = com$mem + 1)3 4 5 6 7 8 9 10 11 12 13 14 15 16 subgroup = vector("list", length(unique(com$mem)))for(i in 1:length(unique(com$mem))){subgroup[[i]] = as.character(sg[sg[, 2]== i, 1])}rm(i)## subgroupV(gg)$sg = com$mem + 1V(gg)$color = rainbow(max(V(gg)$sg))[V(gg)$sg]## png("munity_1.png", width = 500, height = 500) par(mar = c(0, 0, 0, 0))set.seed(14)plot(gg, layout = layout.fruchterman.reingold, vertex.size = 5, vertex.color = V(gg)$color, bel = NA, edge.color = grey(0.5),edge.arrow.mode = "-")## dev.off()从图中可以直观地看出好友网络已经被划分为若干相对独立的子群。
这也与我们对人人网(尤其是其前身校内网)的直观理解相符合——人人网的好友关系基本都是真实线下关系的反映,很自然地可以划分为初中同学、高中同学、大学同学,等等(例如网络的上半部分为小学及中学的同学,下半部分为大学同学,而左侧的五个节点,那是统计之都的同学们。
)。
具体地看一下划分得到的子群,就能够更好地理解子群的含义。
我挑出了比较典型的几个子群,其中包括:“实验室同学”(子群9)1 s ubgroup[[9]][1] "周莉" "杨志昌" "潘伟" "卢进文" "胡刚"“校内论坛上某版版友”(子群7)1 s ubgroup[[7]][1] "曲文君" "翟传鑫" "梁玮" "单广宇"[5] "花木马leeear" "王昉" "李典" "陈侃"[9] "王祎萍" "牛智" "郗旺" "何志嵩"“高中学弟学妹”(子群11)1 s ubgroup[[11]][1] "邹舒怡" "封启云" "何非" "朱亚希" "陈平"[6] "洪怡君" "程功" "李常然" "朱燕^^Jue" "周飏 Ivy"“统计之都”(子群8)1 s ubgroup[[8]][1] "魏太云" "邓一硕" "吴云崇" "高涛" "统计之都"其他子群还包括“大学同学(数学系)”、“大学同学(非数学系)”等等,不一而足(甚至能够区分高中的不同班级的同学)。
因此可以认为上述算法得到的子群划分是合理且有意义的。
更进一步地,可以对照网络图来考察各个子群成员的分布情况。
例如大学数学系同学(下方蓝色点)的链接较为紧密,而非数学系的大学同学(主要是校内论坛上的朋友,下方红色点)的分布则相对分散。
通过网络密度可以定量地印证这一点: 1 2 3 4 5 6 7 8 9 10## 数学系sg10=subgraph(gg,V(gg)[sg==10])## 非数学系sg1=subgraph(gg,V(gg)[sg==1])graph.density(gg)## [1] 0.06376068graph.density(sg10)## [1] 0.5883441graph.density(sg1)## [1] 0.1223607四、起到中介作用的那些好友在社会网络分析中,对节点的中介作用有一个经典的刻画叫做“中间度”。
中间度衡量了节点作为中介的程度,当网络中某个个体的中间度较大时,我们认为它在很大程度上起到了中介和沟通的作用。