首页 > 其他分享 >去趋势波动分析方法-捕捉时间序列数据在不同尺度上的变化特性

去趋势波动分析方法-捕捉时间序列数据在不同尺度上的变化特性

时间:2024-07-21 11:30:30浏览次数:14  
标签:分析 DFA 尺度 分析方法 分形 捕捉 序列 趋势

前言

近年来,降水过程中的分形行为和长期相关性成为了一个活跃的研究领域。这些研究表明,降水数据中存在分形行为,但分形理论在实际应用中仍然不够充分。
传统方法的局限性:
由于降水过程的非平稳性,传统的线性方法(如自相关函数分析或谱分析)在检测时间序列的这些属性时不可靠。非平稳性是指时间序列的统计性质随时间变化,而传统方法假设这些统计性质是恒定的。

一、分形理论

分形理论是一种数学理论,用来描述那些在不同尺度上都呈现相似结构的复杂现象或形状。分形理论主要研究对象是那些无法用传统欧几里得几何完全描述的自然现象和人工结构。分形的主要特点包括:
自相似性:分形对象在不同尺度上都呈现相似的结构。例如,放大一部分分形图形,会发现其局部结构与整体结构相似。
分形维数:传统的几何维数是整数,如一维的线、二维的平面和三维的立体,而分形维数则可以是非整数。例如,一条分形曲线的维数可能介于一维和二维之间,体现其复杂程度。
无标度性:分形对象在不同尺度上都有相似的特性,没有一个特定的尺度是主要的。这意味着分形的某些统计性质在不同尺度上保持不变。
分形尺度特性是指分形对象在不同尺度上的统计特性。这些特性通常用来描述时间序列或空间数据的内在结构和规律。主要的分形尺度特性包括:
Hurst 指数 (Hurst Exponent):Hurst 指数是衡量时间序列长程依赖性的指标,通常用 H 表示。H 值介于 0 和 1 之间:
H = 0.5 表示随机游走(无相关性)。
H < 0.5 表示反持久性(负相关性),即未来的值倾向于与过去的值相反。
H > 0.5 表示持久性(正相关性),即未来的值倾向于与过去的值相同。
标度律 (Scaling Law):描述某些统计量如何随尺度变化的关系。典型的例子是幂律关系,如 X(T) 与 T 的关系,X(T) 是在尺度 T 上的聚合序列。

谱密度指数 (Spectral Density Exponent):用来描述时间序列在不同频率上的功率分布,通常通过谱分析来获得。

去趋势波动分析 (Detrended Fluctuation Analysis, DFA):一种用于检测非平稳时间序列中长程相关性的方法。DFA 可以消除时间序列中的趋势,计算其波动幅度,进而分析其分形特性。
在不同领域中,分形理论和分形尺度特性被广泛应用于描述和分析复杂系统的行为,例如:
水文学:分析河流流量、降水数据等的分形特性。
金融学:研究股票市场和经济数据的长程依赖性。
地球科学:分析地震、海浪、气温等自然现象的分形行为。
医学:研究心跳、DNA 序列等生物时间序列的分形特性。
通过分形理论和分形尺度特性的研究,科学家能够更好地理解和预测这些复杂系统的行为和规律。

二、重标极差分析

重标极差分析(Rescaled Range Analysis,简称 R/S 分析)是一种用于研究时间序列长记忆性质的方法,通过计算时间序列的极差(最大值与最小值的差值)并进行标准化来分析时间序列的自相似性和分形特性。然而,R/S 分析在存在趋势时可能会产生错误结果,这主要是因为以下几个原因:
趋势影响极差计算

R/S 分析的核心在于计算时间序列的极差(即最大值和最小值的差)。当时间序列中存在趋势时,极差值会受到趋势的显著影响。趋势的存在会使得极差值大大增加,从而导致R/S 分析得出的结果偏离实际的长记忆性质。例如:如果时间序列中存在一个上升或下降的线性趋势,这个趋势会显著增加时间序列的最大值和最小值之间的差距,从而夸大了极差值。

趋势掩盖了实际的自相似性。趋势会掩盖时间序列中的实际波动和自相似性特征。R/S 分析假定时间序列的波动是均匀的、平稳的,但趋势会引入额外的变化模式,使得原本的波动特征被掩盖。例如:季节性趋势或其他非平稳特征会增加时间序列的复杂性,导致 R/S 分析无法准确捕捉到时间序列的内在自相似性。

错误的 Hurst 指数估计。由于趋势的存在,R/S 分析得出的 Hurst 指数(Hurst exponent)会偏离实际值。Hurst 指数用于衡量时间序列的长记忆性和分形维数,但在存在趋势时,计算出的 Hurst 指数会被趋势所扭曲,不能准确反映时间序列的真实自相似性。例如:一个上升趋势会导致 Hurst 指数被高估,而一个下降趋势会导致 Hurst 指数被低估。

无法分离趋势和长记忆。R/S 分析无法有效分离时间序列中的趋势和长记忆性质。在趋势存在的情况下,分析结果会混淆趋势效应与长记忆效应,使得分析结果不可靠。例如:当趋势的变化速度和长记忆的时间尺度相似时,R/S 分析难以区分两者,导致误判时间序列的性质。

三、去趋势波动分析

分形数学派生出许多方法,用于在多个尺度上量化自相似性和时空波动特性,而不假设平稳性。最早用于计算 Hurst 指数的方法是重标极差分析(Rescaled Range Analysis,R/S 分析)。 然而,R/S 分析在存在趋势时可能会产生错误结果,因此受到许多研究者的批评。
为了克服 R/S 分析在存在趋势时的局限性,Peng 等人提出了去趋势波动分析(Detrended Fluctuation Analysis,DFA)。DFA 的核心思想是通过去除时间序列中的趋势成分,再进行波动分析,从而更准确地捕捉时间序列的长记忆特性。具体来说,DFA 的步骤如下:

分段:将时间序列划分为若干不重叠的窗口。
去趋势:在每个窗口内,拟合并去除局部趋势(通常为线性或多项式趋势)。
计算波动:计算去趋势后的时间序列波动值。
拟合幂律:对不同尺度的波动值进行幂律拟合,以确定 Hurst 指数。

通过去除趋势,DFA 能更准确地反映时间序列的实际长记忆特性,避免了 R/S 分析在存在趋势时可能产生的错误结果
DFA 方法被广泛应用于可靠地检测水文气象变量的长程相关性和分形尺度特性。该方法能够消除时间序列中不相关的趋势,从而准确地分析其相关性质。DFA 方法需要满足一个条件,即所有指数尺度只有一个单一的尺度(即分形维数),即单分形时间序列。然而,许多情况下,一个单一指数不足以全面描述时间序列的分形结构,因为可能存在分隔不同模式的交叉点,需要多个尺度指数来描述这些不同模式。这样需要多个尺度指数的时间序列称为多分形(Multifractal)。多分形可以看作是分形的扩展。

总结

总结来说,本文描述了降时间序列中分形和多分形理论的应用,并解释了传统方法的局限性和新方法(如 DFA)的优势。通过这些方法,可以更准确地分析和建模时间序列过程中的复杂性和多尺度特性。
分形分析在确定阈值方面有多个好处,特别是在处理复杂和非线性时间序列数据时。以下是分形分析在确定阈值方面的主要优点:

  1. 捕捉多尺度特性
    分形分析能够捕捉时间序列数据在不同尺度上的变化特性。这意味着可以更精确地识别和定义在不同时间尺度上显现的重要阈值,这些阈值可能在传统方法中被忽视。
  2. 识别非线性行为
    许多自然现象和系统表现出非线性行为,这使得它们难以通过线性分析方法进行处理。分形分析能够揭示这些非线性行为,并帮助确定更合适的阈值,反映系统的真实动态。
  3. 去趋势波动分析 (DFA)
    去趋势波动分析 (DFA) 是一种常用的分形分析方法,可以有效地处理非平稳时间序列数据。通过DFA,可以识别数据中不同尺度的波动模式,帮助确定在不同时间段内的关键阈值。
  4. 应对数据中的噪声
    分形分析方法能够有效应对数据中的噪声和随机波动。通过识别数据中的自相似性和长期相关性,分形分析可以更准确地确定阈值,减少噪声对结果的影响。
    一下以一个例子来说明:
    假设我们要确定某地区日降水量序列的极端降水事件阈值。
    传统百分位法:
    假设我们选择99%百分位作为极端降水事件阈值。
    如果这个地区降水量的99%百分位值是50毫米,那么任何超过50毫米的日降水量都被认为是极端事件。
    DFA/MF-DFA方法:
    我们首先对这段降水量序列进行DFA或MF-DFA分析。
    通过这些分析方法,我们可以确定降水量序列中的波动特性,例如数据的长程相关性和自相似性。
    基于这些波动特性,我们可以识别出那些显著偏离数据整体波动模式的事件,并将其设定为极端事件阈值。
    例如,通过DFA分析,我们可能发现降水量在某些特定波动模式下超过40毫米就已经是极端事件,而在另一些波动模式下可能需要超过60毫米才是极端事件。

参考文献
1 Habib, A. et al. Temporal scaling phenomena in groundwater-floodplain systems using robust detrended fluctuation analysis. Journal of Hydrology 549, 715-730, doi:https://doi.org/10.1016/j.jhydrol.2017.04.034 (2017).
2 Jin, H., Chen, X., Adamowski, J. & Hatami, S. Determination of duration, threshold and spatiotemporal distribution of extreme continuous precipitation in nine major river basins in China. Atmospheric Research 300, 107217, doi:https://doi.org/10.1016/j.atmosres.2023.107217 (2024).
3 Morales Martínez, J. L., Segovia-Domínguez, I., Rodríguez, I. Q., Horta-Rangel, F. A. & Sosa-Gómez, G. A modified Multifractal Detrended Fluctuation Analysis (MFDFA) approach for multifractal analysis of precipitation. Physica A: Statistical Mechanics and its Applications 565, 125611, doi:https://doi.org/10.1016/j.physa.2020.125611 (2021).

标签:分析,DFA,尺度,分析方法,分形,捕捉,序列,趋势
From: https://blog.csdn.net/frankgis/article/details/140506627

相关文章

  • 基于python的非平稳时间序列模型
    前言平稳时间序列指的是宽平稳时间序列,就是指时间序列的均值、方差和协方差等一二阶矩存在但不随时间改变,表现为时间的常数。若三个条件有一个不成立,那么就称该序列为非平稳时间序列。包括确定性趋势时间序列和随机性趋势时间序列。要想把非平稳的时间序列转化为平稳的时......
  • python中时间序列数据的梯度计算
    我正在尝试编写一个函数,它可以从最适合下面的线返回梯度dataframe在浏览了谷歌的几个资源之后,我仍然不确定这是如何完成的。我明白最佳拟合线的计算公式为:y=mx+b将因变量(y)设置为foos,将自变量(x)设置为DateTimeDatafram......
  • 为什么 NumPy 标量与自定义序列相乘而不与列表相乘?
    我有一个问题要问NumPy专家。考虑一个NumPy标量:c=np.arange(3.0).sum()如果我尝试将它与自定义序列相乘,例如classS:def__init__(self,lst):self.lst=lstdef__len__(self):returnlen(self.lst)def_......
  • YOLOv8改进 | Neck | 注意力尺度序列融合的检测框架ASF-YOLO
    秋招面试专栏推荐:深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转......
  • python反序列化
    之前hgame中遇到python反序列化,这次正好借分享会来尽可能详细学习一下python反序列化基础知识什么是序列化?反序列化?在很多时候为了方便对象传输,我们往往会把一些内容转化成更方便存储、传输的形式。我们把“对象->字符串”的翻译过程称为“序列化”;相应地,把“字符串->对......
  • C. 字符序列
    简要题意:有一个函数\(f(c,s)=cs_1cs_2cs_3\cdotscs_nc\)。给出操作序列\(c_i\),每次操作使\(s=f(c_i,s)\)(\(s\)开始为空串),求最后的字符串中有多少个本质不同的子序列。数据范围:\(n\le500\)。首先我们可以考虑一个简化经典问题,已知一个字符串,求本质不同的子序列数量。因为......
  • 掌握Python中的文件序列化:Json和Pickle模块解析
    Python文件操作与管理:Open函数、Json与Pickle、Os模块在Python中,文件是一个重要的数据处理对象。无论是读取数据、保存数据还是进行数据处理,文件操作都是Python编程中不可或缺的一部分。本文将详细介绍Python中文件操作的几种常用方法,包括open函数的使用、数据序列化与反......
  • 【序列化和反序列化】
    序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在Java中,这通常意味着将对象转换为字节流,以便可以将其保存到磁盘上或通过网络传输到另一个网络节点。相反,反序列化(Deserialization)是将已序列化的数据恢复为对象的过程。序列化的基本概念为了能......
  • 序列立方
    直接做很难下手。考虑“出现次数的立方值”的组合意义,就是在原序列中选三个相同的子序列的方案数,然后DP即可利用容斥原理计算高维前缀和老生常谈的取模后运算得负数的问题点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintmod=998244353;inta[255];......
  • java基础学习:序列化之 - kryo
    文章目录一、介绍二、特点三、使用方式四、应用场景五、注意事项一、介绍Kryo是一个快速且高效的Java序列化框架,它主要用于将Java对象转换为字节流以便存储或传输,同时能够将字节流反序列化为原始Java对象。Kryo相比Java自带的序列化机制具有更高的性能和更小的序列化......