空间计量的一个关键之处在于空间权重的选择和设置问题:现在文献中提到的0-1二值空间权重,距离衰减法(两地距离的倒数)空间权重,经济距离空间权重 ,逆经济距离空间权重 ,社交网络空间权重 ,社会经济空间权重。在我们的实际应用中,理论都很简单明了,在matlab中可能很好实现,但是\一直使用stata,因此需要找到在stata中生成上述空间权重的方法。二值空间权重和距离权重都比较容易比如spweight(截面的)、spweightxt(面板和截面)spmat(创建和管理空间权重对象(主要是spmat权重对象,在一些命令中会用到比如xsmle)),但是这些命令在经济距离、社会距离和经济社会距离方面无能无力,这时spwmatrix的命令可能更为有效,他是上述命令的综合体。下面主要介绍一下如何使用该命令:
1.命令结构和格式
(1)从ArcGIS (SWM file)、 GeoDa (GAL file)或txt空间权重文件中调入初始权重文件
spwmatrix import using filename, wname(wght_name) [dta text swm(idvar_name) Other_options]
Other Options xtw(#) generate spatial weights to be used with a balanced panel dataset(生成平衡面板空间权重) mataf save the spatial weights matrix and/or its eigenvalues to Mata file(s) external make the spatial weights reside in Mata memory(使生成的空间权重保留在Mata 中) eignval(eignv_name) place the eigenvalues of the spatial weights matrix into a column vector eignvar(newvar2) generate a variable to hold the eigenvalues of the spatial weights matrix noisland remove observations with no neighbors when generating the spatial weights rowstand row-standardize the spatial weights matrix connect display connectivity information about the spatial weights matrix xport(wght_filename, filetype) export the spatial weights matrix to a .dat, .txt, or a .gwt file where filetype=dat|txt|gwt replace overwrite existing newvar1, newvar2, and wght_filename as well as wght_name and eignv_name if mataf specified favor(speed|space) favor speed or space其中 filename是指ArcGIS (SWM file)、 GeoDa (GAL file)或txt空间权重文件名,是提前生成好的,建议采用GeoDa生成GAL file文件,wght_name是需要你指定新生成空间权重的名称。下面给出一个例子:
spwmatrix import using C:\data\wcontig.gal, wname(wcontig) rowstand xport(wcontig.dta)如果wcontig.gal在stata的指定目录当中,则只需填上wcontig.gal就可以了。
(2)生成距离和经济距离加权的空间权重(非常重要)
spwmatrix gecon varlist [if] [in], wname(wght_name) [wtype(bin|inv|econ|invecon) cart r(#) dband(numlist) alpha(#) knn(#) econvar(varname1) beta(#) Other_options]
加黑部分必须填上,其中varlist主要是指在stata数据表中纬度和经度变量名称一般都是命名为: latitude longitude;wname(wght_name) 需要指定新生成空间权重的名称,wtype(bin|inv|econ|invecon)表示生成空间权重类型,如果不填,默认是二值型空间权重,这里主要说经济加权空间权重econ|invecon。 cart 表示纬度和经度采用笛卡尔坐标,这是默认选项;如果采用球面坐标则只能选择 r(#),此时不能同时选择 cart,并且需要指定地球半径距离,一般默认填写r(6371.009);dband(numlist)表示边界,其中的numlist表示确定边界的变量,一般是各省份名称;alpha(#) 表示参数限制范围,默认为alpha(1) ;knn(#)表示调用最近邻空间权重;econvar(varname1)是生成经济加权空间权重很关键的选项,表示拟采用哪种经济指标作为权重来计算空间权重,一般有经济总量比如GDP、工业增加值、营业收入、劳动报酬总额等,该变量必须与经度和纬度变量同时存在于stata数据表中,以方面调用。这里讲一下经济距离的原理:传统距离空间权重只是考虑了距离,忽略了相邻省份经济规模的影响,一般认为经济越发达地区对落后地区的影响就越大,因此需要用邻省经济规模作为权重调整单一距离,公式如下:
Wij = [1/|econvar_i -econvar_j +1|] *exp(-β*D_ij)
其中 D_ij是i地与j地之间的距离,econvar_i是指i地区经济规模指标比如GDP占全部地区GDP的比重,其中分子取绝对数形式,D_ij表示两地距离,一般根据纬度和经度距离计算。
2.一个例子:
spwmatrix gecon latitude longitude, wn(wecon) wtype(econ) econvar(employment) rowstand
以就业人数作为权重求出空间距离权重,其中 latitude longitude 分别是纬度和经度变量名称,rowstand 是行标准化。
如果计算出了经济权重距离,可以将其输入到一个txt文档或者先查看后复制到txt文档,然后通过spmat命令调入该权重文件生成spmat对象,就可以在xsmle等命令中进行使用了,具体说来:
use spwmatrix.dta,clear
spwmatrix gecon latitude longitude, wn(wecon) wtype(econ) econvar(employment) rowstand export(wecon,txt)
mat list wecon //查看wecon权重矩阵
spmat import wedg usingwecon.txt //该命令可以生成以wedg为名称的spmat权重文件
spmat savewecon using wecon.spmat //该命令可以将生成的spmat权重文件存储为 wecon.spmat
spmat use wedg using wedg.spmat //该命令可以打开spmat权重文件
然后可以使用空间面板模型比如xsmle
xsmle lngsp lnpcap lnpc lnemp, re model(sdm) wmat(wedg) durbin(lnpcap lnpc)
评论前必须登录!
注册