说明:使用MATLAB构建空间权重矩阵,并用stata进行空间相关性分析–计算全局莫兰指数、绘制莫兰散点图
空间自相关分析的结果依赖于空间权重矩阵的选择,因此本文首先涉及空间权重矩阵的构建
空间权重矩阵
类别
权重矩阵 | 符号 | 公式 | 解释 |
---|---|---|---|
空间邻接矩阵 | W 1 \mathrm{W}_1 W1 | W i j = { 0 1 W_{i j}=\left\{\begin{array}{l}0 \\1\end{array}\right. Wij={01 | 0表示不相邻,1表示相邻 |
地理距离矩阵 | W 2 \mathrm{W}_2 W2 | W i j = 1 g D i s t a n c e W_{i j}=\frac{1}{\mathrm{gDistance}} Wij=gDistance1 | gDistance表示 i \mathrm{i} i城市所在地和 j \mathrm{j} j城市所在地的公路距离 |
经济距离矩阵 | W 3 \mathrm{W}_3 W3 | W i j = 1 Y i − Y j W_{i j}=\frac{1}{Y_{i}-Y_{j}} Wij=Yi−Yj1 | Y i \mathrm{Y}_i Yi和 Y j \mathrm{Y}_j Yj表示 i i i、 j j j地区人均生产总值(GDP) |
嵌套矩阵 | W 4 \mathrm{W}_4 W4 | W 4 \mathrm{W}_4 W4= W 1 \mathrm{W}_1 W1 * W 3 \mathrm{W}_3 W3 | 主对角线元素全为0 |
MatLab实现
地理距离
% 主要应用了matlab的distance函数
clc,clear;
%x为纬度,按列粘贴
x = [36.65; 36.07; 35.05; 37.52; 36.78; 35.38; 36.62; 34.86; 37.5; 37.36; 37.45; 36.45; 35.24; 37.46; 35.42; 36.18];
%y为经度,按列粘贴
y = [117; 120.33; 118.35; 121.39; 118.05; 116.59; 119.1; 117.57; 122.1; 118.03; 116.29; 115.97; 115.43; 118.49; 119.46; 117.13];
A = [x y]
for i=1:16
for j=1:16
B(i,j)=distance(A(i,1),A(i,2),A(j,1),A(j,2));
end
end
% B算出来的单位是度。换算成距离的话,需要再乘以Pi/180再乘以6378.2,单位为千米。(此处将地球当做一个球体,半径为6378.2千米)
C = B*pi/180*6371; % C即为地点间地理距离矩阵,单位为千米
% D=1./(C) % D的元素为距离的倒数。即距离数值越小,倒数后构成的权重越大;反之亦然。
D(D==inf)=0; % 当矩阵元素为无限大时,将其变为0
% 行标准化
E=sum(D,2); % 计算各行之和
F=repmat(E,1,16); % 将E复制16行构成16*16的矩阵
W=D./F; % W即为行标准化后的地理距离空间权重矩阵
xlswrite('W1.xlsx', W, 'Sheet1');
经济距离
Matlab计算空间权重矩阵(地理距离和经济地理距离)_wbj3106的博客-CSDN博客_地理距离矩阵
空间自相关分析
全局空间自相关
理论基础
原假设
H
o
H_o
Ho:所分析的属性在研究区域内的要素之间是随机分布的,即不具有空间相关性
备择假设
H
1
H_1
H1:具有空间相关性
空间自相关 (Global Moran’s I) 的工作原理—ArcGIS Pro | 文档
代码实现
clear
// spatwmat 定义空间权重矩阵,W.dta为权重矩阵,name(W) 将空间权重矩阵命名为 W
spatwmat using W.dta, name(W) // 用于全局moran指数分析
// 查看空间权重矩阵
matrix list W
// 导入数据矩阵
use data.dta, clear
// 全局空间自相关检验
// weights(W) 指定空间权重矩阵为 W
// twotail表示双侧检验,默认为单侧检验(认为只可能存在正空间自相关)
spatgsa a2019,weights(W) moran twotail
局部空间自相关
代码实现
clear
// spatwmat 定义空间权重矩阵,name(W) 将空间权重矩阵命名为 W
spatwmat using W2019Eco.dta, name(W) standardize // 用于局部moran指数分析
// 查看空间权重矩阵
matrix list W
// 导入数据矩阵
use data0821.dta, clear
// spatlas 局部空间自相关检验
spatlsa a2019, weight(W) moran graph(moran) symbol(n)