查看原文
其他

R语言随机指数图分析:statnet

连享会 连享会 2023-10-24


👇 连享会 · 推文导航 | www.lianxh.cn

连享会 · 效率分析专题

作者:郑晓雪 (南开大学)
邮箱:1547241075@qq.com

温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:


目录

  • 1. 简介

  • 2. 理论背景

  • 3. R 语言实操

    • 3.1 命令简介

    • 3.2 命令实操

  • 4. 参考资料

  • 5. 相关推文



1. 简介

复杂网络理论的基础点是图论,主要研究方法是梳理各要素在网络中的地位和各要素之间的关系。其中以节点代表要研究的要素,以边表示要素之间的关系。社会网络分析的精髓之处在于,从网络成员之间的关联角度出发,能够将分析视角扩展至社会现象乃至社会结构 (Borgatti 和 Foster,2003)。

指数族随机图模型 (ERGM) 越来越多地应用于社会网络的研究。ERGM 是为了解释网络的全局结构,同时允许在微观层面上对联系预测进行推断。例如为什么一些点之间会有链接?为什么某些点在网络中处于中心地位,其他点处于外围?为什么一些网络紧密相连,而另一些则稀疏?

2. 理论背景

ERGM 的目的是识别影响节点间关系创建的原因,即在给定一定数量的变量的情况下,评估两个节点之间连接的概率。在ERGM中,我们可以发现两种类型的解释变量:结构变量 (structural variables) 和节点或边缘变量 (node or edge-level variables)。后者来自其他数据来源,可以是年龄、公司规模、邻近程度、性别等等。结构变量可以包含三元闭包、度分布和子图等指标。

ERGM 区别于传统回归模型的是,在研究网络连边的影响因素时不用考虑变量的独立性假设,经过估计、诊断、仿真等一系列步骤,使得模拟网络无限趋近于真实网络,极大地减小了模型预测误差。ERGM 通常使用的参数估计方法为马尔可夫链蒙特卡洛最大似然估计。

我们注意到 是一个图, 有两个节点存在于图中。如果 在图 中链接到 ,写成 ,如果这两个节点之间没有链接,则写成 。此外,我们注意到 是一个参数向量, 是一个包含变量的向量。我们假设链接的概率受不同变量的影响。我们感兴趣的是确定每个变量对链接概率的影响程度。研究概率的一种普遍方法是逻辑回归,优点是确保计算值保持在 0 和 1 之间。ERGM 的形式为:

其中, 表示在给定节点下观测到的真实网络,当任意两个节点 之间有连边时,则 ,否则 表示模型的待估参数,包括网络内生结构变量、外生情景变量和行动者属性变量。 表示对节点集合 上所有可能的网络求和,是确保等式是合法概率分布的归一化因子。通常使用赤池信息 (AIC) 准则和贝叶斯 (BIC) 信息准则来评判模型的拟合程度。被解释变量是一个网络出现的概率,解释变量是一系列影响网络形成的变量。 

3. R 语言实操

3.1 命令简介

Statnet 是 R 中构建社会网络并进行分析的程序包,里面包括 NETWORK、IGRAPH、ERGM 等。ERGM 的被解释变量是真实的网络结构,解释变量可以分为网络结构、节点属性和外部网络等,网络结构如节点连接数、中心性、互惠性、闭合性等,节点属性为 GDP、人口等节点固有属性,外部网络可以是地理距离等网络。

ergm(
formula,          # 研究对象,形式为y~,y为要研究的网络
response = NULL,  # ERGM是字符、01 (默认) 还是其他,默认为0-1
reference = ~Bernoulli, # 指定要使用的参考度量 (h (y)) 的单边公式 constraints = ~.,  
                        # ERGM中对模拟的网络的约束条件默认为~,即无约束模型。
offset.coef = NULL,
target.stats = NULL,  # “观察到的网络统计数据”的向量,
                      # 如果这些统计数据与网络的实际统计数据不同,则该向量是模型的平均值参数值。
eval.loglik = getOption("ergm.eval.loglik"),  # 不需要似然值 (以及基于似然的值,如AIC和BIC),
                                              # 设置为FALSE可能会加快性能;默认为TURE
estimate = c("MLE""MPLE""CD"),  # 选择估计方式,默认MLE
control = control.ergm(),           # 算法调整的控制参数列表,使结果可复制
verbose = FALSE,                    # 需要输出的数据,默认为F/0,运算会快,最大可设置为5
...,
basis = ergm.getnetwork(formula)
)

有关 ERGM 包中实现的约束,请参阅 ERGM 约束文档。其他包可能会添加自己的约束 (要保证真实的网络符合限制条件)。网络结构 (边、互惠性、中心性、发送者效应、接受者效应、DSP、ESP等) 有多种形式,本文只模拟了边和互惠性,其他网络结构的估计同理,但网络结构在实际中赋予的含义更为重要。

3.2 命令实操

下面基于命令进行相应的实际操作和结果解读。

library(statnet)
xz <-read.csv("xz.csv")    # 被解释变量,真实网络
xzs <-read.csv("xzs.csv")  # 外生属性值,如GDP等
xznet <- as.network(xz,matrix.type="edgelist")
plot(xznet)

本图为 0-1 联系的社会网络图,从图中可以看出,该网络图具有互惠性 (双边联系)、传递性 (三角形) 等网络特征,且该友谊网络节点间联系较为紧密。

set.vertex.attribute(xznet,"hispanic",xzs$hispanic)
set.vertex.attribute(xznet,"female1",xzs$female1)
set.vertex.attribute(xznet,"eversmk1",xzs$eversmk1)
# 给每个节点赋予属性值,如GDP、人口等
mode <- ergm(
xznet ~
nodematch("hispanic") +  # 加入节点的属性
nodematch("female1") +
nodematch("eversmk1") +
mutual ,                 # 互惠性——结构效应
constraints = ~bd(maxout = 19),  # 最大度链接
control = control.ergm(
seed  = 1,         # 随机数设置
MCMLE.maxit = 10,  # 每步基于当前样本的最大值
parallel  = 4,     # 并行计算
CD.maxit  = 10  
)
)

上述是模拟的模型,其中 edges 是 ERGM 模型中常数项,一般不予解释。nodematch.hispanic 负向显著,说明 hispanic 低的个体更容易与外界产生网络连接,femaleleversmkl 同理。Mutual 估计系数为正,说明两点间具有互惠性,即 A 对 B 发生关系,B 也倾向于对 A 发生关系。以国际贸易为例,即表示若 A 国对 B 国出口,往往可以促进 B 国对 A 国的出口。

# 模型诊断
mcmc.diagnostics(mode4)  # 采用蒙特卡洛模拟与真实网络的分布比较

由于之前 parallel 并行为 4,所以每个模拟中有 4 条线。从图中看出,hispanicfemale1 的曲线最高点不在图中的中线处,因此拟合程度不好;而 eversmk1 的曲线最高处基本均在图的中线处,因此拟合程度较好。

# 数据拟合
gof <- gof(mode4)
plot(gof)  # 拟合优度检验

从图中可以看出,曲线 (拟合) 与蓝色点 (真实网络) 有所出入,因此本网络拟合程度不好。

4. 参考资料

  • Borgatti S P, Foster P C. The network paradigm in organizational research: A review and typology[J]. Journal of management, 2003, 29(6): 991-1013. -PDF-
  • Hunter D R, Handcock M S, Butts C T, et al. ergm: A package to fit, simulate and diagnose exponential-family models for networks[J]. Journal of statistical software, 2008, 24(3): nihpa54860. -PDF-
  • the statnet website -Link-
  • network: Classes for Relational Data -Link-
  • 许银银. 多行业增加值对国际贸易网络形成机理的研究[D]. 浙江大学, 2020. -Link-

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 网络, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:Stata教程
    • Stata:社会网络分析
  • 专题:Stata命令
    • Stata:社会网络分析命令-nwcommands
  • 专题:Stata资源
    • Stata帮助和网络资源汇总(持续更新中)
  • 专题:回归分析
    • Stata:时变参数的网络分析-nwxtregress
  • 专题:其它
    • 人工神经网络与Stata应用

课程推荐:因果推断实用计量方法
主讲老师:丘嘉平教授
🍓 课程主页https://gitee.com/lianxh/YGqjp

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【**百度一下:**连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存