Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:金钊 (中山大学岭南学院)
邮箱:jinzh27@mail.sysu.edu.cn
编者按:本文主要摘译自下文,特此致谢!
Source:Zekhnini M. Network regressions in Stata[C]//2021 Stata Conference. Stata Users Group, 2021 (17). -PDF-
目录
随着网络理论的发展,关于微观主体行为的研究开始越来越多的强调社会网络的重要性。具体地,过去相关研究在讨论微观个体行为时,均假设个体间是独立不相关的。然而,现代社会微观个体之间的关联日益密切。
为此,经济学家们引入网络理论 (Network Theory) 试图对该类社会现象进行解释。此时,在实证研究中就将面临一个难题:如何在回归中引入社交网络?
显然,传统的基于个体独立的实证方法将不再适用。空间计量方法为经济学家们提供了思路,他们运用空间计量模型来识别社交网络中的同群效应 (Peer Effect) (Bramoullé 等,2009;Grieser 等,2022)。
本推文将详细介绍 Zekhnini 等(2021)提出的 nwxtregress
命令,该命令主要适用于非平衡面板,且网络结构或空间权重矩阵具有时变特征的数据。
我们常见的面板的空间自回归模型 (Spatial Autocorrelation Model) 为:
传统空间自回归模型的空间权重矩阵是不随时间变化的。然而在现实中,微观个体间的相互关联是随着时间而变化的,即
为了去掉扰动项的空间自相关,可以对上式做准差分。此时,数据生成过程的简约模式如下:
需要注意的是,
上式暗含了该模型具有几何衰减传播 (Geometrically-Decaying Propagation) 的特征。我们可以把该模型解读为自身影响
此时,模型的偏导数为:
LeSage 和 Pace (2009) 提出偏导系数的解释可以划分为直接效应和间接效应:
我们可以在 SAR 模型中引入空间杜宾模型 (SDM):
若
目前,空间面板命令 spxtregress
和 xsmle
只能适用于平衡面板和非时变空间权重矩阵。Morad Zekhnini 等人开发的 nwxtregress
命令可以运用于非平衡面板和空间权重矩阵时变的情形,更为详细的介绍可参考「nwxtregress: Network Regressions in Stata」。
* 命令安装
net install nwxtregress, from(https://janditzen.github.io/nwxtregress/)
Spatial Autocorrelation Model (SAR)
nwxtregress depvar indepvars [if],
ivarlag(W1[, sparse timesparse mata id(string)])
[mcmcoptions nosparse]
Spatial Durbin Model (SDM)
nwxtregress depvar indepvars [if],
ivarlag(W1[, sparse timesparse mata id(string)])
dvarlag(Ws:varlist[, sparse timesparse mata id(string)]
[mcmcoptions nosparse]
其中,
nwxtregress
:仅适用于 SAR 和 SDM 模型;depvar
:被解释变量;indepvars
:解释变量;dvarlag
:空间滞后的被解释变量,可以支持多个和重复的空间权重矩阵;ivarlag
:空间滞后的解释变量;W1
和 Ws
:空间权重矩阵,默认为方形矩阵格式。ivarlag()
和 dvarlag()
的 options
:
frame(name)
:指定空间权重矩阵的形式,默认为方形矩阵格式,可以设定为稀疏形式或时变形式;mata
:指定权重矩阵为 mata 矩阵;sparse
:指定空间权重矩阵为稀疏矩阵;timesparse
:指定空间权重矩阵为稀疏矩阵且时变;id(string)
:指定时间变量、具有关联关系的个体;normalize(string)
:指定空间权重矩阵的标准化形式,详细设定形式可见「spmat creat」。一般 options
:
nosparse
:不将空间权重矩阵内部转换为稀疏矩阵;asarray(name)
:更改估计结果和信息的名称。MCMC
的 options
draws()
:griddy gibs 的取样次数,默认 2000;gridlength()
:网格长度,默认 1000;nomit()
:被删除的取样数,默认 500;barrypace(numlist)
:BarryPace Trick 的设定,默认 50 和 100;usebp
:使用 Barryface Trick 而不是 LUD 处理矩阵的逆;seed(#)
:设定抽样种子。计算总效应、直接效应和间接效应:
estat impact [varlist] [, options]
varlist
:指定需要计算的解释变量,默认计算所有的解释变量options
:包含 seeds()
和array(name)
估计后的预测:
predict [type] varname [, options]
xb
:计算线性预测;res
:计算残差。nwxtregress
的空间权重矩阵的形式主要有三种:
0 0.1 0.2 0
0 0 0.1 0.2
0.3 0.1 0 0
0.2 0 0.2 0
Destination Origin Flow
1 2 0.1
1 3 0.2
2 3 0.1
2 4 0.2
3 1 0.3
3 2 0.1
4 1 0.2
4 3 0.2
Time Destination Origin Flow
1 1 2 0.1
1 1 3 0.2
1 2 3 0.1
1 2 4 0.2
1 3 1 0.3
1 3 2 0.1
1 4 1 0.2
1 4 3 0.2
(next time period)
2 1 2 0.1
2 1 3 0.4
2 2 3 0.1
2 2 4 0.4
2 3 1 0.9
2 3 2 0.1
2 4 1 0.4
2 4 3 0.4
我们使用 Zekhnini (2021) 提供的示例数据集 IO.dta 和 VA.dta。IO.dta 数据集包含了 1997-2019 年美国各行业使用 (USE) 和制造 (MAKE) 的产品的数据。为了建立行业之间的联系,他们将这些产品看作是其在行业之间的流动 (Flow),并以此构建空间权重矩阵。VA.dta 为美国企业层面的数据。运用两个数据集,我们分析补偿金和净盈余对资本消耗的影响。
首先,我们提取 1998 年的截面数据,构建一个方阵形式的空间权重矩阵 WSpmat
。
. * 导入数据
. use "https://janditzen.github.io/nwxtregress/examples/IO.dta", clear
. /* 变量说明
> buyer_industry :购买方
> seller_industry :出售方
> ID1 :购买方的id
> ID2 :出售方的id
> sam :交易量
> */
. keep if Year == 1998 // 保留1998年的数据
. replace sam = 0 if sam < 0 // 交易量为负的变量设置为0
. replace sam = 0 if ID1==ID2 // 保证对角线为0
. keep ID1 ID2 sam // 保存数据
. reshape wide sam, i(ID1) j(ID2) // 转换数据排列形式,纵变横
. spset ID1 // 指定为空间数据
. spmatrix fromdata WSpmat = sam*, replace // 根据数据集中的变量生成空间权重矩阵
接着,我们提取 VA.dta 数据,估计非时变空间权重矩阵下的 SAR 模型。在进行估计之前,需要先安装 moremata
命令,以保证该命令的顺畅运行。
. xtset ID Year // 设定面板数据
Panel variable: ID (unbalanced)
Time variable: Year, 1998 to 2019, but with a gap
Delta: 1 unit
. spset ID // 设定空间数据
(data are not strongly balanced; run spbalance)
Sp dataset: va.dta
Linked shapefile: <none>
Data: Panel
Spatial-unit ID: _ID (equal to ID)
Time ID: Year (see xtset)
Coordinates: <none>
. nwxtregress cap_cons compensation net_surplus, dvarlag(WSpmat) seed(1234)
Number of obs = 1363
Panel Variable (i): ID Number of groups = 63
Time Variable (t): Year Obs. of group: 22
min = 5
avg = 22
max = 22
R-squared = 0.77
Adj. R-squared = 0.77
-------------------------------------------------------------------------------
cap_cons| Coef. Std. Err. z P>|z| [95% Conf. Interval]
---------------+---------------------------------------------------------------
compensation| -.7198294 .0122852 -58.59 0.000 -.7673457 -.6796333
net_surplus| -.7596348 .0142442 -53.33 0.000 -.8048452 -.7084874
_cons| .7214424 .0117858 61.21 0.000 .68282 .766456
---------------+---------------------------------------------------------------
WSpmat |
cap_cons| .1213355 .0251213 4.83 0.000 .038 .202
---------------+---------------------------------------------------------------
/sigma_u| .002958 .000112 .0026109 .0033606
-------------------------------------------------------------------------------
上面的结果显示空间自回归系数在
. estat impact
Average Impacts Number of obs = 1363
-------------------------------------------------------------------------------
cap_cons| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
---------------+---------------------------------------------------------------
direct |
compensation| -1.913991 .4786752 -4.00 0.000 -4.064068 -.8469636
net_surplus| -2.019859 .5054806 -4.00 0.000 -4.245732 -.8834585
---------------+---------------------------------------------------------------
indirect |
compensation| 1.094091 .4545737 2.41 0.016 .0853722 3.122538
net_surplus| 1.154618 .4798387 2.41 0.016 .0890508 3.262116
---------------+---------------------------------------------------------------
total |
compensation| -.8198999 .0273082 -30.02 0.000 -.9415295 -.7382084
net_surplus| -.8652407 .0296407 -29.19 0.000 -.983616 -.7706425
-------------------------------------------------------------------------------
我们继续检验时变权重矩阵的情况。此时,我们需要构建新的空间权重矩阵,并将其命名为 IO
。然后,运用 IO
矩阵估计时变 SAR 模型。
. frame create IO //创建时变的空间权重矩阵
. * 运用IO数据集创建空间权重矩阵
. frame IO: use "https://janditzen.github.io/nwxtregress/examples/IO.dta"
. nwxtregress cap_cons compensation net_surplus, dvarlag(sam, frame(IO) ///
> id(Year ID1 ID2) timesparse) seed(1234)
Number of obs = 1363
Panel Variable (i): ID Number of groups = 63
Time Variable (t): Year Obs. of group: 22
min = 5
avg = 22
max = 22
R-squared = 0.77
Adj. R-squared = 0.77
-------------------------------------------------------------------------------
cap_cons| Coef. Std. Err. z P>|z| [95% Conf. Interval]
---------------+---------------------------------------------------------------
compensation| -.7270558 .0121453 -59.86 0.000 -.7736677 -.6874203
net_surplus| -.7661228 .0140726 -54.44 0.000 -.8100804 -.7154614
_cons| .7281612 .0114999 63.32 0.000 .6903187 .7720147
---------------+---------------------------------------------------------------
sam |
cap_cons| .1129735 .0247994 4.56 0.000 .03 .193
---------------+---------------------------------------------------------------
/sigma_u| .0029633 .0001124 .002616 .0033666
-------------------------------------------------------------------------------
在 dvarlag()
中,第一项是空间权重矩阵中的关联变量,第二项是空间权重矩阵,第三项是指定空间权重矩阵中关联对象 id()
,由于是时变的矩阵,因此包含三项:时间,来源地、目的地 (即生产方和消费方)。最后,矩阵是时变的需要指定 timesparse
。我们还可以把该矩阵导入 mata 中,构建一个 mata 矩阵 Wt
。
. frame IO: putmata Wt = (Year ID1 ID2 sam), replace
. nwxtregress cap_cons compensation net_surplus, ///
> dvarlag(Wt, mata timesparse) seed(1234)
最后,我们可以在以上模型中加入 ivarlag()
,就可以估计 SDM 模型。
. nwxtregress cap_cons compensation net_surplus, dvarlag(Wt, mata timesparse) ///
> ivarlag(Wt: compensation, mata timesparse) seed(1234)
Number of obs = 1363
Panel Variable (i): ID Number of groups = 63
Time Variable (t): Year Obs. of group: 22
min = 5
avg = 22
max = 22
R-squared = 0.77
Adj. R-squared = 0.77
-------------------------------------------------------------------------------
cap_cons| Coef. Std. Err. z P>|z| [95% Conf. Interval]
---------------+---------------------------------------------------------------
compensation| -.6952461 .0125736 -55.29 0.000 -.7427079 -.649156
net_surplus| -.7428038 .0141965 -52.32 0.000 -.7879067 -.6917178
_cons| .7684855 .0142525 53.92 0.000 .7242406 .8139682
---------------+---------------------------------------------------------------
Wt |
cap_cons| .039009 .0289965 1.35 0.179 -.048 .129
compensation| -.0898353 .0174214 -5.16 0.000 -.1550298 -.0253126
---------------+---------------------------------------------------------------
/sigma_u| .0029072 .0001131 .0025408 .003339
-------------------------------------------------------------------------------
以上的回归中只包含了一个空间权重矩阵,我们可以构建两个时变的空间权重矩阵加入回归方程中。
. mata: Wt2 = Wt[selectindex(Wt[.,4]:>2601.996),.] // 生成 Wt2 矩阵
. nwxtregress cap_cons compensation net_surplus, ///
> dvarlag(Wt, mata timesparse) ///
> ivarlag(Wt: net_surplus, mata timesparse) ///
> ivarlag(Wt2: compensation, mata timesparse) ///
> seed(1234)
Number of obs = 1363
Panel Variable (i): ID Number of groups = 63
Time Variable (t): Year Obs. of group: 22
min = 5
avg = 22
max = 22
R-squared = 0.77
Adj. R-squared = 0.77
-------------------------------------------------------------------------------
cap_cons| Coef. Std. Err. z P>|z| [95% Conf. Interval]
---------------+---------------------------------------------------------------
compensation| -.7009335 .0137442 -51.00 0.000 -.7456487 -.6560701
net_surplus| -.7475387 .0148767 -50.25 0.000 -.7958839 -.6960453
_cons| .6908152 .0157555 43.85 0.000 .6272978 .742689
---------------+---------------------------------------------------------------
Wt |
cap_cons| .132362 .0266373 4.97 0.000 .046 .233
net_surplus| .0730267 .0193825 3.77 0.000 .0029279 .1501232
---------------+---------------------------------------------------------------
Wt2 |
compensation| .0006659 .0071 0.09 0.925 -.0260179 .0229685
---------------+---------------------------------------------------------------
/sigma_u| .0029302 .0001123 .0025453 .0033302
-------------------------------------------------------------------------------
上式中,两个解释变量的权重不一致。我们可以进一步分析直接效应、间接效应和总效应。
. estat impact
Average Impacts Number of obs = 1363
-------------------------------------------------------------------------------
cap_cons| dy/dx Std. Err. z P>|z| [95% Conf. Interval]
---------------+---------------------------------------------------------------
direct |
compensation| -.7009335 .0137442 -51.00 0.000 -.7456487 -.6560701
net_surplus| -.7475387 .0148767 -50.25 0.000 -.7958839 -.6960453
---------------+---------------------------------------------------------------
indirect |
compensation| .6908152 .0157555 43.85 0.000 .6272978 .742689
net_surplus| .0006659 .0071 0.09 0.925 -.0260179 .0229685
---------------+---------------------------------------------------------------
total |
compensation| -.0116701 .0089471 -1.30 0.192 -.0394202 .0193187
net_surplus| -.8616318 .0325265 -26.49 0.000 -.9834741 -.7587489
-------------------------------------------------------------------------------
该模型还可以用于预测,并且预测值会生成新的变量储存在 dta 文件中。
. predict xb //计算线性预测
. predict residuals, residual // 计算残差
Note:产生如下推文列表的 Stata 命令为:
lianxh 空间计量, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh