- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
欢迎访问GreenSim团队主页→ HYPERLINK /greensim /greensim 邮箱: HYPERLINK greensim@163.com greensim@163.com
第 PAGE \* MERGEFORMAT 4页
非平稳时间序列突变检测的启发式分割算法(BG算法)MATLAB源代码
本源码的算法主要参考了下面参考文献:封国林,龚志强,董文杰等.基于启发式分割算法的气候突变检测研究[J].物理学报,2005,54(11):5494-5499。
function [FLAG,AllT,AllTmax,AllPTmax]=BGA(X,P0,L0)
%% 非平稳时间序列突变检测的启发式分割算法
%% 输入参数列表
% X 待检测的数据,列向量存储
% P0 显著性水平门限值,低于此值的不再分割
% L0 最小分割尺度,子段长度小于此值的不再分割
%% 输出参数列表
% FLAG 分割点标记,列向量存储,长度与X相同
% AllT 与分割点对应的全部t检验序列,其首位数字为起点坐标
% AllTmax 与分割点对应的全部t检验序列的最大值
% AllPTmax 与分割点对应的全部t检验序列对应的统计显著性
%% 第一步:变量初始化
N=length(X);
FLAG=zeros(N,1);
FLAG(1)=0.1;
FLAG(N)=0.1;
AllT=cell(0,0);
AllTmax=cell(0,0);
AllPTmax=cell(0,0);
%% 第二步:产生第一个突变点,并对序列进行分割
[T,Tmax,p,PTmax]=Tseries(X);
T=[1;T];
if PTmaxP0
flag=FLAG;
flag(1)=0;
flag(N)=0;
pos3=flag(pos2);
return
end
%记录输出数据
FLAG(p)=1;
AllT=[AllT;T];
AllTmax=[AllTmax;Tmax];
AllPTmax=[AllPTmax;PTmax];
%以下为两个控制计数器
counter=2;%下一个突变点的序号
TC=0;%临时计数器
%%
while 1%设置死循环
%% 第三步:对每个段进行突变检测,能分割则分割,直到不能分割为止
pos=find(FLAG0);
M=length(pos)-1;%当前子段数目
for m=1:M
s=pos(m);
t=pos(m+1);
L=length(SubX);
if L=L0
[T,Tmax,p,PTmax]=Tseries(SubX);
T=[s;T];
if PTmax=P0
TC=TC+1;
FLAG(s+p-1)=counter;
AllT=[AllT;T];
AllPTmax=[AllPTmax;PTmax];
counter=counter+1;
end
end
end
%% 第四步:返回输出数据
if TC==0
flag=FLAG;
flag(1)=0;
flag(N)=0;
pos3=flag(pos2);
FLAG=[pos2,pos3];
return
end
%%
TC=0;
%%
end
function [T,Tmax,p,PTmax]=Tseries(x)
%% 计算t检验统计序列的子函数
%% 参数列表
% x 时间序列,N×1列向量
% T t检验序列,N×1列向量
% Tmax t检验序列的最大值
% p t检验序列最大值对应的下标
% PTmax Tmax对应的统计显著性
%% 参数初始化
N=length(x);
T=zeros(N,1);
%% 以下是主循环,用于创建t检验序列
for i=3:(N-2)%最左边以及最右边的两个点没有对应的t检验值(或者说,其值初始化为0)
x1=x(1:i);%序列左边部分
N1=length(x1);%左边序列的长度
x2=x(i:
文档评论(0)