使用小波变换对金融时间序列数据进行降噪[关闭]

问题描述 投票:2回答:2

我需要对机器学习问题的金融时间序列数据进行去噪,并且不了解如何计算小波变换。

我的理解是你需要多个时间点信号来识别频率。

小波变换对第一个点的作用是什么?如果没有足够的点,它是否会使用未来的数据来识别频率?如果是,是否可以给出小波变换仅使用来自和“t”的数据?

finance quantitative-finance financial wavelet
2个回答
6
投票

通常,有三种方法可以处理您的[财务]时间序列数据:

如果愿意,您可以使用time-frequency methods对金融时间序列数据进行去噪,分类或分类。时频方法将您的[1-D]金融时间序列数据转换为新的[2-D]域,您可以看到时间和频率信息Representation of a Wavelet Transform and Short-Time Fourier Transform (Widipedia)

[1-D]频域方法仅返回[1-D]金融时间信号的频率信息,这意味着您的[1-D]时间数据将丢失以换取[1-D]频率数据。

[1-D]时域方法只返回[1-D]时间分析您的财务信号,这也无法帮助您捕获频率信息。

您可以使用Continuous Wavelet TransformDiscrete Wavelet Transform去噪金融时间序列数据。

有许多工具/语言可以帮助您这样做:MatLabPython等。如果您周围有程序员,他/她可能会在几小时或一天内帮助您通过这些[2-D]时频方法之一传递您的[1-D]财务时间数据并可视化输出。

你的问题主要是关于sampling rate。如果您的采样率太低,那么频域方法可能无法为您返回准确的分辨率(无论奈奎斯特定理)。但是,如果您使用此类方法进行去噪,通常意味着您拥有高频数据并且[通常]您可能需要对数据进行下采样或过滤。

我建议你阅读关于母亲和孩子的小波数学(例如,Morlet,Daubechies等),它将帮助你理解基本函数如何映射整个财务时间序列数据,转换发生,以及您的初始财务时间序列数据的新时间和频率表示结果。

如您所知,Wavelet是一种数学变换。如您所愿,您可以将几乎任何输入数据提供给变换方程,并为您进行变换。您最初可能会选择一个窗口大小。想象一下,你有一个1X1000矢量的[0,1,0.3,1.2,-1,...]股权或衍生信息作为你的窗口,或任何其他更大的窗口1X1,000,000。如果您的数据来自过去或您从未来预测并通过小波进行转换,则可能无关紧要。

如您所知,财务[图表]数据通常随着时间的推移,有一个额外的[数据点]记录,无论是真实数据点还是预测数据点。在这种情况下,它绝对没问题,您可以在新窗口上近乎实时地移动窗口,使窗口变大或移除第一个数据点并将新数据点附加到窗口。那个delata时间可以是任何一小部分时间。您可能只需要考虑计算,稍后进行扩展,这对您来说可能不是问题。

我对你的方法的一般看法,不知道很多假设,是你处于一个充满挑战但却非常伟大的方向。

Wavelet Shifting and Scaling

Image Courtesy: Harvard University

好项目,祝福,谢谢你的问题,欢迎来到stackoverflow.com!


2
投票

到现在为止,我找到了我最初问题的答案,并希望分享我发现的内容。这篇论文是一个很好的来源:https://www.sciencedirect.com/science/article/pii/S0022169418303317?via%3Dihub

MODWT(最大重叠离散小波变换)是唯一可用于实际应用的变换,因为其他WT在每个时间步使用未来的数据点。由于使用MODWT时的“边界约束”,第一个L =(2 ** J - 1)*(L - 1)+ 1,其中J等于滤波器级别,L是特定小波的小波系数的数量,必须删除值。

我保存了已删除的MODWT值,并在训练我的神经网络后将它们添加回我的预测中。然后,我可以执行逆MODWT并确保最后的点不会变形。在计算指标时,我再次删除前L个值。

© www.soinside.com 2019 - 2024. All rights reserved.