1
前言
空间分析起源于地理学、空间经济学和相关学科。到目前为止,它被认为是专业的领域,因此不是大多数统计软件的标准部分。
就stata而言,有许多用户编写的工具可以从ssc服务器或其他来源下载。例如
shp2dta
sppack,使用ssc下载,包含spmat, spreg和spivreg
使用search spatwmat下载spatwmat
使用search……下载spatgsa, spatlsa和spatcorr
使用 search… 下载spatdiag和spatreg
注意,还有一些其他的包没有在这里描述。
2
空间数据
空间数据有什么特别之处?空间数据可以有多种含义,但它们都有一个共同点,即它们都是关于实体的,这些实体可以通过它们在空间中的位置来描述。大多数社会学家考虑的是地区数据,即关于地区、社区和地区的数据。但实际上,空间数据也可能是关于单点的(事件或对象的位置—点当然是抽象的)。对于这样的数据文件,有一个世界性的事实上的标准,来自ArcGiS软件。
该软件提供了一个所谓的shapefile,可以通过shp2dta过程将其读入Stata。另一种格式是MapInfo交换格式,有一个mif2dta过程可以帮助您处理这些数据。
在下面的文章中,我将描述shapefile更常见的情况。
在开始之前,请注意shapefile实际上由多个文件组成,通常具有相同的名称,但是不同的扩展名。三个文件是必需的:mydata。其中mydata.shp 包含坐标。 mydata.dbf描述对象和mydata. shx带有 索引对象。 另外mydata.prj表示使用的投影(或空间参考)系统。
为什么我们需要这么多的文件可以用面积数据来解释:一个区域,比如一个区域,可以用它的边界来描述,从几何上来说,这些边界形成了一个多边形。多边形可以很简单,比如矩形,也可以很复杂。比较美国的一些州,如科罗拉多州或怀俄明州,它们的边界形成简单的直角,而其他一些州,如西弗吉尼亚州,它们的边界形成一个非常不规则的实体。因此,需要不同数量的空间坐标来描述这种异构多边形。
3
空间数据读取
所需命令为:
shp2dta using name-of-shapefile, database(db-new-name) coordinates(co-new-name) genid(id-var)
该命令读取一个名为name-of-shapefile的形状文件,并将其内容写入两个Stata文件(扩展名为.dta),我在这里将其命名为(db-new-name)和(co-new-name)。显然,前者包含对象的描述(主要是在不同位置测量的变量),而后者包含坐标。id-var是要创建的id变量的名称。注意,这两个Stata文件都将保存到当前工作目录的磁盘中。这些新文件可以像任何其他Stata文件一样处理;您可以重命名变量、删除变量或用例、转换变量或将它们与其他文件合并。当然,你会想要小心这样的活动,除非你确定你可以做什么和应该做什么。带有坐标的文件通常最好保持原样!
4
空间权重矩阵
Spatwmat
Spatwmat 这个程序由Maurizio Pisati编写,创建Stata矩阵。它将以两种方式创建邻接矩阵(或空间权值):它可以读取包含权值的外部文件,也可以从指定纬度和经度的当前数据集中的变量(列)创建权值。
通常,后一种信息来自数据库文件,因为该文件每个case包含一行。请注意,经纬度将表示区域的中心;因此,在这种情况下,只能计算基于距离的权重(但不能计算基于邻居关系的权重)。
1、语法格式为:
spatwmat using "myweights.dta", name(name-of-matrix) eigenval(name-e-matrix) stand
表示:读取外部矩阵myweights.dta。并将其存储为标准化的,即矩阵名称中的行标准化矩阵;此外,特征值向量存储在 name-e-matrix中。
2、Creating weight matrices from latitude and longitude
spatwmat, stand name(name-of-matrix) xcoord(lat) ycoord(long) band(0 10)
这将从存储在变量lat和long中的坐标创建(标准化的)矩阵名。选项范围(0 10)表示对象将被视为仅在指定范围内的邻居。
请注意,“x坐标和y坐标都必须以投影单位表示,例如米、公里、英里或任意数字化单位”,如帮助文件所述。
5
空间权重矩阵
Spmat
Spmat 创建矩阵
spmat允许创建基于邻近和基于距离的矩阵。就我所知,它们是特殊的物体,不能被交互地看待。然而,它们可能被保存或导出到磁盘
spmat contiguity name-of-matrix using mycoord, id(id-var) norm(row)
它使用坐标文件mycoord来创建行标准化的邻近矩阵名。还有两种其他的命名方法。
spmat idistance name-of-matrix LON LAT , id(id) norm(row)
它使用带有变量LON(表示经度)和LAT(表示纬度)的当前工作文件来创建矩阵的逆距离矩阵名。
6
可视化空间数据:地图
地图为可视化空间数据提供了丰富的可能性。目前本节只讨论简单的等值线图。
spmap some-variable using my-coord , id(id-var) fcolor(Blues)
这将绘制变量somevariable的choropleth映射(它是数据库文件的一列;这个文件是当前工作文件)使用坐标文件my-coord (id变量id-var)。用几种深浅不同的蓝色来表示某一变量的不同程度。不出所料,有大量的选项可以根据你的意愿来调整地图。
7
空间自相关的统计
有全局和局部的统计数据。最常见的是Moran's I(同时具有全局和本地版本),但是也可以计算其他一些统计数据。
命令为:
spatgsa y, weights(w-matrix) moran
将计算y的全局莫兰指数。该变量是(空间)数据库文件的一部分(该文件应该是您当前的工作文件或主文件),计算使用spatwmat创建的权值矩阵w-矩阵。
如果在被调查的变量中有任何缺失的值,将不计算任何统计数据(没有给出任何理由!)
spatlsa y, weights(w-matrix) moran id(id-var)
将计算y的局部莫兰指数。该变量是(空间)数据库文件的一部分(该文件应该是您当前的工作文件或主文件),计算使用spatwmat创建的权值矩阵w-矩阵。变量id-var(它是观察的唯一特征)用于识别输出中的观察值。选项moran将输出限制为Moran's I.参见其他统计信息的help函数(或者省略此选项,在这种情况下,您将得到几个统计信息)。注意,如果某个变量中有缺失的值,则不会计算任何统计信息。
8
Spatial Modeling
空间计量模型
这个内容主要是关于两类模型:一类是由Maurizio Pisati的spatreg提供的,另一类是由David Drukker及其合作者提供的spreg。下面我们将从Pisati提供的空间诊断开始。
9
Spatial diagnostics
空间诊断主要用于检验通过OLS回归分析的数据是否具有空间相关性。换句话说,假设你只是估计了一个线性回归模型。命令为:
spatdiag, weights(my-wmatrix)
将计算统计,调查残差之间的空间相关性,并帮助您判断空间滞后或空间误差模型可能更合适。
10
Spatreg
spatreg过程需要一个空间权矩阵加上一个与此矩阵相关的特征值向量;这两者都可以由Pisani的spatwmat计算(如果您的数据允许的话)。spatreg可以估计空间滞后和空间误差模型。基本的命令是:
spatreg depvar indepvars, weights(w-matrix) eigenval(e-vector) model(lag)
或者
spatreg depvar indepvars, weights(w-matrix) eigenval(e-vector) model(error)
11
Spreg
spreg程序使用空间自回归扰动估计空间自回归模型,提供了两种估计方法。它需要spmat创建的两个矩阵,一个用于空间自回归项,另一个用于空间误差项。两个矩阵可以(通常也会)相同,但必须同时表示两个矩阵。
用于最大似然估计
spreg ml depvar indepvars, id(id-var) dlmat(w-matrix) elmat(w-matrix)
广义空间两阶段最小二乘估计
spreg gs2sls depvar indepvars, id(id-var) dlmat(w-matrix) elmat(w-matrix)
其中
ID -var是spmat创建的ID变量,dlmat和elmat提供的矩阵分别表示空间自回归项和误差项的权值