白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

时间:2024-04-01 16:12:40

前文再续,书接上一回,今天继续讲地统计中的探索性数据分析剩下的几种图形。

开场先秀一个Python实现的三维趋势分析图:

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

 

如果说直方图是个人就能看得懂的话,下面几种图形就有点不太好懂了,比如这叫做“正态QQ”的东东。

 白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

正态QQ图

好吧,这个QQ图,与鹅厂那个黑白怪没有任何关系,它的意思是“quantile-quantile”,也就是所谓的分位数图

那么啥又叫做“分位数”呢?

 

对一份数据,我们经常有一些特定的数值来进行描述,比如“中位数”这个概念,他表示顺序排列的一组数据中,最中间的那个一个,它会把整组数值集合划分成上下相等的两个部分。在分位数的叫法里面,中位数也被称为“二分位数”,那么以此类推,就有诸如:

 

四分位数:把顺序排列的数值集合均分为四等分,位于分割点的数值就叫四分位数,其中第一四分位数为25%;第二四分位是50%(实际上也就是中分位数了),第三四分位是75%

 

通常这种数值可以用盒图(box,也叫箱线图)来可视化,如下所示:

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

绘制图形的源码,见文末地址)。

 

QQ图又是啥呢?从图形上来看,QQ图是一种散点图,其每个点的纵坐标,是样本值,而每个点的横坐标是这个样本值的分位数。如何绘制的呢?如下所示:

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

 

那么这个正态QQ图又如何来看呢?

 

正态QQ图主要也是用来检验是否是正态分布的,其中那条红色的线,就表示正态分布,如果你的数据是严格正态分布的,那么所有的样点,就应该与红线完全重合

 

如果你的点与红线偏离比较严重,就说明这些点可能是异常点,应该进行检测,确定是错误值还是需要特别关注的离群值。

 

ArcGIS中做正态QQ图,还可以进行交互,比如你可以选择离群点,来查看是哪些:

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

从以上探索情况来看,大部分数据是符合正态分布的,但是也有一部分不符合正态分布,如果强行要用所有的数据来进行插值,可能会产生一定的偏差。

 

那么如何来解决这些有偏差的情况呢?一般来说有下面几种方法:

  • 其一就是分区域进行插值,比如将中国分为南北两个部分进行插值,或者更多部分,插值完成之后,在把结果栅格进行组合。

  • 其二就是寻找合理的步长进行插值,防止远距离的数据对结果干扰太大。

 

这些解决的方法,我们以后慢慢说。

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

趋势分析图

除了正态QQ图以外,还可以对数据的趋势进行了解,主要通过趋势分析图(Trend Analysis)来实现。

 

空间插值,作为一个空间运算,XYZ三个维度都是协同工作的,所以我们需要了解数据是否具有一定的趋势,比如是西高东低,或者是南高北低这样的。趋势分析图主要就是用于分析数据中是否存在这样的趋势,并且把这些趋势进行可视化。

 

ArcGIS的地统计向导里面,选择趋势分析图,

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

选择要探索的数据,就可以得到下面这样一个窗口:

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

这样看起来,那是啥也看不见的,我们一部分一部分的来解释,如下:

首先,只留下数据投影这一个选项,其他的都勾选掉:

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

可以看见,实际上是把数据按照不同的维度进行了投影,绿色的部分是东西向,蓝色的是南北向,把它们以XY为轴,Zvalue)为值,投影到了一个正交的平面上。

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

从拟合曲线我们可以看出来,从气温上说,东西向的呈现两边低,中间高的趋势,而南北向呈现北低南高的趋势。

 

如果这趋势拟合线呈现平直的状态,则表示没有明显的趋势(随机分布)。

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

最后就是每条黑色的线,代表值的高低,绿色的点,代表每个点值在三维空间中的位置,这个就没啥好说的了。

 

趋势分析的工具,可以很直观的观测到变量在空间上是否具有分布趋势,如果选用多项式插值的话,可以以此为根据,选择最优拟合的多项式进行插值。

 

这个工具用Python实现的话,可以用三维散点图方式来实现:

首先要实现的是多项式回归,代码如下:

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

之后绘制成三维图形:

 

白话空间统计三十:地统计(6)探索性数据分析(2)​及Python实现(附源码)

以上Python实现的代码,请到如下位置寻找:

https://github.com/allenlu2008/PythonDemo/tree/master/008插值/地统计插值

 

(公众号发送消息:6,可以获取虾神的github代码仓库,欢迎clone,记得star)

待续未完