Stata软件如何创建动画图形来说明空间溢出效应
这篇文章展示了如何创建动画图形来说明空间自回归(SAR)模型生成的空间溢出效应。 阅读本文后,您可以创建如下的动画图形。
首先,我估计了SAR模型的参数。其次,展示了为什么SAR模型能够产生空间溢出效应。最后,将展示如何创建一个动画图表来说明空间溢出效应。
SAR模型
我想分析一下德克萨斯州县的凶杀率与失业率的关系。我怀疑一个县的凶杀率会影响邻近县的凶杀率。
回答两个问题。
如何建立一个模型,明确地允许一个县的杀人率取决于邻近县的杀人率?
根据我的模型,如果达拉斯的失业率上升到10%,那么邻近达拉斯县的凶杀率将如何变化?
拟合SAR模型
县i(hratei)凶杀率的标准线性模型i (hratei)是该县unemploymenti失业率的函数,是一个SAR模型
允许hratei依赖于邻近县的凶杀率。我需要一些新的符号来写SAR模型。如果j是县i的邻居,我让Wi,j为正数,如果j不是i的邻居则为0,并且如果j=i为0,因为没有一个县可以独立。
考虑到这个符号,允许县里的凶杀率i取决于邻县的凶杀率,SAR模型可以写成
在这里,Wi,j定义了i县和j县之间的紧密关系。这个词是指i县邻近县的谋杀率的加权总和,它详细说明了邻县的凶杀率如何影响i县的谋杀率。在Wi,j里把邻县信息堆在一起,每一个县i都会生成一个矩阵W来记录每个县i的邻县信息。矩阵W被称为空间加权矩阵。
我们所使用的空间加权矩阵具有特殊结构;每个元素要么是值c,要么是0,其中c大于0。这种类型的空间加权矩阵被称为标准化的邻接矩阵。
在Stata中,我们使用spmatrix创建一个空间加权矩阵,使用spregress来拟合横截面SAR模型。
首先,从Stata网站下载了一些美国县的谋杀率数据,并创建了一个只使用德克萨斯州县数据的子样本。
直观地说,指定所有感兴趣的地方的边界文件称为形状文件。texas.dta链接到一个形状文件的Stata版本,该文件指定了德克萨斯州所有县的边界。现在我从Stata网站下载了这个数据集,并使用spset显示它们是链接的。
现在我用spmatrix创建一个标准化的邻接空间加权矩阵。
现在有了数据和空间加权矩阵,可以估算模型参数。
空间溢出
现在已经准备好回答第二个问题。根据对spregress的估算结果,可以分三步进行。
使用原始数据预测杀人率。
将达拉斯的失业率改为10%并再次预测杀人率。
计算两个预测之间的差异并绘制它。
上面的图表显示,达拉斯失业率的变化,除了改变达拉斯的谋杀率之外,还改变了达拉斯附近县的谋杀率。达拉斯的变化波及到附近的县,这种影响被称为“溢出效应”。
SAR模型和空间溢出效应
在本节中,将说明为什么SAR模型产生溢出效应。在这个过程中,我提供了一个用于创建动画图形的效果公式。
SAR模型的矩阵形式是
解决了y收益率
给定X值的y的均值被称为y对X条件的期望,因为ϵ是独立于X的,所以对X条件的y的期望是
注意,这个条件期望为德克萨斯州的每个县指定了平均值,因为y是一个向量。
我们用这个方程来定义从X的一组值到另一个组的效果。在目前的情况下,我让X0包含观测到的数据中的协变量值,让X1包含相同的值,除了达拉斯的失业率已经设置为10%。通过这种表示法,可以看到从X0到X1导致了德克萨斯州每个县的平均杀人率的变化。
现在展示了在SAR模型中假设的技术条件会产生一个动画图像的表达式。SAR模型被广泛使用,因为它们满足稳定条件。直观地说,这种稳定性条件表明逆矩阵可以被写成指数大小逐渐减小的项之和。这种情况就是这样
将公式从(2)插入到(1)收益率的效果中
这就是用来生成动画图像的效果的表达式。
(3)中的每一项都有一些直觉,这在我的例子中很容易呈现。第一项(ΔXβ)变化的初始效应,它不仅影响达拉斯的凶杀率。第二项(λWΔXβ)是达拉斯周边地区变化对结果的影响。第三项(λ2W2ΔXβ)是对达拉斯周边邻区变化对结果的影响。在剩余项中,直觉模式继续存在。
为溢出效应创建动画图
现在描述如何生成动画图形。每个图都使用(3)中的项的子集来绘制变化,第一个图绘制了仅由第一项计算的变化。第二个图绘制了仅由第一和第二项计算的变化。第三个图绘制了仅由前三项计算的变化,等等。
代码的前四个步骤执行以下操作。
计算和绘图ΔXβ。
计算和绘图ΔXβ λWΔXβ。
计算和绘图ΔXβ λWΔXβ λ2W2ΔXβ。
计算和绘图ΔXβ λWΔXβ λ2W2ΔXβ λ3W3ΔXβ。
步骤5到20执行类似操作。
最后,组合步骤1到步骤20的图形,并创建一个动画图形。
以下是实现此过程的代码。
此代码使用上面的spregress生成的ereturn结果及其相应的预测命令。
第2行将λ的估计值放在局部宏lambda中。
第5,7,8和9行为X0的X1计算Xβ,并分别将它们存储在xb0和xb1中。
第12行计算第一项(ΔXβ)并将其存储在dy中。
当p = 0时,第16和17行为存储初始值。
第20-22行在动画图中生成第一个图。代码完成时,本地宏输入input包含用于创建动画图形的所有绘图。
第25-34行计算项并为剩余项创建图表。第26行使用spgenerate来计算。 第27-33行执行类似于dy的操作。
第37行,使用Linux工具“转换”来组合图形以生成动画图形。 在Windows上,可以使用FFmpeg和Camtasia等软件。 更多细节请参考Chuck Huber的文章How to create animated graphics using Stata。
第40行删除所有不必要的.png文件。
这是此代码创建的动画图形。
完成和撤消
在这篇文章中,讨论了溢出效应以及为什么SAR模型在以德克萨斯州的例子背景下产生它们。还展示了如何将效应计算为累计总和。使用累积的总和来创建一个动画图,说明这种影响如何在德克萨斯州的各县中蔓延。























