处理空间属性数据最常用的计量模型包括空间杜宾模型、空间滞后模型和空间误差模型,而MATLAB对多维数据和相关模型处理非常方便,这里总结和分享了利用MATLAB进行空间计量的步骤和相关资料。
首先,安装空间计量模型的程序包。程序包的下载和相应的问题可以在下面这个链接中找到, https://bbs.pinggu.org/thread-2657434-1-1.html,也感谢当时这个帖子对我的帮助。
其次,排列数据的布局。注意数据要包括时间和样本的id,如年份和省份编码。另外,与STATA数据不同的地方是,MATLAB数据要将同一年份数据放在一起,(时间t,id)两列应如下所示:(t1,1);(t1,2);(t1;3);(t2,1);(t2,2);(t2,3)。
第三,设置MATLAB工作路径。MATLAB通过调用软件包中已有的程序命令,以及自己保存的数据文件,来实现模型的模拟。此时我们需要告诉MATLAB它的权限在哪里,即它可以在哪里去查找这些程序、数据等(默认状况下,MATLAB只承认安装目录下文件夹中已有的程序)。所以我们需要为MATLAB设置一条路径,让它能够使用这条路径下包含的程序,数据。
设置路径的方法:点击“File→Set Path”,出现“set path”窗口,选择安装MATLAB文件的地址,点击Add with Subfolders。
第四,对模型进行选择。从杜宾模型、空间滞后模型和空间误差模型及固定效应、随机效应等模型中中选取对数据拟合最好的模型。其中,moran指数和拉格朗日乘子检验是验证空间相关性最常见的方法。下面给出LM乘子检验过程:
(1)首先进行普通最小二乘回归,
results=ols(y,[xconstant x]);
vnames=strvcat('y','intercept','x1','x2','x3');
prt_reg(results,vnames,1);
(2)在(1)的结果上进行,LM检验
sige=results.sige*((nobs-K)/nobs);
loglikols=-nobs/2*log(2*pi*sige)-1/(2*sige)*results.resid'*results.resid
LMsarsem_panel(results,w,y,[xconstant x]);
第五,根据验证的结果选取模型。具体模型的代码可以在上面链接的包里找到,主要是各demo文件。为了进一步分解空间总效应,可以得到直接效应和间接效应。
如果大家对模型改进有兴趣,可以加我进行讨论。