爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 10884|回复: 18

[源程序] 多变量M-K趋势分析探讨

[复制链接]

新浪微博达人勋

发表于 2018-10-26 14:56:16 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
参考《水文多变量趋势分析的应用研究》和《基于多变量M_K检验的北江流域降水趋势分析》两篇参考文献。
这两篇文献主要讲的是多变量M-K趋势分析,都是《水文》期刊上的文章,记得没错的话。也是国内仅有的应用多变量M-K趋势分析法的文章。不知为何,这种多变量M-K方法使用范围不算大。本人也就参考两篇文献,写了MATLAB代码,并加入了M-K预白化处理。
压缩包内,S.mat是单变量M-K法用于计算统计量S值的;prewhiten.mat是预白化程序,不懂的可以参考我上一篇帖子;multivariate_M_K.mat是多变量M-K法,置信度alpha一般取0.05;Excel文件是测试数据,是一个4变量水文时间序列。
使用时,利用MATLAB xlsread函数,读取Excel测试数据中的数据,调用multivariate_M_K.mat即可得出结论。
附上源码,以飨读者。

水文多变量趋势分析的应用研究_叶磊.pdf

514.02 KB, 下载次数: 21, 下载积分: 金钱 -5

基于多变量M_K检验的北江流域降水趋势分析_王乐.pdf

365.94 KB, 下载次数: 18, 下载积分: 金钱 -5

多变量MK趋势检验程序.zip

9.58 KB, 下载次数: 57, 下载积分: 金钱 -5

评分

参与人数 1金钱 +20 收起 理由
clare + 20 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-10-26 15:02:35 | 显示全部楼层
相应地,补充进行预白化处理和不进行预白化处理的结果对比情况,如图所示。

不进行预白化处理情况

不进行预白化处理情况

进行预白化处理情况

进行预白化处理情况
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-10-26 16:45:07 | 显示全部楼层
很有意义,推荐参考
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-10-26 17:07:18 | 显示全部楼层
这虽不是一个新问题,但大多数人很少注意白化,你很棒
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-1 20:28:27 | 显示全部楼层
嘻嘻楼主好赞啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-3 11:51:56 | 显示全部楼层
楼主您好,这个程序通过检验,检验阈值是多少啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-11-4 08:05:41 | 显示全部楼层
sciren 发表于 2018-11-3 11:51
楼主您好,这个程序通过检验,检验阈值是多少啊

有两种检验,一种是用正态分布,那么给定0.05置信度的话,相应地阈值就是1.96。这是代码中norminv的作用(用于推求0.05置信度下正态分布阈值)。另外一种检验室卡方检验,对应的代码是chi2inv,给定置信度和自由度即可求出阈值。自由度和检验矩阵的秩有关,即代码中rank函数。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-4 09:25:15 | 显示全部楼层
Jude 发表于 2018-11-4 08:05
有两种检验,一种是用正态分布,那么给定0.05置信度的话,相应地阈值就是1.96。这是代码中norminv的作用 ...

谢谢楼主,卡方检验我看您的代码里没有说哪里输入自由度啊,有输入置信度的,另外一个阈值是5.99那个嘛,我把它disp了,好想是那么多,然后看你说的文献里,好像也是那么多呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-11-4 09:59:36 | 显示全部楼层
sciren 发表于 2018-11-4 09:25
谢谢楼主,卡方检验我看您的代码里没有说哪里输入自由度啊,有输入置信度的,另外一个阈值是5.99那个嘛, ...

那个自由度和检验矩阵的秩有关的,一般来说如果是三变量的话,那么检验矩阵Cm的秩最多就是3,然后你用chi2inv函数,输入3和置信度,就可以的出3变量趋势分析的阈值。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-11-4 10:56:17 | 显示全部楼层
Jude 发表于 2018-11-4 09:59
那个自由度和检验矩阵的秩有关的,一般来说如果是三变量的话,那么检验矩阵Cm的秩最多就是3,然后你用chi ...

诶   你的数据是4变量的  所以说如果我要替换为3变量 那就是还得在chi2inv这个函数里面输入3和0.05吗?而不是直接像您在这个帖子最上面那样输入要检验数据的位置名称,然后调用函数?我在哪里输入chi2inv的参数呢。。。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表