热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Pettitt突变点检测

Pettitt突变点检测引言原理实现结果引言前期介绍了一些常用的突变检测方法,如MK突变检测法、BernaolaGalvan分割算法:Manner-K


Pettitt突变点检测

    • 引言
    • 原理
    • 实现
    • 结果


引言

前期介绍了一些常用的突变检测方法,如MK突变检测法、Bernaola Galvan分割算法:Manner-Kendall(M-K)—突变检验;非平稳时间序列突变检测–BG算法。今天介绍一种非参数突变检测方法–Pettitt突变检测方法。下图是本文实现的Pettitt突变检测方法检测得到的突变点以及满足的置信水平,第一栏为原始序列数据及突变点,数据是两段均匀采样,第一段的均值0.9,第二段的均值为0.6,从图中可以看出明显的突变位置,第2栏为统计量Ut及显著性水平,可以看出该突变满足显著性水平p=0.001。
在这里插入图片描述

去看原文


原理

在这里插入图片描述


实现

在这里,采用Python实现上述原理,并通过测试用例数据进行验证,具体如下:

# -*- coding: utf-8 -*-
# @Author: 武辛
# @Email: geo_data_analysis@163.com
# @Note: 如有疑问,可加微信"wxid-3ccc"
# @All Rights Reserved!

import numpy as np
import pandas as pd
import sys, math
import matplotlib.pyplot as pltdef main():alpha = 0.05data = pd.read_csv("data_random.csv")Year = list(data["Year"])X = list(data["X"])
​Ut, max_idx, Kt &#61; pettitt(X)print("The %dth sample is change point. Kt&#61;%.2f, Year:%d, p&#61;%.5f" % (max_idx &#43; 1, Kt, Year[max_idx], CalP(Kt, len(X))))# print(Ut, max_idx, Kt)if CalP(Kt, len(X)) < alpha:print("The %dth sample is change point. Year:%d, p&#61;%.9f" % (max_idx &#43; 1, Year[max_idx], CalP(Kt, len(X))))else:print("Does not satisfy the significance level! P(Kt) &#61; %.5f" % CalP(Kt, len(X)))plot(X, Ut, Kt, max_idx)if __name__ &#61;&#61; &#39;__main__&#39;:main()

结果

在这里插入图片描述
第一栏为原始序列数据及突变点。第2栏为统计量Ut及显著性水平&#xff0c;可以看出该突变满足显著性水平p&#61;0.001。

原文有源码&#xff0c;更多内容&#xff0c;请关注地学分析与算法。
在这里插入图片描述


推荐阅读
  • 从批量eml文件中提取附件的Python代码实现方法
    本文介绍了使用Python代码从批量eml文件中提取附件的实现方法,包括获取eml附件信息、递归文件夹下所有文件、创建目的文件夹等步骤。通过该方法可以方便地提取eml文件中的附件,并保存到指定的文件夹中。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
author-avatar
手机用户2502861713
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有