mk突变点检测_mk突变检测
寄信人: fig (【晋】『康杰中学』)
标 题: 没主题
发信站: 南京大学小百合站 (Sun May 23 19:18:25 2010)
来 源: 172.16.74.204
Fortran:
program main
implicit none
c This is a program for testing climate jumpi by use of
c 'Mann-Kendall test'.
c-------------------------------------------------
integer,parameter :: iy=100
integer i
real x(iy),u1(iy),u2(iy)
c-------Read Data
c-------
open(31,file='d:mk.txt',form='formatted')
do i=1,50
x(i)=0.5
x(i+50)=-0.5
enddo
c-------Mann-Kendall test method
call MKtest(iy,x,u1,u2)
c------
do i=1,iy
write(31,10)i,x(i),u1(i),u2(i)
end do
10 format(1x,i4,4f8.2)
stop
end
!c------------------------------------------------------------------
subroutine MKtest(m,x,u1,u2)
dimension x(m),u1(m),u2(m)
dimension xr(m),ur(m) !work array
do i=1,m
xr(i)=x(m+1-i)
end do
call MKrank(m,x,u1)
call MKrank(m,xr,ur)
do i=1,m
u2(i)=-ur(m+1-i)
enddo
return
end
!c------------------------------------------------------------------
!c-------Mann-Kendall Rank Statistic
subroutine MKrank(m,x,u)
dimension x(m),u(m)
u(1)=0.0
d=0.0
do i=2,m
num=0
do j=1,i
if(x(i).gt.x(j))then
num=num+1
endif
enddo
d=d+float(num)
e=i*(i-1.)/4.
var=i*(i-1.)*(2.*i+5.)/72.
u(i)=(d-e)/sqrt(var)
enddo
return
end
Matlab:
%
% Time Series Trend Detection Tests
%
% [ z, sl, lcl, ucl ] = trend( y, dt )
%
% where z = Mann-Kendall Statistic
% sl = Sen's Slope Estimate
% lcl = Lower Confidence Limit of sl
% ucl = Upper Confidence Limit of sl
% y = Time Series of Data
% dt = Time Interval of Data
%
% Bob Newell, February 1996
%
%--------------------------------------------------
%
function [ z, sl, lcl, ucl ] = trendMK( y, dt )
%
n = length( y );
%--------------------------------------------------
% Mann-Kendall Test for N > 40
%
disp( 'Mann-Kendall Test:' );
if n < 41,
disp( 'WARNING - sould be more than 40 points' );
end;
% calculate statistic
s = 0;
for k = 1:n-1,
for j = k+1:n,
s = s + sign( y(j) - y(k) );
end;
end;
% variance ( assuming no tied groups )
v = ( n * ( n - 1 ) * ( 2 * n + 5 ) ) / 18;
% test statistic
if s == 0,
z = 0;
elseif s > 0,
z = ( s - 1 ) / sqrt( v );
else,
z = ( s + 1 ) / sqrt( v );
end;
% should calculate Normal value here
nor = 1.96;
% results
disp( [ ' n = ' num2str( n ) ] );
disp( [ ' Mean Value = ' num2str( mean( y ) ) ] );
disp( [ ' Z statis
mk突变点检测_mk突变检测相关推荐
- mk突变点检测_MK突变检测程序
MannKendall 突变检测算法 MATLAB 源码 题目: MannKendall 突变检测算法 MATLAB 源码 %% 以下是单边 MannKendall 突变检测算法 % GreenSim ...
- mk突变点检测_Mann-Kendall突变检测(mk突变检测)
本帖最后由 vb1987 于 2013-6-12 23:27 编辑 %最近写论文需要用到MK检验法,网上收集到大量的matlab代码,但是没有一个代码能够 %完全正确运行或者分析信息不全,结合多位网友 ...
- mk突变点检测_MK检验突变分析 matlab
% Mann-Kendall突变检测 % 数据序列y % 结果序列UFk,UBk2 %读取excel中的数据,赋给矩阵y %获取y的样本数 %A为时间和降水数据列 x=降水(:,1);%时间序列 y= ...
- mk突变点检测_科学网—从网上找的M-K突变检验的程序 - 张乐乐的博文
%从matlab论坛上找的MK突变检验的程序,这个程序运行的结果跟我自己编写程序运行出来的结果一样,但是跟魏凤英老师书上的例子出图结果不一样 A=xlsread('test-mk.xlsx'); x= ...
- mk突变点检测_气候突变检测
1.气候突变是什么意思 科学家们所说的气候变化,通常指的是"气候渐变".也就是我们经常说的,"地球在逐渐变暖",或者是"气候在慢慢变暖".但 ...
- python:遥感时间序列处理——Pettitt突变点检测(突变时间/年份)
本文记录了使用python语言和Pettitt突变检测算法检测遥感数据30年的NDVI时间序列中的突变时间(年份)的代码. Pettitt可以检测时间序列中最显著的突变点,其检测结果只有一个,相对MK ...
- python:遥感时间序列处理——Mann-Kendall(MK)突变检测(突变次数)
作者:CSDN @ _养乐多_ 本文记录了使用python语言读取数据和逐像素求MK突变次数的方法和代码. 并以2001年到2022年的NDVI时间序列数据为例,展示了研究区内NDVI发生突变的次数. ...
- 【突变检验方法二】MATLAB实现贝叶斯突变检测
MATLAB实现贝叶斯突变检测 1 贝叶斯突变检测 2 原理 3 MATLAB相关代码 3.1 调用函数 3.2 案例 参考 另:其它语言实现贝叶斯突变检测 1 贝叶斯突变检测 贝叶斯突变检测属于概率 ...
- pettitt检验r语言_[原创]Matlab气候突变检测程序合集(更新了)
登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 sfhstcn2 于 2017-10-19 07:29 编辑 mutation_test这是一包代码,是基 ...
最新文章
- ZOJ1002 Fire Net(非递归版)
- 2503 常用格式验证
- React开发(127):引入icon的方式
- Swift学习笔记 闭包表达式
- 员工离职时被HR回复“猝死了再说”!HR道歉:没控制好情绪
- service.php,service.php
- membership.findusersbyname模糊匹配的写法
- Proxmark3 easy gui 5.13 版本 编译日期2019-4-17 冰人4月份最新固件
- linux中开启snmp协议
- python找工作好不好_Python这么火,为何有人说Python不好找工作?
- 【元胞自动机】基于matlab元胞自动机模拟交通流【含Matlab源码 355期】
- 微信小程序实现多视频video采坑,上下滑动视频
- u8文件服务器在哪设置,u8 设置文件服务器
- excel 汇总运算后生成柱状图
- java编程:假定公鸡5元钱1只,母鸡3元钱1只,小鸡1元钱3只。现在有100元钱要求买100只鸡,请编程列出所有可能的购鸡方案。
- BurpSuite2021 -- 目标模块(Target)
- Unity优化篇——mesh合并
- 金蝶云星空配套材料采购生成采购申请单
- ubuntu卷组安装
- 如何设置按组分页同时每页的行数为固定的行数