登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 herenso 于 2013-6-27 21:12 编辑
这两天查阅了一些文献,发现在检验趋势的显著性时都采用了Mann-kendall 方法。在论坛里看到有人问,但好像没有过系统的整理,现根据这两天的阅读经验,将算法总结如下(由于有公式,干脆把内容转成了图片格式):
下面做些说一些我对此方法浅显的见解,既希望能帮助到对此没有了解的人,也恳请懂得的老师同学批评指正其中的不足或错误。
1. Mann-kendall方法原本是一种检验两个变量序列之间相关性的方法,而把时间作为其中的一个变量,即检验一个统计量与时间(如年份)之间的关系,就相当于检验该统计量的变化趋势。
2.MK方法是一种非参数方法,从上面的计算方法可以看出其本质是做秩相关,所谓“秩”,强调的是排列顺序,而不是序列的绝对值本身,即比较的是两序列不同大小的数在各自序列中的排序分布。
比如现有两组2001-2005年的时间序列:
/1,2,4,5,3/; /1,3,11,17,7/
这两组时间序列分别用来和年份计算相关系数r的话,得到的结果肯定是不同的,但如果是用Mann-Kendall方法来计算相关,则得出的系数值z相等,因为这两组序列5个元素相互间的大小关系相同,即使序列大小本身或者说序列方差不同也没有关系。因此很多文献指出这种方法不仅不要求时间序列服从某种固定分布,而且允许有异常值或缺测值的存在。
3. 计算过程中提到的“结”(tie)的概念,我原来也不懂,查阅文献后目前是这么理解的:“结”就是时间序列中的相同数据,“结”的宽度(the extent of any tie)是指序列中等于这个数的样本数量。例如对于一个序列/1,2,2,3,3,3/,有e1=1,e2=2,e3=3。
4.根据维基百科,很多文献中提到的Kendall's tau方法检验变化趋势,其实就是上述方法。值得注意的是Kendall's tau方法计算Z值时就有两种情况,一种不考虑结,称为Tau-a,此时上述计算方差Var的方程可直接简化为:
Var(S)=n(n-1)(2n+5)/18
一种考虑结,称为Tau-b,与前文给出的图中所述相同。对于气象人关心的很多变量,如年平均降水量,属于实型变量,出现某两年降水量相等的情况极少(就算数值上相等,也与数据精度有关),从而出现结宽e>1的情况也少,而e=1时e(e-1)(2e+5)=0。因此个人认为可以不考虑结的问题,采用简化后的方程。文末所附程序也没有考虑结。当然我不知道自己对于结的理解是否正确,如有谬误还请大家指教。
5.上面讲过Z服从标准正态分布,具体地说,Z的绝对值达到1.65/1.96/2.58,分别表示通过90/95/99%显著性检验,其他情况可以查正态分布表。
6.很多文献还用MK方法来估计变化趋势的倾斜程度,我就不多介绍了,直接截取一个有代表性的文献:
Xu Z X, Takeuchi K, Ishidaira H. Long-term trends of annual temperature and precipitation time series in Japan[J]. Journal of Hydroscience and Hydraulic Engineering, 2002, 20(2): 11-26.
其中Median表示取中位数,∀表示穷举所有情况。β就是我们要求的平均每个时间单位内统计量的变化量。
7.附件是MK程序,计算了不考虑结的Z值和估计斜率的β值。程序是我根据自己的理解现编的,不保证正确……如发现错误,敬请联系我~
2013年6月27日21:10重新上传了下程序,小改动了一点点,原先的程序用于循环会出问题。 |