地理加权回归及Stata应用
计量经济学服务中心专辑汇总!计量百科·资源·干货:
Stata |Python |Matlab |Eviews |R Geoda |ArcGis |GeodaSpace |SPSS 一文读懂 |数据资源 |回归方法 |网络爬虫 门限回归 |工具变量 |内生性 |空间计量 因果推断 |合成控制法 |倾向匹配得分 |断点回归 |双重差分 面板数据 | 动态面板数据
地理加权回归是一种探索空间非平稳性的方法。空间非平稳性是指简单的“全局”回归模型不能充分解释一个地理区域内某些变量之间的关系的一种情况。相反,模型的性质应该随着空间的变化而改变,以反映数据中的结构。例如,在一个地理区域内,与风险因素相关的疾病风险是否保持不变,还是在该区域内的某些点这种关系更强。
Brunsdon等人(1996)开发了地理加权回归,试图通过校准多元回归模型来捕捉这种空间变化,该模型允许变量在空间的不同点之间存在不同的关系。
简介
地理加权回归的基本思想是,在数据中的每一点拟合一个回归模型,根据距离这一点的函数加权所有观测值。这与这样一种观点相一致,即在回归集中的观测点附近采样的观测结果比在更远的观测结果对该点的回归参数有更大的影响。然后在定义的地理区域的每个点生成一组参数估计。然后可以使用GIS软件绘制这些参数估计数,以确定变量之间的关系在何处变化,从而提供一种有用的探索性分析形式。利用蒙特卡罗方法可以进行2个假设检验:
可以用全局模型而不是非平稳模型来描述数据。
个体回归系数在地理空间上是否稳定。
我将介绍如何使用ado文件gwr和gwrgrid在Stata中实现这种方法,这两个文件都将地理加权回归应用于包含地理参考点的数据集。这两个ado文件之间的唯一区别是,gwrgrid在地理区域上放置一个网格,并在每个网格中心执行回归,而gwr在数据的每个点上执行回归。
这些ado文件中的代码是基于Brunsdon等人的论文和由Brunsdon等人编写的FORTRAN程序,并且通过大量依赖Stata中现有的glm函数,已扩展到任何形式的广义线性模型。
案例:将以Brunsdon等人给出的例子为例进行演示——这是1991年英国人口普查中有关汽车拥有率、社会阶层和英格兰东北部泰恩威尔郡男性失业率的一个数据集。
参考文献:
Brunsdon, C., A. S. Fotheringham, and M. E. Charlton. 1996.
Geographically weighted regression: A method for exploring spatial nonstationarity. Geographical Analysis 28: 281–298.
操作应用
空间统计目前Stata进行地理加权回归主要有命令spregxt以及gwr、gwrgrid等,本文主要简介介绍gwr、gwrgrid命令的基本应用。
gwr语法格式为:
Geographically weighted regression
----------------------------------
gwr depvar [varlist] [if exp] [in range] , east(varname)
north(varname) [options]
选项包括
saving(filename) dots reps(#) double eform family(familyname)
link(linkname) [ln]offset(varname) test replace noconstant
nolog scale(x2|dev|#) disp(#) iterate(#) init(varname)
outfile(filename) comma wide bandwidth(#) mcsave(filename)
sample(#)
其中
familyname选项包括 gaussian | igaussian | binomial [varname|#] | poisson | nbinomial [#] | gamma,即核函数类型
linkname 选项包括如下内容:identify | log | logit | probit | cloglog | opower # | power # | nbinomial
test:要求测试带宽的重要性。这测试了gwr模型对数据的描述是否明显优于 全局的回归模型。
sample(#)指定在带宽校准过程中使用的观测值百分比,默认为100%。这是特别对于大型数据集很有用,可以减少校准带宽所需的时间。如果指定了该选项,将随机抽取#%的观测数据并用于校准过程。
bandwidth(#)允许用户输入带宽值,并减少gwr运行所需的时间。
nolog抑制带宽优化迭代的显示。
iterate(#)指定在估计带宽时允许的最大迭代次数。默认值为50。
save (filename)创建一个Stata数据文件,其中包含从计算gwr的每个点估算的参数。
outfile(filename)创建文本文件filename。
replace表示save()和/或outfile()指定的文件可以 被覆盖。它也适用于mcsave()选项。
reps(#)指定要执行的蒙特卡罗模拟的数量。默认值为1000。
操作案例:
gwr cars class unemp, east(easting) north(northing) test
gwr flag class unemp, east(east) north(north) fam(binomial) link(logit)
gwrgrid y x1, east(east) north(north) fam(b) link(l) square(10) samp(25)
结果为:
. gwr cars class unemp, east(easting) north(northing) test
Global Model
Source | SS df MS Number of obs = 120
-------------+---------------------------------- F(2, 117) = 287.17
Model | 4.51965851 2 2.25982925 Prob > F = 0.0000
Residual | .920700696 117 .007869237 R-squared = 0.8308
-------------+---------------------------------- Adj R-squared = 0.8279
Total | 5.4403592 119 .045717304 Root MSE = .08871
------------------------------------------------------------------------------
cars | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
class | .0188073 .0033449 5.62 0.000 .0121829 .0254316
unemp | -.0182798 .0011238 -16.27 0.000 -.0205054 -.0160543
_cons | .8847704 .0288569 30.66 0.000 .8276208 .94192
------------------------------------------------------------------------------