作者:CSDN @ _养乐多_
本文将介绍布伊山德U检验(Buishand U test,BUT)突变点检测代码。以 NDVI 时间序列为例。输入数据可以是csv,一列NDVI值,一列时间。代码可以扩展到遥感时间序列突变检测(突变年份、突变幅度等)中。
结果如下图所示,
文章目录
- 一、准备数据
- 二、BUT介绍和代码
- 2.1 原理和步骤
- 2.2 核心函数
- 三、读取csv格式时序数据的示例
一、准备数据
测试数据(0积分下载):https://download.csdn.net/download/qq_35591253/88895803
该数据是GEE上提取的,参考博客《GEE:基于Landsat5/7/8/9数据提取一个点的NDVI时间序列(1986-2024)》
二、BUT介绍和代码
Buishand U test突变点检测中文名为布伊山德U检验,而其原理是基于正态分布变量的单一变点模型。
2.1 原理和步骤
Buishand U test是用于检测时间序列数据中是否存在一个突变点,即某个时刻数据的特性发生了显著的变化。这种检测方法在气象、水文、生态和经济学等领域具有广泛的应用。
Buishand U test的原理是考虑一个正态随机变量X,并假设存在一个单变点将数据集分为两部分。在变点之前,数据遵循均值为μ和方差σ²的正态分布;在变点之后,数据的均值变为μ+δ。测试的零假设H₀是δ=0,即没有变点;备择假设H₁是δ≠0,即存在变点。为了进行检测,计算调整后的局部和统计量Sₖ,使用样本标准偏差D(x),然后构造U统计量:
U = 1 n ∗ ( n + 1 ) ∗ ∑ k = 1 n − 1 ( S [ k ] − D x ) 2 U = \frac{1}{n * (n + 1)} * \sum_{k=1}^{n-1} (S[k] - Dx)^2 U=n∗(n+1)1∗