7月2号的原创推文推送以来,我的公众号后台有不少留言。其中有关Stata的问题我已经给出专门回答,有读者留言,希望我推一期使用MATLAB做空间面板的推送。
本期以我国31个省级行政单位(除港、澳、台)2001-2010年的空间面板数据为例,所用数据及jplv7包文件下载方法请见文末留言区。
请特别注意:MATLAB处理空间面板数据时,面板数据的布局是先排放一个横截面上的数据(即某年所有省份的数据),再将不同年份的横截面按时间顺序放在一起。
MATLAB面板数据的布局与EViews软件不同。
加载分析所须的jplv7包
找到MATLAB安装路径中的toolbox文件夹,例如我的电脑是C:\Program Files\MATLAB\R2012a\toolbox,把jplv7文件夹复制进去,然后在MATLAB中点击file-set path-add with subfolders,选择jplv7以设置路径:
执行如下程序代码
% 读取数据
[data,name]=xlsread('data',1);
% 读取权重矩阵
weight=xlsread('data',2);
% 提取变量
y=data(:,[3]);
x=data(:,[4,5,6,7,8,9,10,11,12]);
% 标准化权重矩阵
W=normw(weight);
% 设置面板
info.model = 1;
% SAR模型
results_sar=sar_panel_FE(y,x,W,T,info);
% SEM模型
results_sem=sem_panel_FE(y,x,W,T,info);
vnames=strvcat('house','urbanization','student','patent','foreigninvest','industry','research','fixedassets','lnpopulation','lngdp');
prt_spnew(results_sar,vnames,1)
prt_spnew(results_sem,vnames,1)
LMsarsem_panel(results_sar,W,y,x)
LMsarsem_panel(results_sem,W,y,x)
% SDM模型
t1=(t-1)*N+1;t2=t*N;
results_sdm=sar_panel_FE(y,[x,wx],W,T,info);
vnames=strvcat('house','urbanization','student','patent','foreigninvest','industry','research','fixedassets','lnpopulation','lngdp',...
'W*urbanization','W*student','W*patent','W*foreigninvest','W*industry','W*research','W*fixedassets','W*lnpopulation','W*lngdp');
prt_spnew(results_sdm,vnames,1)
结果输出: