MATLAB实现Pettitt突变检验

  • 1 突变检验
  • 2 Pettitt突变检验
    • 2.1 原理
    • 2.2 MATLAB相关代码
    • 2.3 案例
  • 参考

1 突变检验

突变分为如下主要的几种:均值突变(最常见)、方差突变、线性回归突变(也称趋势突变)、概率突变、空间型突变、谱突变、模型参数突变,等等。

2 Pettitt突变检验

2.1 原理


2.2 MATLAB相关代码

实现Pettitt突变检验的MATLAB代码如下:

function [Ut, kmax, changePoint , coef ] = PettittTest( X )
% 输入变量
% X   时间序列
% 输出变量
% changePoint     突变点
% coef    显著性水平Pt
n = length( X );
s = 0;
Ut =zeros(n-1,1);
for i=1:n-1for j=i+1:ns = s +sign( X(i) - X(j) );endUt(i) = s;
endkmax = max( abs(Ut) );                                % 找到最可能突变点
changePoint = find( abs(Ut) == kmax );      % 找出最大值对应的序列号
coef = 2*exp( -6*kmax^2/(n^3+n^2) );     % 检验其P值情况,统计学认为P<0.5采用统计意义
%{% 画图
figure(1)
hold on;box on;
h(1) = plot(Ut,'k-','linewidth',1.5);   % 整个曲线的变化趋势
h(2) = plot( [changePoint,changePoint] , [-kmax,kmax], 'r--','linewidth',1.5);
klim = kmax - kmax*0.1;
h(3) = plot([1,n],[-klim,-klim],'b-.','linewidth',1.5);
h(4) = plot([1,n],[klim,klim],'b-.','linewidth',1.5);
%}
end

另:
MATLAB函数:

% This code is used to find the change point in a univariate continuous time series
% using Pettitt Test.
%
%
% The test here assumed is two-tailed test. The hypothesis are as follow:
%  H (Null Hypothesis): There is no change point in the series
%  H(Alternative Hypothesis): There is a change point in the series
%
% Input: univariate data series
% Output:
% The output of the answer in row wise respectively,
% loc: location of the change point in the series, index value in
% the data set
% K: Pettitt Test Statistic for two tail test
% pvalue: p-value of the test
%
%Reference: Pohlert, Thorsten. "Non-Parametric Trend Tests and Change-Point Detection." (2016).
% function a=pettitt(data)
[m n]=size(data);
for t=2:1:mfor j=1:1:mv(t-1,j)=sign(data(t-1,1)-data(j,1));V(t-1)=sum(v(t-1,:));end
endU=cumsum(V);
loc=find(abs(U)==max(abs(U)));
K=max(abs(U));
pvalue=2*exp((-6*K^2)/(m^3+m^2));
a=[loc; K ;pvalue];
return

函数调用:

a=pettitt(y);

2.3 案例

调用函数代码如下:

clc
close all
clear
%%
load('X.mat');
[Ut, kmax,changePoint , coef ] = PettittTest( X );figure(2)
hold on;box on;
h(1) = plot(X,'k-','linewidth',1.5);   %  原数据
h(2) = plot( [changePoint,changePoint] , [X(changePoint)-X(changePoint)*0.1,X(changePoint)+X(changePoint)*0.1], 'r--','linewidth',1.5);
xlabel("序列");
ylabel("X");
set(gca,'Layer','top','FontSize',12,'Fontname', 'Times New Roman');

统计量示意图如下:

原数据示意图如下:

参考

1.代码参考-MATLAB实现pettitt检验
2.文献-J1979-A Non-Parametric Approach to the Change-Point Problem

【突变检验方法一】MATLAB实现Pettitt突变检验相关推荐

  1. 【突变检验合集】含Pettitt突变检验等

    突变检验方法合集 1 Pettitt突变检验 1.1 原理 1.2 MATLAB实现代码 2 贝叶斯突变检测 2.1 原理 2.2 MATLAB实现代码 3 有序聚类法 3.1 原理 3.2 MATL ...

  2. 【突变检验方法二】MATLAB实现贝叶斯突变检测

    MATLAB实现贝叶斯突变检测 1 贝叶斯突变检测 2 原理 3 MATLAB相关代码 3.1 调用函数 3.2 案例 参考 另:其它语言实现贝叶斯突变检测 1 贝叶斯突变检测 贝叶斯突变检测属于概率 ...

  3. matlab独立t样本检验,matlab与单样本t检验

    R语言,SPSS几EXCEL解决单样本T检验问题.母猪的怀孕期未114d,今抽测... spss单样本t检验_数学_自然科学_专业资料. 文档贡献者 920450863 贡献于2012-12-21 1 ...

  4. matlab mann-kendall,基于Matlab的Mann-Kendall突变检验及高分辨率图形输出

    MK(MANN-KENDALL)是气象学/气候学中经常用来进行突变检验的一种方法,目前广泛应用于许多长时间序列的水文.植被等数据.其基本原理可参考百度经验https://jingyan.baidu.c ...

  5. 基于matlab小波变换的突变检测识别

    clear all; close all; clc; %% 原始信号生成与突变点的添加 Fs = 1000; % 采样频率1000Hz Ts = 1 / Fs; % 采样时间间隔1ms L = 100 ...

  6. matlab保存图片函数后突变分辨变化,MATLAB总结 - 图片保存

    I. Matlab中保存图片的方法 1.一种是出来图形窗口后手动保存(这儿又可以分两种): 1.1 直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式. 1.2 edit---- ...

  7. mwp突变检验法在matlab上的实现

    公式 数据 支持批量处理,四个地区部分气温数据如下 结果 每年的P值计算结果如下:

  8. matlab 的均值t检验,用MATLAB做T检验(ttest)

    t-检验: t-检验,又称student's t-test,可以用于比较两组数据是否来自同一分布(可以用于比较两组数据的区分度),假设了数据的正态性,并反应两组数据的方差在统计上是否有显著差异. ma ...

  9. 肿瘤化疗无效是对预先存在的突变的选择还是诱发新突变,Cell给你答案

    三阴乳腺癌(TNBC)是乳腺癌的一种侵袭性亚型,常对化疗产生耐药性.而耐药性的产生到底是之前存在的稀有突变细胞受到选择还是新基因突变导致的,仍是一个谜团. 为研究该问题,Charissa Kim等人利 ...

最新文章

  1. minimap2 长reads比对工具
  2. 李飞飞团队CVPR论文:让AI识别语义空间关系(附论文、实现代码)
  3. maven 简易入门笔记
  4. 网站推广——网站推广专员浅析企业网站验收和交付要注意哪些问题
  5. Dubbo 3.0 前瞻之对接 Kubernetes 原生服务
  6. python 三元表达式 if for 构建List 进阶用法
  7. Oracle-13:Oracle中的表分区
  8. enumset_枚举集合的EnumSet
  9. graph面板x轴模式包括哪些_发那科数控车床面板讲解
  10. CSS 相对|绝对(relative/absolute)定位系列(三)
  11. java中sesion
  12. 学习ecshop 教程网址
  13. 八戒科技服务技术负责人鸿鹄真人:做好技术负责人的4个关键特质
  14. Eclipse中好用的快捷键
  15. 计算机科学家 收入,你离年薪100万的数据科学家还差10个“码农”
  16. nginx tornado php,tornado+nginx+python 微信公众号接入配置
  17. 如何终止线程的运行(C/C++)
  18. Android Contacts(二)—— SMS 短信 与 Contacts 联系人关联
  19. 翻译:通过使用终端(iTerm2&Oh my ZSH)来提高您的生产率
  20. Linux下C++轻量级Web服务器

热门文章

  1. 马尔可夫决策模型(转)
  2. pikachu——验证码绕过(on client)python脚本解法
  3. 如何长高青春期后 - 两个简单而成功的方法
  4. anacoda里面安装包显示失败_Premiere2020安装包下载及安装教程(附pr2020配置要求)...
  5. ASEMI整流桥KBJ610,KBJ610浪涌电流,KBJ610反向电流
  6. 基本数据类型之整数类型变量
  7. zbb20181006 maven配置阿里云中央仓库
  8. ChinaSoft 论坛巡礼 | 形式化方法工业应用前沿
  9. php如果登录失败弹出失败,登录失败或出现错误信息(无跳转、提示失败、出现错误信息)的解决方法...
  10. 九章云极发布YLearn因果学习开源项目;字节跳动大量招聘芯片工程师;苹果被俄法院罚款约21.6万元 | 每日大事件...