我需要对机器学习问题的财务时间序列数据进行去噪,并且不了解如何计算小波变换。
我的理解是,您需要一个时间信号的多个点来识别频率。
小波变换对第一个点有什么作用?如果没有足够的分数,是否使用将来的数据来识别频率?如果是,是否可以进行小波变换以仅使用“ t”中的数据?
答案 0 :(得分:5)
通常,有三种类型的方法可以处理您的[财务]时间序列数据:
时域方法(例如,对财务时间序列数据进行回归,统计分析,例如均值,偏度,标准差,峰度,Black-Scholes模型)
Frequency domain methods(例如,傅立叶变换,功率谱密度)
Time-frequency domain methods(例如,短时傅立叶变换,Wavelet Transformation,Gabor变换)
如果可以,您可以使用time-frequency methods
对金融时间序列数据进行去噪,分类或分类。时频方法将您的[1-D]金融时间序列数据转换为新的[2-D]域,您可以同时看到时间和频率信息。
[1-D]频域方法仅返回[1-D]金融时间信号的频率信息,这意味着您的[1-D]时间数据将丢失,以换取[1-D]频率数据。
[1-D]时域方法仅返回财务信号的[1-D]时间分析,这也无法帮助您捕获频率信息。
您可以使用Continuous Wavelet Transform
或Discrete Wavelet Transform
去噪财务时间序列数据。
有许多工具/语言可以帮助您做到这一点:MatLab
,Python
等。如果您周围有程序员,他/她可能会在几个小时或一天内为您提供帮助,以使您的[1-D]财务时间数据通过这些[2-D]时频方法之一进行传递,并可视化输出。
您的问题主要是关于sampling rate
。如果采样率太低,则频域方法可能无法为您返回准确的分辨率(无论奈奎斯特定理如何)。但是,如果使用这种方法进行降噪,则通常意味着您拥有高频数据,并且[通常]您可能希望对数据进行下采样或过滤。
我建议您阅读有关母子的小波数学(例如Morlet,Daubechies等),这将帮助您了解基本函数如何映射整个财务时间序列数据,从而发生转换,并产生新的初始财务时间序列数据的时间和频率表示。
众所周知,小波是一种数学变换。如您所愿,您可以将几乎所有输入数据提供给变换方程式,并将为您进行变换。您最初可能会选择一个窗口大小。想象一下,您有一个1X1000
权益或衍生信息的[0,1,0.3,1.2,-1,...]
向量作为您的窗口,或任何其他较大尺寸的窗口1X1,000,000
。可能不重要,如果您的数据来自过去,还是您预测了未来并通过小波进行了转换。
您知道,财务[图表]数据通常会随着时间的流逝而具有其他[数据点]记录,即真实数据点或预测数据点。在这种情况下,这绝对好,您可以在新窗口上近乎实时地移动窗口,既可以扩大窗口尺寸,也可以删除第一个数据点并将新数据点附加到窗口上。 delata
时间可以是任何时间的一部分。您可能只需要考虑计算,以后再进行放大,这可能对您来说不是一个问题。
我对您的方法的一般看法是,您不知道许多假设,而是您朝着充满挑战的方向发展,但确实是非常好的方向。
Image Courtesy: Harvard University
好的项目,最良好的祝愿,感谢您的提问,欢迎访问stackoverflow.com!
答案 1 :(得分:2)
到目前为止,我已经找到了我最初的问题的答案,并希望分享我发现的内容。 这篇论文非常有用:https://www.sciencedirect.com/science/article/pii/S0022169418303317?via%3Dihub。
MODWT(最大重叠离散小波变换)是可用于实际应用的唯一变换,因为其他WT在每个时间步长t中都使用将来的数据点。 由于使用MODWT时存在“边界约束”,因此第一个L =(2 ** J-1)*(L-1)+1,其中J等于滤波器级别,L等于特定小波的小波系数数,值必须删除。
我保存了删除的MODWT值,并在训练我的神经网络后将它们添加回我的预测中。然后,我可以执行逆MODWT并确保末端的点不会失真。在计算指标时,我会再次删除前L个值。