Stata:空间自回归模型
空间自回归模型
相邻的城镇之间的相互影响比遥远的城镇之间的影响更大。国与国之间的距离越近,朋友之间在社交媒体上的联系越紧密。
空间自回归模型使用包含地理区域观测数据集进行拟合。观察值称为空间单位,可以是国家、州、县、邮政编码或城市街区。或者,它们可能根本不基于地理位置;他们可能是社交网络的节点。
数据集包含一个连续的结果变量——如疾病发生率、农场产量或犯罪率——以及其他用于预测结果的变量。对于横截面数据,每个变量每个空间单位有一个值。对于面板数据,不同的时间点通常有多个值。
有一本手册完全致力于拟合SAR模型,处理空间数据,创建和管理空间加权矩阵。这些命令称为Sp命令。参见空间自回归模型参考手册。
让我们看看它是怎么工作的
拟合SAR模型有三个步骤:
准备好数据进行分析。
创建模型所需的空间权重矩阵。
运行你的SAR模型。
Stata的Sp命令可以使用shapefile,也可以不使用shapefile, shapefile通常用于定义地图。他们可以处理其他位置数据,甚至可以处理完全没有位置的数据,比如社交网络数据。
以下是从头到尾的分析。
步骤1:查找并转换shapefile
你不必使用shapefiles,但我们会使用。我们下载了一个标准格式的shapefile, tl_2016_us_county.zip,我们在https://catalog.data.gov/dataset/tiger-line-shapefile-2016-nation-u-s-current-county-and-equivalent-national-shapefile上找到的。
我们将文件复制到当前目录,然后输入Stata:
. unzipfile tl_2016_us_county.zip
(output omitted)
. spshape2dta tl_2016_us_county
(importing .shp file)
(importing .dbf file)
(creating _ID spatial-unit id)
(creating _CX coordinate)
(creating _CY coordinate)
file tl_2016_us_county_shp.dta created
file tl_2016_us_county.dta created
spshape2dta神奇地为我们创建了两个Stata数据集。一个是stata格式的shapefile:
tl_2016_us_county_shp.dta
另一个是Stata数据集,包含shapefile bundle中的其他数据:
tl_2016_us_county.dta
Spshape2dta还链接了这两个文件。
步骤2:准备数据进行分析
我们有自己对这些县的分析数据。我们可以只使用它们而跳过shapefile,但是我们的数据没有县的坐标。我们无法计算距离或找到邻居。我们无法进行SAR模型分析。这就是为什么我们从美国人口普查中得到了形状文件;它会提供所有这些信息。
我们将使用tl_2016_us_county.dta合并数据。我们将首先创建一个ID变量来合并文件。我们还告诉Sp,人口普查局提供了纬度和经度的坐标,我们希望报告的距离以英里为单位。
. use tl_2016_us_county
. generate long fips = real(STATEFP + COUNTYFP)
. spset fips, modify replace
(output omitted)
. spset, modify coordsys(latlong, miles)
Sp dataset: tl_2016_us_county.dta
Linked shapefile: tl_2016_us_county_shp.dta
Data: Cross sectional
Spatial-unit ID: _ID (equal to fips)
Coordinates: _CY, _CX (latitude-and-longitude, miles)
. save, replace
file tl_2016_us_county.dta saved
. use texas_ue, clear
. merge 1:1 fips using tl_2016_us_county, keep(match)
(output omitted)
我们的数据已准备好供分析。
步骤3:创建空间权重矩阵
我们计划拟合一个具有因变量空间滞后、协变量空间滞后和空间自回归误差的模型。空间滞后由空间加权矩阵定义。我们将用一个矩阵表示变量,另一个矩阵表示误差。
Sp提供了许多创建空间权重矩阵的方法。我们将使用它的两种预定义配方:
. spmatrix create contiguity W
. spmatrix create idistance M
. spmatrix dir
Weighting matrix name N x N Type Normalization
M 254 x 254 idistance spectral
W 254 x 254 contiguity spectral
我们将W创建为基于最近邻的邻接矩阵。
我们把M设为县与县之间距离的倒数。
我们让Sp执行其默认的归一化,即最大特征值)。我们可以选择行或最小--最大归一化。
Sp还提供了一些命令,让您可以创建自定义权重矩阵。您可以通过编写Mata代码或从文本文件导入Stata数据来创建它们。Mata功能特别有趣,因为它很容易使用。
第四步:拟合模型
我们已经准备好了数据。
我们已经定义了所需的空间权重矩阵。
现在我们可以适应我们的模型。
. spregress unemployment college, gs2sls dvarlag(W) ivarlag(W:college) errorlag(M)
Spatial autoregressive model Number of obs = 254
GS2SLS estimates Wald chi2(3) = 43.52
Prob > chi2 = 0.0000
Pseudo R2 = 0.2081
unemployment Coefficient Std. err. z P>|z| [95% conf. interval]
unemployment
college -.067419 .0122785 -5.49 0.000 -.0914843 -.0433536
_cons 5.715733 .4246597 13.46 0.000 4.883415 6.54805
W
college -.0424388 .0213227 -1.99 0.047 -.0842306 -.000647
unemployment .2058481 .0961201 2.14 0.032 .0174562 .39424
W
e.unemploy~t 3.247298 1.369204 2.37 0.018 .5637078 5.930888
Wald test of spatial terms: chi2(3) = 9.77 Prob > chi2 = 0.0206
我们使用广义空间两阶段最小二乘(GS2SLS)估计。GS2SLS估计使我们能够适应多个空间滞后,潜在地使我们能够更好地逼近真正的空间依赖性。或者,我们可以使用最大似然估计来拟合模型。
我们的因变量是失业率(失业率),我们认为失业率是受拥有大学学位(大学)的成年人口比例的影响。
步骤5:解释模型
如果您熟悉SAR模型,您就会知道它们很难解释,因为系数是直接和间接影响的组合。直接效应是空间单位对自身的影响。间接效应是指空间单元对其他空间单元的影响,也称为溢出效应。
Stata的estat impact命令将这些影响分开。
. estat impact
Average impacts Number of obs = 254
Delta-method
dy/dx std. err. z P>|z| [95% conf. interval]
direct
college -.0690788 .0121434 -5.69 0.000 -.0928795 -.0452781
indirect
college -.0586373 .0299383 -1.96 0.050 -.1173152 .0000407
total
college -.1277161 .0320147 -3.99 0.000 -.1904638 -.0649684
estat impact对于解释SAR模型的结果和所有Sp估计值都是必要的。我们看到,一个县的大学学历人口每增加1个百分点,该县的失业率就会降低0.07个百分点,这是直接影响。对邻近县的溢出效应也差不多——预计失业率将下降0.06个百分点。