因為讀了在職博士的原因,小範好久沒更新公眾號了,實在是太忙。最近剛把畢業條件弄完,於是稍微有點時間來寫博文。
本次主題為」如何批量獲取大規模數據的經緯度,並設定其空間權重矩陣「。第一步,通過XGEOCODING軟體批量的獲取所有地區的經緯度,詳細見軟體提取網絡上的相關說明(步驟略)。第二步,在經緯度的基礎上計算經緯度距離,並由此設定空間權重矩陣。當然,如果後續需要進行面板數據空間計量分析,還需在此基礎上設定時空權重矩陣,小範前幾次更新中已有相關介紹。
本次更新主要以甘肅省1233個鄉鎮、87個區縣和14個市州的空間權重矩陣設定為例來闡釋主題,代碼出圖結果如下:
原始代碼自此開始:
clc;
clear all;
% 本代碼由蘭州大學經濟學院範巧博士於2019年04月22日11:45撰寫;
% 本代碼版權保護,不得用於科研或學習之外的其他用途;
% 小範帶你學空間計量之十:基於經緯度距離的空間權重矩陣設定;
% 甘肅省1233個鄉鎮,87個縣,14個市州的空間權重矩陣設計;空間權重矩陣採用經緯度距離平方的倒數;經緯度距離基於xgeocoding批量獲取。
% 參考文獻:範巧,Hudson Darren.一種新的包含可變時間效應的內生時空權重矩陣構建方法[J].數量經濟技術經濟研究,2018,35(01):131-149.
% 範巧,石敏俊.基於結構匹配性和有效相關性的內生時空權重矩陣遴選方法[J].數量經濟研究,2018,9(02):114-135.
% 本代碼基於軟體MATLAB R2018a撰寫。
load Data0.mat;
A0 = A';
n = length(A);
% 基於經緯度距離的測度結果。
Dist0 = sin(A(:,2)).*sin(A0(2,:));
Dist1 = cos(A(:,1)-A0(1,:));
Dist3 = cos(A(:,2)).*cos(A0(2,:));
Dist4 = Dist0+Dist1.*Dist3;
Distance0 = 6378.1 *acos(Dist4);
% 確定空間權重矩陣
Dist5 = Distance0 -Distance0.*eye(n)+eye(n);
Dist6 = 1./Dist5.^2-eye(n);
Dist6(isinf(Dist6)) = 1;%將距離平方倒數極大值全部替換為1;
W = Dist6./sum(Dist6,2);
S = sum(W,2);%檢驗空間權重矩陣的標準化情況
% 確定縣級層面的空間權重矩陣
load Data_County.mat;
B0 = B';
n1 = length(B);
% 基於經緯度距離的測度結果。
Dist10 = sin(B(:,2)).*sin(B0(2,:));
Dist11 = cos(B(:,1)-B0(1,:));
Dist13 = cos(B(:,2)).*cos(B0(2,:));
Dist14 = Dist10+Dist11.*Dist13;
Distance10 = 6378.1 *acos(Dist14);
% 確定縣級空間權重矩陣
Dist15 = Distance10 -Distance10.*eye(n1)+eye(n1);
Dist16 = 1./Dist15.^2-eye(n1);
Dist16(isinf(Dist16)) = 1;%將距離平方倒數極大值全部替換為1;
W_County = Dist16./sum(Dist16,2);
S_County = sum(W_County,2);%檢驗空間權重矩陣的標準化情況;
% 確定市級層面的空間權重矩陣
load Data_Municipal.mat;
C0 = C';
n2 = length(C);
% 基於經緯度距離的測度結果。
Dist20 = sin(C(:,2)).*sin(C0(2,:));
Dist21 = cos(C(:,1)-C0(1,:));
Dist23 = cos(C(:,2)).*cos(C0(2,:));
Dist24 = Dist20+Dist21.*Dist23;
Distance20 = 6378.1 *acos(Dist24);
% 確定縣級空間權重矩陣
Dist25 = Distance20 -Distance20.*eye(n2)+eye(n2);
Dist26 = 1./Dist25.^2-eye(n2);
Dist26(isinf(Dist26)) = 1;%將距離平方倒數極大值全部替換為1;
W_Municipal = Dist26./sum(Dist26,2);
S_Municipal = sum(W_Municipal,2);%檢驗空間權重矩陣的標準化情況;
% 作圖
figure(1)
subplot(1,3,1),surf(W);
axis([0,1233,0,1233,0,1])
title('a) 空間權重矩陣:鄉鎮視角')
subplot(1,3,2),surf(W_County);
axis([0,87,0,87,0,1])
title('b) 空間權重矩陣:縣級視角')
subplot(1,3,3),surf(W_Municipal);
axis([0,14,0,14,0,1])
title('c) 空間權重矩陣:市級視角')
百度網盤代碼存放地址:https://pan.baidu.com/s/1pLb1veZPelIKlM9Q-3LRnw 提取碼: c3dy