👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:最新专题 | 计量专题 | 关于连享会
🍓 课程推荐:2024 空间计量专题
主讲老师:范巧 (兰州大学)
课程时间:2024 年 10 月 2-4 日 (三天)
课程咨询:王老师 18903405450(微信)
课程特色 · 2024空间计量:
👉 一、从“零基础”到“高水平”的课程设计
兼顾基础知识、主流模型与前沿模型 既考虑软件安装、程序编写以及空间权重矩阵设计等 基础知识 讲授,更强调时空面板地理加权回归模型、贝叶斯空间计量模型、矩阵指数模型、空间计量交互模型与空间面板似不相关回归模型等 前沿模型 的传授。
👉 二、“保姆级”的空间计量代码
编写与校准所有模型的MATLAB代码,简化实操环节 模型的估计与检验等 仅按照提供的Excel数据版式 搜集与整理原始数据,即可一次性出结果并作图。
👉 三、“最多上新” 的内容体系
新增 矩阵指数模型、短面板空间似不相关模型、空间计量交互模型、贝叶斯空间计量模型等 新增 前沿应用案例,包括空间计量与索洛余值法、随机前沿分析与数据包络分析等的互嵌研究,阐释基于空间计量的产业空间结构优化评价方法。 新增 Dagum空间基尼系数、核密度估计、空间马尔科夫链与空间收敛性等内容,阐释现实研究中对空间收敛性的应用“谬误”。
原文:How to create animated graphics to illustrate spatial spillover effects
中文版PPT 在线浏览
6 March 2018
作者:Di Liu, Senior Econometrician[1]
目录
SAR 模型
建立SAR模型
空间溢出
SAR 模型与空间溢出
为溢出效应创建动态图形
小结
这篇文章展示了如何创建动画图形,以展示空间自回归(SAR)模型生成的空间溢出效应。阅读本文后,您可以创建如下的动态图形。
后文包括三个部分:首先,介绍如何估计 SAR 模型的参数;其次,解释 SAR 模型为什么可以产生空间溢出效应;最后,展示如何创建一个动态图形来说明空间溢出效应。
SAR 模型
我想分析一下德克萨斯州各县的凶杀率与失业率的关系。我猜想一个县的凶杀率会对邻近县的凶杀率造成影响。
我想回答两个问题:
如何构建这样一个模型,在这个模型中明确的允许一个县的凶杀率依赖于邻近县的凶杀率。 根据这个模型,如果“达拉斯”(德克萨斯州的一个城市)的失业率上升到 10%,那么与达拉斯县邻近的县的凶杀率将如何变化呢?
建立SAR模型
首先,考虑标准线性模型,即某一个县 的凶杀率 是该县失业率线性函数
SAR 模型构建了某一个县 的凶杀率 依赖于其邻近县的凶杀率。此时,需要一些新的符号来定义 SAR 模型。具体的,如果区域 和区域 相邻,则设 为正数,如果两者不相邻,则 为 0 。由于区域 不可能和自己相邻,所以当 时, 也为 0。
有了这个符号,构建某一个县 的凶杀率依赖于其邻近县凶杀率的 SAR 模型可以写成
其中, 定义了第 个县和第 个县的邻近程度。 是县 的邻近县的凶杀率的加权总和,它表示邻近县的凶杀率对县 凶杀率的影响。
将每个县 的邻近县的信息按 叠加得到一个矩阵 ,矩阵记录了每个县的邻近县的信息,矩阵称为空间加权矩阵。
我们所使用的空间加权矩阵具有特殊的结构;每个元素要么是值 ,要么是 0,其中 。这种空间加权矩阵称为 归一化邻近矩阵。
在 Stata 中,我们使用 spmatrix
命令来创建空间加权矩阵,并使用 spregress
命令来拟合截面 SAR 模型。
首先,我从 Stata 网站下载美国各县谋杀率的数据集,并创建一个仅保留德克萨斯州各县数据的子样本。
. /* Get data for Texas counties' homicide rate */
. copy http://www.stata-press.com/data/r15/homicide1990.dta ., replace
. use homicide1990
(S.Messner et al.(2000), U.S southern county homicide rates in 1990)
. keep if sname == "Texas"
(1,158 observations deleted)
. save texas, replace
file texas.dta saved
直观地,指定所有地域的地图边界的文件被称为shape文件。我们需要从 Stata 网站下载与数据集texas.dta 相匹配的shape数据集 homicide1990_shp.dta
,这个数据集记载了德克萨斯州所有县的地图边界信息。然后,我们使用spset
命令,将数据集 texas.dta 与 shape 数据集 homicide1990_shp.dta 相关联,即将其设定为空间数据。
. /* Get data for Texas counties' homicide rate */
. copy http://www.stata-press.com/data/r15/homicide1990_shp.dta, replace
. spset
Sp dataset texas.dta
data: cross sectional
spatial-unit id: _ID
coordinates: _CX, _CY (planar)
linked shapefile: homicide1990_shp.dta
然后使用 spmatrix
命令创建一个标准化的空间权重矩阵。
. /* Create a spatial contiguity matrix */
. spmatrix create contiguity W
根据上述数据和空间权重矩阵,可以估计模型参数。
. /* Estimate SAR model parameters */
. spregress hrate unemployment, dvarlag(W) gs2sls
(254 observations)
(254 observations (places) used)
(weighting matrix defines 254 places)
Spatial autoregressive model Number of obs = 254
GS2SLS estimates Wald chi2(2) = 14.23
Prob > chi2 = 0.0008
Pseudo R2 = 0.0424
------------------------------------------------------------------------------
hrate | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
hrate |
unemployment | .4584241 .152503 3.01 0.003 .1595237 .7573245
_cons | 2.720913 1.653105 1.65 0.100 -.5191143 5.960939
-------------+----------------------------------------------------------------
W |
hrate | .3414964 .1914865 1.78 0.075 -.0338103 .7168031
------------------------------------------------------------------------------
Wald test of spatial terms: chi2(1) = 3.18 Prob > chi2 = 0.0745
空间溢出
现在我们准备解决第二个问题,利用上文提到的 spregress
命令估计的结果计算空间溢出效应,具体可以分三步进行:
利用原始数据预测谋杀率。 将达拉斯("Dallas")的失业率改为 10% 并再次预测谋杀率。 计算两次预测之间的差异并绘图。
. preserve /* save data temporarily */
. /* Step 1: predict homicide rate using original data */
. predict y0
(option rform assumed; reduced-form mean)
. /* Step 2: change Dallas unemployment rate to 10%, and predict again*/
. replace unemployment = 10 if cname == "Dallas"
(1 real change made)
. predict y1
(option rform assumed; reduced-form mean)
. /* Step 3: Compute the prediction difference and map it*/
. generate double y_diff = y1 - y0
. grmap y_diff, title("Global spillover")
. restore /* return to original data */
上面的图表显示,达拉斯失业率的变化,不仅影响了达拉斯本地区的谋杀率,也影响了与达拉斯相邻的地区的谋杀率。也就是说,达拉斯的变化波及到附近的县,这种影响被称为溢出效应。
SAR 模型与空间溢出
在本节中,我将说明为什么SAR模型会产生溢出效应。在此过程中,我提供了一个用于创建动画图形的效果公式。SAR 模型的矩阵形式是
求解的值
给定的值下的平均值,被称为在的条件下的期望。因为 独立于, 在下的条件期望是
注意,由于是一个向量,这个条件期望公式指定了德克萨斯州每个县的平均值。
我们使用这个等式来定义,当 从一组值变化到另一组值后, 的变化效果。具体而言, 为来自原始观察数据中的协变量值;将 中达拉斯的失业率修改为 10%,其余数据均保持不变,即为 。通过这种表示,我们计算从 到 的改变所引起的德克萨斯州每个县的平均谋杀率的变化。
其中,。
接下来,我们以 SAR 模型为基础,构造用于产生动图的表达式。SAR 模型之所以被广泛使用,正是因为它们满足稳定条件。这种稳定条件表明逆矩阵 可以写成指数大小逐渐减小的各项之和。这个条件即为:
将公式 (2) 代入公式 (1),得到
这即为生成动态图形效果的表达式。
公式 (3) 中的每一项都很直观,这在我们所展示的案例中很容易解释:
第一项 () 是初始效应变化,它只影响达拉斯地区的凶杀率。 第二项 () 是达拉斯地区凶杀率的变化对其邻居的影响。 第三项 () 是达拉斯地区凶杀率的变化对达拉斯邻居的邻居的影响。依次类推,可以得到其他变量的含义。
为溢出效应创建动态图形
我现在描述如何生成动态图。每个图使用公式 (3) 中每一项子集绘制变化图。第一个图仅显示第一个项计算的变化。第二个图仅显示从第一项到第二项计算的变化。第三个图仅显示从第一项到第三项计算的变化,以此类推。
代码的前四个步骤执行以下操作。
计算并绘制 。 计算并绘制 。 计算并绘制 。 计算并绘制 。
步骤 5 到 20 执行类似的操作。最后,结合步骤 1 到步骤 20 中的图形,创建一个动态图形。下面的代码展示了此过程:
1 /* get estimate of spatial lag parameter lambda */
2 local lambda = _b[W:hrate]
3
4 /* xb based on original data */
5 predict xb0, xb
6
7 /* xb based on modified data */
8 replace unemployment = 10 if cname == "Dallas"
9 predict xb1, xb
10
11 /* compute the outcome change in the first step */
12 generate dy = xb1 - xb0
13 format dy %9.2f
14
15 /* Initialize Wy, lamWy, */
16 generate Wy = dy
17 generate lamWy = dy
18
19 /* map the outcome change in step 1 */
20 grmap dy
21 graph export dy_0.png, replace
22 local input dy_0.png
23
24 /* compute the outcome change from step 2 to 11 */
25 forvalues p=1/20 {
26 spgenerate tmp = W*Wy
27 replace lamWy = `lambda'^`p'*tmp
28 replace Wy = tmp
29 replace dy = dy + lamWy
30 grmap dy
31 graph export dy_`p'.png, replace
32 local input `input' dy_`p'.png
33 drop tmp
34 }
35
36 /* convert graphs into a animated graph */
37 shell convert -delay 150 -loop 0 `input' glsp.gif
38
39 /* delete the generated pgn file */
40 shell rm -fR *.png
此代码使用由 spregress
命令估计过程中所产生的 ereturn 类的返回值及其相应的 predict命令。
第 2 行将 的估计值放在局部暂元 lambda 中。 第 5, 7, 8 和 9 分别计算 和 下的 ,并将其存储在 xb0 和 xb1 中。 第 12 行计算 () 并将其存储在 dy 中。 第 16 行和第 17 行存储当 时 和 的初始值。 第 20-22 行生成动态图中的第一个图。当全部代码完成时,局部暂元 input 将包含用于创建动态图形中的每一张图形。 第 25-34 行计算并绘制剩余项目的图形。第 26 行使用 spgenerate
命令计算 。第 27-33 行执行与 dy 类似的操作。 在第 37 行,我使用 Linux 工具 “convert” 来组合图形以生成动态图形。在 Windows上,我可以使用 FFmpeg 和 Camtasia 等软件。有关详细信息,请参见 Chuck Huber 的 How to create animated graphics using Stata 第 40 行删除所有不必要的 .png 文件。
下面是由此代码创建的动态图形。
小结
在这篇文章中,利用德克萨斯州案例,我讨论 SAR 模型如何解释溢出效应。我还介绍了如何将溢出效应计算为累加和,并利用累积的总和创建了一个动态图形,说明了这些溢出效应是如何在德克萨斯州的各个县蔓延的。
🍓 课程推荐:2024 空间计量专题
主讲老师:范巧 (兰州大学)
课程时间:2024 年 10 月 2-4 日 (三天)
课程咨询:王老师 18903405450(微信)
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。