中国有两句古话:“物以类聚人以群分”和“近朱者赤近墨者黑”。这两句话在近二十年突然被全世界的心理学家奉为经典,并且为它们起了国际通用的名字:前者叫社会选择(social selection),后者叫社会影响(social influence)。
生活中常见的一个现象是一个人有某种行为或表现出某种特征,那么这个人的朋友也会有同样的行为或者特征。这样的行为或属性有很多,比如吸烟、饮酒、肥胖等等。心理学家感兴趣的是到底是什么原因导致了这样的现象:是具有相同相同行为或属性的人由陌生变成了朋友(社会选择),还是本来不抽烟的人被抽烟的朋友所改变(社会影响)?见下图:
社会选择示意图 社会影响示意图为了解答上述问题,心理学家对社会网络进行了多次观测,并记录网络中的关系和个体的行为。通过对比每两次连续观测间关系和行为的变化就能够对社会选择和社会影响进行分析。
虽然理论上如此,但是实际操作起来却没那么简单。首先要解决的问题是如何用数学形式来表示关系。最直观的方式是采用列表(arc list)的形式,对每个个体进行编号,最左边一列按顺序列出所有个体,随后列出其所有的朋友,类似于茎叶图,如下图:
列表示意图我们在数据收集的时候往往采用的就是这种模式。但是对于统计计算来说,这并不是一个好的方式,而是把列表转换为矩阵的形式。我们把表示关系网络的矩阵叫做邻接矩阵(adjacentmatrix)。邻接矩阵是一个方阵,大小等于网络中个体的数目。其元素为0和1,0表示关系不存在,1表示关系存在。一般朋友网络为有向网,所以朋友网络的邻接矩阵是不对称的。另外朋友网络也不允许提名自己(自环),所以对角线的元素都为0。
邻接矩阵示意图由于临街矩阵的行数和列数都等于网络中的人数,而行为或者属性变量也可以写成矩阵形式,并且行数同样等于人数。如果是性别这类恒定(不考虑少数医学情况)的行为(或属性),那么就是一个单列的矩阵,如果是会随时间变化的行为(或属性),比如身高、体重、情绪等,那么矩阵的列数就等于观测次数。这样就可以把每个人的关系和行为(属性)对应起来,并进行复杂的数学计算。
现在比较常用的是一种叫做SIENA(simulation investigation of empirical network analysis)的分析方法。它已经由一个单独的软件变成了一个集成在R中的包(RSiena)。关于RSiena的一些基本介绍可以参看我的另一篇文章:钟摆:社会网络分析:RSiena使用介绍。
下面对SIENA的统计思路进行简单的介绍:首先需要介绍两个概念,比率函数(rate function)和目标函数(objective function)。网络的演化和行为的演化都同时包含这两个函数。比率函数描述的是变化的频率,目标函数描述的是变化的方向。目标函数可以视为各种效应(effect)的线性组合,每个效应( )都表示一个约束条件,效应的系数()可以视为约束的强度,它的一般形式可以表示如下:
网络目标函数 行为目标函数目标函数包含哪些效应是由研究者自己设定的(理论驱动或者数据驱动),SIENA则是对效应的系数进行估计以及对系数的显著性进行推断。SIENA会为每一个效应先赋一个初始的系数,然后根据观测值进行反复的迭代来修正系数,直至模型最优。最后会对最终的模型进行拟合优度的检验。
以上笔者从研究问题引入,简单介绍了SIENA的数据格式和算法逻辑。欢迎感兴趣的读者深入交流!
网友评论