重磅干货!如何利用Stata进行空间冷-热点分析
摘要:区域数据的可用性不断提高,空间分析越来越受到关注。本文介绍一个使用Stata实现空间热点和冷点分析的方法。要实现getisord命令,只需将区域的纬度和经度作为额外的必需信息即可。与Shape文件结合使用,可以将getisord命令得到的结果直观地显示在Stata中。
这是社论前沿第S1496次推送
微信号:shelunqianyan
简 介
由于按地理分类的数据和地图文件(例如shape文件)的可用性越来越高,空间分析变得越来越流行。我们的社会经济活动集中在现实世界的特定地点,空间格局不是随机分布的。因此,空间分析的目的之一是描述社会经济活动是如何在空间分布的。为了检测地理空间中的集群(即,空间上连续的区域组),Getis和Ord发展了getis-ord G∗i(d)统计量。
空间自相关是一个重要概念,它由两部分组成。①全局空间自相关,例如莫兰(Moran)i指数,研究区域之间的整体空间相互依存关系,并测试一个区域及其邻近区域的相互依存程度,平均而言,它们是相互关联的。另一方面,②局部空间自相关,例如getis-ord G∗i(d)统计量,认为即使没有观察到全局空间自相关,空间关联也可能是局部异质的。
getis-ord G∗i(d)统计数据测试一个区域及其邻近区域是否形成每个区域的空间集群。换句话说,检测热点和冷点作为空间异常值,灵活地考虑空间联系的程度。
本文介绍的getisord命令允许使用二进制和非二进制空间权重矩阵计算getis-ord G∗i(d)。要实现getisord命令,需要有关纬度和经度的地理信息,研究人员就可以轻松地进行热点和冷点分析,即使相应区域的合适shape文件不可用。
如果shape文件可用,则getisord命令将成为功能更强大的工具。可以可视化帮助我们更好地理解空间分析。Stata已经提供了shp2dta命令,该命令可以将shape文件转换为Stata.dta文件。此外,从getisord命令获得的结果可以与spmap命令结合使用在Stata中可视化,spmap命令在地图中显示区域数据。
State应用
getisord命令计算分析变量的getis-ord G∗i(d)统计信息。其语法命令为:
其中选项:
lat(Varname)指定数据集中纬度变量。默认设置中应采用小数格式。正值表示北纬,负值表示南纬。lat()是必需的。
lon(Varname)指定数据集中的经度变量。默认设置中应采用小数格式。正值表示东经,负值表示西经。lon()是必需的。
swm(swmtype)指定空间权重矩阵的类型。必须指定以下三种类型的空间权重矩阵之一:bin(二进制)、exp(指数)或power(幂)。必须为空间权重矩阵的指数和幂函数类型指定距离衰减参数#,如下所示:swm(exp#)和swm(power#)。swm()是必需的。
dist(#)指定空间权重矩阵的阈值距离#。距离单位由dunit()选项指定。位于阈值距离#内的区域在二进制空间权重矩阵中取值1或在非二进制空间权重矩阵中取正值,否则取0。dist()是必需的。
dunit(km|mi)指定距离单位。必须指定km(kilometers)或mi(miles)。dunit()是必需的。
dms将度、分和秒格式转换为十进制格式。
approx 指近似使用由Vincenty简化版公式的近似双边距离。
constant(#)指使用swm(power#)时,在dunit()选项指定的单位中指定常数项#,将其添加到双边距离,以避免空间权重矩阵的分母取值0。使用swm(power#)时,必须指定constant(#)选项。
detail指显示双边距离的汇总统计信息。
genallbin指在指定了swm(bin)时,会生成三个额外的结果变量(非标准化的getis-ord G∗i(d)、其期望值和标准差)。
在默认设置中,getisord命令在数据集中生成两个结果变量:
go_z_varname_swmtype
go_p_varname_swmtype
当指定了二进制空间权重矩阵swm(bin)时,genallbin选项变得有效,并且getisord生成另外三个结果变量:
go_varname_swmtype
go_e_varname_swmtype
go_sd_varname_swmtype
go_z_varname_swmtype是变量的标准化getis-ord G∗i(d)统计量,等价于getis-ord G∗i(d)的z值。变量被自动插入,并且后缀b、e或p也根据swm类型被插入:b代表swm(bin),e代表swm(exp#), p代表swm(power#)。
go_p_varname_swmtype是变量的标准化getis-ord G∗i(d)统计量的p值。
go_varname_swmtype、go_e_varname_swmtype和go_sd_varname_swmtype是变量的getis-ord G∗i(d)统计量、期望值和标准差。这仅在指定swm(bin)时使用genallbin选项生成。
getisord命令与相应区域的shape文件结合使用。通过getisord命令获得的标准化的getis-ord G∗i(d)可以直观地显示在地图中。Stata已经拥有将shape文件转换为.dta文件的有用命令(shp2dta)和描述彩色贴图的命令(spmap)。
一个示例
本文提供了一个getisord命令示例。使用美国暴力研究联盟(NCOVR)数据集说明getisord命令的使用方法。该数据集可从亚利桑那州立大学GeoDa地理空间分析和计算中心公开获得。NCOVR数据集包含美国县级的shape文件以及1959到1991年间关于凶杀、人口、劳工和家庭的区域信息。NCOVR数据集连贯地包含了1959至1991年间的3085个县,并说明了在此期间改变的县边界。在这个例子中,使用1959年、1969年、1979年和1989年的家庭收入中位数的对数来检查高收入地区作为空间毗连县组的动态变化。
NCOVR数据集包含三个文件:NAT.dbf、NAT.shp和NAT.shx。要将shape文件转换为Stata.dta格式,必须使用shp2dta命令:
此命令在当前目录中创建两个文件:nat-d.dta和nat-c.dta。genc()选项在数据集中创建纬度和经度的变量(在上面的例子中,分别是y_cntrd和x_cntrd)。
这个数据集现在已经为空间热点和冷点分析做好了准备,因为关于纬度和经度的地理信息已经包括在内。在下面的示例中,使用getisord来考虑阈值距离为d=50 km的二进制空间权重矩阵。
(温馨提示:点击查看大图)
getisord命令在顶部表格中显示距离矩阵的汇总统计信息,因为使用了detail选项。观测次数表示下三角距离矩阵中的元素数[=N(N−1)/2]。在这种情况下,两个县之间的平均距离大约是1361公里,最小距离为0.854公里,最大距离为4566.705公里。
在下表中,getisord显示了5%和1%水平的完全空间随机性假设检验的简要结果。5%和1%水平的家庭收入中位数热点县分别为171个和208个。而处于5%和1%水平家庭收入中位数的冷点区县分别为177个和378个。这些结果存储在r()中。在此示例中,getisord命令在数据集中生成两个变量:getis-ord G∗i(d)的z值(go_z_MFIL59_b)和getis-ord G∗i(d)的p值(go_p_MFIL59_b)。
此外,getisord命令还可以指定两种类型的非二进制空间权重矩阵,命令语法所示:
非二进制空间权重矩阵的swm()选项需要距离衰减参数。这里,距离衰减参数被指定为δ=0.03和δ=1。具体参数涵义见原文。
可视化是促进更好地理解经验结果的一种有用的方法。getisord命令与spmap命令结合使用,后者在Stata中显示地图。
在实现getisord命令之后,spmap命令在地图中可视化getis-ord G∗i(d)的z值。
结 语
引入了命令getisord,它使Stata用户能够轻松地执行热点和冷点分析。给定关于纬度和经度的地理信息,getisord命令使用二进制和非二进制空间权重矩阵计算getis-ord G∗i(d)统计量。如果shape文件可用,则可以结合Stata中的shp2dta和spmap命令在地图中直观地说明从getisord获得的结果。
getisord命令的一个优点是它不一定需要相应区域的shape文件,因为可能没有合适的shape文件可用。取而代之的是,关于纬度和经度的地理信息是唯一的要求。
getisord的关键特点是,空间权重矩阵在程序代码中以一系列步骤内生构建,而不是作为矩阵类型外生包含在Stata中,这将使Stata用户更直观地进行空间分析。