S1i <- sapply(listw$weights, function(x) sum(x^2))
lx <- lag.listw(listw, x, zero.policy = zero.policy)
res <- (lx - Wi * xibar)
res <- res/sqrt(si2 * (((n - 1) * S1i - Wi^2)/(n - 2)))
程序2-matlab程序
x=input('x=')
weights=input('weights=')
n=length(x)
xibar=(sum(x)*ones(n,1)-x)/(n-1)
si2=((sum(x.^2).*ones(n,1)-x.^2)/(n-1))-xibar.^2
Wi=weights(:)' %这句对应Wi <- sapply(listw$weights, sum)是否正确?
Wi2=Wi.^2
S1i=sum(weights.^2)
lx=Wi*x %这句如何从lx <- lag.listw(listw, x, zero.policy = zero.policy)改写
res=lx-Wi*xibar
res =res./sqrt(si2 .* (((n - 1) * S1i - Wi.^2)/(n - 2)))
但是function lag.listw()
要转成matlab比较麻烦
因为lag.listw()是调用C function
未命名3.jpg & 未命名2.jpg
有没矛盾?两个都是 j not equal to i
Wij(d)是甚么关系?要知道
如果公式对,就有方向了
function [GI,ZG]=Getis(Wij,Xij)
% 计算G统计值:G值是不包含自己的G统计值
% 输入:Wij—空间权值矩阵
% 输入:Xij—研究区域的空间属性数据
% 输出:GI— 空间局部自相关指标-G统计值
% 输出:ZG— 对于GIJ的检验Z值的计算结果
这里有现成程序,请先看看.
局部G统计计算的Matlab程序.pdf
哈哈!抱歉!抱歉!
不是你的错
是我的错!
copy 过来的时候,产生的错误
%%%%%%%%result
Xij =
0 26.3976 46.9654 64.7889 62.6534 36.7131 43.1493 30.9348
26.3976 0 20.6691 38.3926 39.3141 50.1330 25.8122 29.2114
46.9654 20.6691 0 18.0368 28.1406 67.6762 28.9354 43.4492
64.7889 38.3926 18.0368 0 24.4042 82.0487 37.9407 56.7230
62.6534 39.3141 28.1406 24.4042 0 68.3261 22.4538 43.2943
36.7131 50.1330 67.6762 82.0487 68.3261 0 46.2011 25.5506
43.1493 25.8122 28.9354 37.9407 22.4538 46.2011 0 20.8906
30.9348 29.2114 43.4492 56.7230 43.2943 25.5506 20.8906 0
Wij =
0 1 0 0 0 0 0 0
1 0 1 0 0 0 1 0
0 1 0 1 0 0 0 0
0 0 1 0 1 0 0 0
0 0 0 1 0 0 1 0
0 0 0 0 0 0 0 1
0 1 0 0 1 0 0 1
0 0 0 0 0 1 1 0
GI =
0.0847
0.3160
0.3446
0.4441
0.4336
0.1125
0.4470
0.2845
EG =
0.1429
0.4286
0.2857
0.2857
0.2857
0.1429
0.4286
0.2857
VarG =
1.0e-003 *
0.2520
0.5039
0.4199
0.4199
0.4199
0.2520
0.5039
0.4199
ZG =
-3.6629
-5.0163
2.8722
7.7309
7.2155
-1.9103
0.8188
-0.0571
epoh 发表于 2012-5-9 15:41
load ct_data % Load Connecticut county latitude and longitude coordinates
...