MATLAB绘制莫兰散点图 - 草稿

最近因为帮老板写一篇区域经济学方面文章,学了点空间计量方面的知识。MATLAB用来做空间计量的jplv7包挺强大的,但不是特别方便,似乎不能生成莫兰散点图。于是参考Anselin在R语言中写的莫兰散点图代码写了一个MATLAB版的。

标准化莫兰指数:

\mathrm{I}=\frac{\sum_{i=1}^{n} \sum_{j=1}^{n} w_{i j}\left(x_{i}-\overline{x}\right)\left(x_{i}-\overline{x}\right)}{\sum_{i=1}^{n}\left(x_{i}-\overline{x}\right)^{2}}

莫兰散点图代码:

function moran_scatter=moran_test_y(x,w) %x为输入变量,w为空间权重矩阵
zx=(x-mean(x))/std(x);
wzx=w*zx;
scatter(zx,wzx,'filled');
axis([-3,4,-0.6,0.8])
hold on

n=xlim;
m=ylim;
moran_I=regress(wzx,zx);
zx1=-3:0.01:4;

moran_scatter=plot(zx1,moran_I*zx1,'-r','linewidth',2);
title(['Moran’s I = ',num2str(moran_I)]);
hold on

line([n(1),n(2)],[0,0],'linestyle','--','color','k');
line([0,0],[m(1),m(2)],'linestyle','--','color','k');
end

效果图:

莫兰散点图.jpg
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容