Anselin Local Moran's I: 聚类和异常值分析完整修正篇

Anselin Local Moran's I 经过了两次修正,依然还出现了错误,第一次多谢河北师大李同学的提醒,第二次多谢我****上的一个热心的读者@wchuns同学的提醒和指正,与其零零碎碎的更正,不如直接出一个完整的章节进行校正

———我是万恶的分割线———

前面我们聊的各种指数,无论是莫兰指数还是P值Z得分,都是整体数据的结论,也就是所谓“全局莫兰指数(Globe Moran's I)”,也就说,不管我给你多少数据,最后你就吐出一个来给我!这算神马!当然,从名字上来看,全局数据嘛,有一个给你就不错了。实际上作为我们玩GIS的人,最喜欢的就是出一张花花绿绿的地图,比如这样的:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

或者是这样的:

 Anselin Local Moran's I: 聚类和异常值分析完整修正篇

所以我们更希望的是将我们输入的数据,标示出明显的数值来,比如我输入1000个要素,那么你别就给我1个数据啊,怎么也得吐出1000个数据来吧,甭管什么莫兰指数,P值Z得分啥的,不能给我省了。所以这里就要用到今天我们说的Anselin LocalMoran's I方法了,而它与GlobeMoran's I的区别,如下:

 Anselin Local Moran's I: 聚类和异常值分析完整修正篇

所以,这种算法比较符合我们做GIS的人的思维,那么这种可视为地理信息强迫症的特效药的Anselin Local Moran's I算法,是哪位大爷提出来的呢?下面进入我们的算法科普时间:

 

 Anselin Local Moran's I: 聚类和异常值分析完整修正篇

上面这个脑门像土豆神一样明亮的老帅哥,就是ASU(美国亚利桑那州立大学)的地理与规划学院院长Luc Anselin教授,也是Anselin Local Moran'I算法的提出者,所以也就用了他的大名来标示这种算法。

如果做地理分析的,一定听说一个叫做GeoDa的软件,这个软件就是Anselin教授领导的ASU的地理空间分析和计算中心弄出来的神器。后来他的这个中心,就一直被人称为“GeoDa Center”

他在2008年的时候,当选为了美国科学院院士,与中国一样,当选院士被认为是美国学术界最高荣誉之一。

 

好了,起源介绍完了,下面我们来看看这种算法有些啥神奇的地方。

首先,他还是会计算各种常规的指数,比如Moran's I以及P值Z得分啥的,但是他是针对整份数据中,每一个要素都会去记录一个相应的值,算出来就会变成这个样子:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

用中国每个省的GDP进行计算,算完对每一个省都会对应有一系列数据,前面三个就是每个省的Moran's I和Z得分以及P值,这个就不解释了,大家有兴趣去看以前的文章,Anselin Local Moran's I最强大的地方,就是他能够用自己身的数据,与周边的数据进行比较,生成COType这样一个字段。

 

COType是:聚类/异常值类型的简写(clustering /  outlier Type),这个东西是啥东东呢,我们来看下面的解释:

首先,正常情况下,聚类我们认为是这样的:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

就是相同的类别会被放到一起。但是我们这个工具不但要计算聚类类型,还要计算的是异常的类型,何谓异常呢?异常自然就是下面这样的情况:

 Anselin Local Moran's I: 聚类和异常值分析完整修正篇

当然,还有一种情况,就是随机了,如下:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

抛开随机不谈,我们谈聚类和异常的话,就会出现4种组合,如下:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

表示如下

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

而因为在地理空间上,不同的要素之间会出现相邻或者包围这种情况,所以就用了如下这种描述:周围一圈都是低值,围绕一个高值,这种情况被表示为HL,反之,周围都是一圈高值,围绕着一个低值,那么就表示为LH。

 

这种方式,能够明确的发现空间数据以及参与计算字段值中的一些规律,比如采用2008年的各省GDP进行计算的结果如下:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

山东、江苏、浙江出现了明显的高值聚类,也就是说,他们的GDP与空间分布,不但自己的GDP处于高位,且旁边省份的GDP也是在高位。

而全国唯一个高值被低值包围的省,就是广东省,HL的意思是他自身的GDP处于高位,但是在空间分布上,它身边的省份都处于低值的情况。

 

前文再续,书接上一回。

 

AnselinLocal Moran's I作为细粒度的空间统计工具神器,在ArcGIS里面自然也是提供了相应的工具的,

这个工具就直接叫做“聚类和异常值分析”(Cluster and Outlie Analysis(Anselin Local Morans I))。

 

在后面的括号里面保留了以老帅哥Anselin教授命名的算法的名称,不管中英文都有,说明了大家和虾神一

样,对于研究算法的大神们都有顶礼膜拜的情节。

 

这一章主要讲讲AnselinLocal Moran’s I算法的原理和工具使用方法。

 

其实一直都忘记了补一章,关于空间数据探索的基础,实际上在讲空间概率标准化的时候就应该写的,可有些时候因为想对照着ArcGIS的空间统计模块来写(关键没有其他的参考书,只能参考这个了,话说Esri这个帮助文档,实在是空间统计学的入门必看经典啊!),结果不小心就把这个内容给漏掉了……真是尽信书不如无书啊!

 

这个空间数据探索的基础,就是的空间权重矩阵。如下所示:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

 

好吧……权重矩阵,我们看看看这个空间权重矩阵到底是个啥东东:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

左边这个东西,叫做无向图,由边那个,就是所谓的距离矩阵了。因为我们以前说过,在空间分析里面,需要进行空间关系的概念化,所以也通常称为空间权重矩阵。

 

当然这个权重矩阵为了简单明了,所以用的直接就是用最短距离作了矩阵里面的元素,比BC的距离,直接通过矩阵可以查询到WBC = 2 。

 

但是实际上情况可能会更复杂,比如我们以前说过,空间关系概念化一共有7种概念,每种概念都能够变化成相应的权重矩阵。比如最简单的,判断是否相邻的空间权重矩阵,可能就只有两个值,如下:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

 

通过这个空间权重矩阵,很容易的看出各个面要素之间的关系,比如D要素,与A\E\G三个要素有相邻关系。

 

关于啥是Rook's case的不记得请去看空间统计之五:空间关系的概念化这篇文章,我这里就不复习了。

 

这个权重矩阵与后面我们要进行的计算,是非常相关的。当然,因为现在的各种工具里面,在计算Anselin Local Moran's I的时候,都会依照你给定的空间关系概念化(也就是所谓的距离计算方式),来生成这个权重矩阵,但是如果不预先生成,使用不同的软件去计算的话,都会出现不同的结果。但是如果你用了同样的权重矩阵的话,计算出来的结果就是一样的。

 

如果说,全局莫兰指数是按照所有的数据配合空间权重矩阵计算出来的一个综合的数值,那么局部莫兰指数的计算方法与全局莫兰指数大致是一样,所不同的是没有了权重矩阵和数据值平均数的聚合计算过程。所以在每一个要素上面都会计算出一个属于自己的莫兰指数。如下:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇

 

 

当然,做为空间相关性的算法,算完之后PZ得分肯定是跑不掉的,正因为有了莫兰指数和Z值的组合,才会有HHLLHLLH四种可能。他们的具体在四个象限的分布如下:

在anselin教授的论文里面,对HH\HL\LH\LL四种情况的象限分配描述是这样的:Anselin Local Moran's I: 聚类和异常值分析完整修正篇Anselin Local Moran's I: 聚类和异常值分析完整修正篇

在读了LISA这篇论文之后,发现X轴Y轴的意思完全和直接计算出来的moran's i和z得分完全不是一回事,实际上,是这样的:

Anselin Local Moran's I: 聚类和异常值分析完整修正篇(lisa值为观测值*滞后值,结果正值为聚集,负值为异常)

两个轴的解释如下:

首先,X是标准化之后的观测值:

比如我用中国2012年的市级人口数据(男),那么计算如下:Anselin Local Moran's I: 聚类和异常值分析完整修正篇

该观测值周围邻居的加权平均。计算过程如下:

首先从空间权重矩阵中,获取该要素的邻接要素,比如2388(石家庄)这个要素,他的邻接要素一共有6个,如下:Anselin Local Moran's I: 聚类和异常值分析完整修正篇Anselin Local Moran's I: 聚类和异常值分析完整修正篇Anselin Local Moran's I: 聚类和异常值分析完整修正篇Anselin Local Moran's I: 聚类和异常值分析完整修正篇Anselin Local Moran's I: 聚类和异常值分析完整修正篇