空间相关分析(⼀)空间权重矩阵
之前的博客分享了各⾏政区shp⽂件的制作⽅法,在拿到shp⽂件后就可以进⾏空间相关分析啦。今天来介绍⼀下相关理论的基础——空间权重矩阵的创建。
⽬录
定义介绍
根据地理学第⼀定律"任何事物都是紧密相连的,只不过越相邻的事物连接更紧密"。⽽空间权重矩阵即可描述事物间的关联程度。根据类型,可分为邻接矩阵和距离矩阵。
邻接矩阵
根据空间相邻关系,相邻既可以是有共同边界⼜可以是有共同顶点。因此,可分为三种类型:Bishop邻接、Rock邻接、Queen
邻接,分别如图(a),(b),©所⽰
图a中A与所有的B都是共顶点连接图b中A与所有的B都是共领边连接
图c中A与所有的B既是共顶点连接⼜是共领边连接
不难看出,Queen邻接是Bishop邻接和Rock邻接的结合。⼀般实际操作过程中,多数都是选Queen连接。根据连接⽅式,我们即可构建如下空间权重矩阵来反映区县间的邻接关系:
其中,
特别说明:当 时,记不难看出,矩阵W是个对称阵,即距离矩阵
W W =⎣⎢⎢⎢⎡w 11w 21⋮w n 1w 12w 22⋮w n 2……⋮…w 1n w 2n ⋮w nn
⎦⎥⎥⎥⎤w =ij {1,0,区县i 与区县j 相邻时
区县i 与区县j 不相邻时
i =j w =ij 0W =T W
眼组词语距离矩阵
空间单元间除了相邻关系,还有可⽤距离进⾏描述。在空间计量经济学中,可分为狭义距离和⼴义距离。狭义距离通常指两个区域的质⼼距离或者⾏政中⼼距离,构建⽅式如下:
其中,表⽰区域与区域之间质⼼距离(或者⾏政中⼼距离)。故距离越远,空间权重系数越⼩,空间相关性越差。
⼴义距离则包括多种形式的虚拟距离,⽐如:经济距离。例如:在研究区域经济聚集现象时,很多情况下地理位置相邻并不能代表相关性相同。例如:浙江省、江苏省、安徽省三者相领接,但浙江省和江苏省的经济实⼒明显要⾼于安徽省,则我们可认为浙江与江苏经济距离更近,⽽安徽与浙江、江苏的经济距离较远,故前者的空间权重系数要较后者⼤,空间相关性更强。构建⽅式如下:
其中,和代表各区域的经济发展⽔平,则则代表两者的经济距离。(⼀般⽂献⾥⾯⽤的⽐较多的是⼈均GDP来衡量地区发展⽔平,如果更深⼊地讨论的话可以使⽤主成分分析、层次分析、熵值法等⽅法构建综合经济指标体系),具体的构建⽅式可参考
Geoda 创建空间权重矩阵
W =
⎣⎢⎢⎢⎢⎡0d 2,11
⋮d n ,1
1d 1,2
10
⋮d n ,2
1
……⋮…
d 1,n 1d 2,n
1⋮0⎦
⎥⎥⎥⎥
⎤d ij i j W =
⎣⎢⎢⎢⎢⎡0∣Y −Y ∣211⋮∣Y −Y ∣
n 11∣Y −Y ∣
1210⋮∣Y −Y ∣
n 21……⋮…
∣Y −Y ∣
1n 1∣Y −Y ∣2n 1
⋮0
⎦
⎥⎥⎥⎥
清朝皇帝排序⎤Y i Y j ∣Y −i Y ∣j
理论说完了,开始实际操作吧。Geoda创建空间权重矩阵还是⽐较简单的,这⾥使⽤的是Geoda1.14中⽂版本,以重庆市为例:
⼯具——空间权重管理——创建——选择ID变量
!注意,这⾥的ID变量必须是⼀个ID对应⼀个区县
根据需要选择对应的连接⽅式即可。邻接型⽣成的是gal⽂件,距离型⽣成的是gwt⽂件。这⾥以Queen连接⽣成的gal数据格式说明:
第⼀⾏38代表重庆市区县总个数,500229是区县对应的ID,它有两个相邻区县,分别是500238和500234;以此类推,500238有5个相邻的区县分别为500229,500234,500237,500235,500236。以地图的⽅式显⽰如下:
n∗n
当然,gal这种数据格式定义的权重矩阵并不是前⾯定义所提到的形式的矩阵。我们可以⽤R进⾏转化,转化代码如下:
gal2mat <- function(gal, row.st =TRUE){
gal <- scan(gal, skip =1)
neighbors <- list()
while(TRUE){
nb <- gal[2]
if(nb !=0){
neighbors[[as.character(gal[1])]]<- as.character(gal[3:(2+nb)])
}else{
warning(paste("Unit", gal[1],"has no neighbor."))
三国志孔明传秘籍一般车险都买哪些险种neighbors[[as.character(gal[1])]]<-0
}
gal <- gal[-(1:(2+nb))]
if(length(gal)==0)break
}
n <- length(neighbors)
swm <- matrix(0, n, n)
dnames <- names(neighbors)
dimnames(swm)<- list(dnames, dnames)
for(i in dnames){
swm[i, neighbors[[i]]]<-1
}
if(row.st){
C6是什么车型驾照swm <- apply(swm,1, function(x){
if(sum(x)!=0)return(x/sum(x))else{
warning("The sum of row is 0.")
return(x)
}
})
swm <- t(swm)
}
return(swm)
}
library(spdep)
mynb <- read.gal("Export_Output.gal",override.id=TRUE)
畅销书
spmat1 <- nb2mat(mynb, zero.policy=TRUE)
spmat2 <- gal2mat("Export_Output.gal",row.st=FALSE)
write.csv(spmat2,"spmat.csv")
Arcgis创建空间权重矩阵
Arcgis创建空间权重矩阵时,shp⽂件必须放在英⽂路径下,否则会报错!
ArcToolBox—空间统计⼯具—空间关系建模—⽣成空间权重矩阵
这⾥的CONTIGUITY_EDGES_ONLY、CONTIGUITY_EDGES_CORNERS对应的就是Rock连接和Queen连接。⽣成权重矩阵信息如下:
最终⽣成的是swm⽂件,还需要将其转化为表。
空间统计⼯具——⼯具——将空间权重矩阵转化为表
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论