在业务中使用与离散傅立叶变换相关的方法具有巨大的潜力。实现这一潜力的一个限制因素是方法学上的高进入壁垒。
工作的主要重点:
- 正确的时间序列傅立叶近似的数据要求;
- 预测的预期有效性;
- 少量的谐波就足以近似复杂的序列;
- 什么是傅立叶事件;
- 傅里叶事件如何以及如何帮助企业;
- 现金流量分析中的傅立叶事件。
Instagram的
1.预测
该任务是由一家大型海运公司确定的,并关注按船型划分的运费预测。该承运人订阅了一系列国际分析公司的预测,但是预测的质量并不适合他。分析公司使用多元回归,具有长期统计数据,并不断增加其模型的维度。同时,他们自己也接受了预测中很大比例的错误。
评估新预测成功与否的标准如下:给出一段历史数据,形成一个预测,并计算已经完成的未来的预测准确性。事件多变立即成为一个明确的方法论问题。如果美国直到2017年根本不出售石油,然后立即成为领导者,那么这将如何影响基于历史数据的结论。其他事件:战争,危机,-从预测的角度来看,基本上是相同的事件,但是从美国出口石油的情况极具指示性,以便消除预测方法中的事件因素(权重产生线性,事件产生差距和奇异性) ...
已经尝试了许多方法。最有趣的是时间序列的傅立叶级数逼近(Fourier近似)及其从业务预测的角度进行研究。同时,存在一个技术问题-一直以来,近似值都与原始序列有所不同。
2.数据的傅立叶变换
必要的初步解释。
离散傅立叶变换应用于包含实数值的向量。如果将时间序列视为一组<时间值>点,则将傅立叶变换应用于时间序列值序列中的向量。
使用傅里叶变换有一些微妙之处,这与值的数量和它们之间的间隙的特征有关。例如,原始时间序列对于某些时间位置(周末,假日)可能具有不均匀的间隔或缺失值。
在许多情况下,以下过程很有用。首先对原始时间序列进行插值,然后从插值函数中获取所需时间位置所需数量的值。因此,原始的时间序列被具有所需内插值数量的更频繁的常规序列所代替。
以下是A. Dieckmann描述的方法。
离散傅立叶变换。
使用以下公式将实值u = u [r]的向量转换为复数f [s]的向量(F [s,r]的多个公式给出相等的结果):f [s] = u [r] * F [s,r],其中
,和s,r的值从1到n变化。
获得傅立叶光谱所需的数据。
所得的矢量f [s]可以解释为傅立叶频谱,因为它包含有关基波谐波的幅度,频率和相位的信息。
而且,对u [r]有要求。当间隔具有相同大小的整数步长时,必须在间隔的分割点处指定u [r]值。 r值对应于向量中的位置(索引)。通常,r定义时间(时间序列)或空间(其他维度)中的位置。
假设必须在间隔[tMin,tMax]上定义向量u [r],其长度为tt =(tMax-tMin)。令delta = tt / n对应于间隔的相邻点之间的距离,在该距离处计算u [r]。
让我们考虑一下应该在技术上进行什么过程。
矩阵F [s,r]中的复数指数可以解释为向量探针(取决于s),它在复数平面中以频率(s-1)/ tt旋转并沿(r- 1)* tt / n。在矩阵相乘期间,将与r对应的探测向量乘以特定u [r],并在所有r上计算向量和,得出复数f(s)。因此,对于从1到n的所有s重复此操作。每个f [s]指示是否存在以与s相关的频率振荡的分量。
您应该如何形成?
此时,应按选定的时间间隔(整数步长的倍数)内插并显示原始时间序列。凭经验选择足够数量的点以进行精确逼近。
在此阶段,最主要的是要取多少点,取多少点。n的值固定为delta。在这种情况下,我们为间隔分区的所有值设置了一组n +1个点。
在u = u [r]中,只需要从第一个到最后一个点就可以包含点,但最后一个点则不能包含点:仅n个。
否则,傅立叶近似将相对于原始时间序列稍微偏移。
3.傅立叶变换的视觉解释
为了在实践中广泛应用傅里叶变换,除了复杂的公式外,还必须感受一下它所提供的内容,并正确形成初始数据。
考虑傅立叶变换如何作用于正弦函数。为此,将功能的行为和傅立叶变换在特定点给出的特征以及通常在所研究功能上的特征相结合是很有用的。
考虑段[0,π]上的函数1 + Sin [2πx]。
该函数的幅度对应于1Hz,因为它在2π之后重复其运动。
设n = 20,则将间隔分为相等部分时,可以在拆分的对应点获得21个值。但是,按照上面的解释,我们将只使用20点进行操作-没有最后一个点(上图中只有黑色)。
r参数沿横坐标前进,具有20个值。 s参数定义以(s-1)Hz为单位的速度。
下图显示了探针向量的旋转。每个矢量探针都从点u [r]开始,为其计算值F [s,r]。探针向量末端的参数如下获得:横坐标是乘积u [r] * Re [F [s,r]],纵坐标是u [r] * Im [F [s,r]]。
为了清楚起见,已经选择了从头到尾移动探针向量的调色板。它从棕色开始,然后从绿色开始变为蓝色:
下图显示了探针向量的旋转,该旋转减少到图形上要进行傅立叶变换的点,并且相邻探针向量直接相邻时的路径(向量和)。
纵轴显示原始函数的振幅和傅立叶变换的虚部。
横坐标轴是该点在原始函数和傅立叶变换的实部的时间间隔上的位置。
向量的总和示出了探针向量的运动的配置。黑点表示运动的开始和结束(如果不匹配,则为另一个黑点)。对于s = 3,起点和终点相同。对于s = 1和s = 2,开始和结束不匹配。
起始和结束坐标分别显示,以及四舍五入的值(非常接近零)。
s值表示测试频率。
行为具有对称性。
中心是s = 11。
以对称为例,让我们显示s = 19和s = 20的数字,它们与s = 3和s = 2对称。
如果您不拿20分,而是21分(包括最后一个),会发生什么。s = 3的示例 它显示了存在一个以s = 3相关的频率振荡的组件,而原始函数中没有这种振荡。原始功能只有1Hz的波动。
以上所有图均旨在说明正确分割间隔并在没有最后值的情况下为这些间隔采样数据的重要性。只有在这种情况下,原始序列才会有正确的傅立叶近似,并且有可能周期性延续。
傅立叶逼近的其余部分在参考文献中已作了充分介绍。
4.实时序列分析
让我们回到开始时描述的任务。
以下是有关运输船舶价格的历史数据的傅立叶近似。
在左侧第一个区块的每张图片中,都有一张图表显示了在什么水平的振幅值(红色虚线)被截断了不起的作用。右边的第一个方框显示了幅度减小的近似序列的前10个谐波的特性。
第二个块由曲线图组成,该曲线图具有增加的谐波次数(从最大振幅开始),用于近似。近似结果是红色虚线。
对于给定的时间序列,5个谐波就足够了。
对于这个时间序列,如果您认为非常老的数据不太重要,则可以将自己限制为5个谐波。
这个时间序列可以很好地近似为8次谐波。
在这种情况下,希望考虑11次谐波。
因此,在相当动态的活动领域(海上运输船的价格)中的历史数据可以很好地近似为10次谐波。
一般而言,如果已知近似的基本(某些)谐波,则可以考虑解决预测问题,即从历史数据片段中重构已有的未来时会出现一些误差。
同时,很明显,傅立叶逼近将给出的对未来的预测实际上是完全错误的:由于构造傅立叶逼近的透明机制,这一点变得很清楚。
通过多元回归,当我们谈论预测可靠性的70%时,一切都是相同的,但是不透明的构造机制使我们无法合理地希望总的来说(70%)预测将是正确的。
5.傅立叶事件
傅立叶事件的出现是假设发生了基本的循环过程(谐波),这些过程被叠加并与同样由谐波表示的重要事件相结合。
因此,傅立叶近似的所有谐波都分为两部分:过程的基本谐波和事件的谐波。重要的是要记住,基本谐波和事件谐波的总和能充分近似原始序列。
在这种情况下,对于一个好的预测,只要知道基本周期并具有事件和情况的列表就足够了,根据这些列表应基于预期或已经发生的事件或其链来形成滚动预测。但这是稍微不同的,不是传统的预测技术。
以下两种固定傅立叶事件的方法在方法上是合理的。
第一种方法涉及从近似的完整时间序列中减去所有可能的谐波组合,并将已知事件与产生的极值或稳定偏差进行比较。由于几乎所有行业都有分析公司来收集统计数据并查看趋势(在某些行业中甚至每周一次),因此找到某个日期的重要事件并不是一个足够困难的问题。
第二种方法称为分裂方法,它与将整个时间序列划分为不同长度的周期并通过可比较的谐波搜索“相似”周期有关。利用所描述的傅里叶逼近方法,这样的任务可以完全自动化。
拆分方法与第一种方法在质量上有所不同,因为存在一个初始操作,该操作对于整个拆分都是非线性的,可以将其趋势(线性回归)与所选拆分的每个分量分开。
6.通过傅立叶事件进行的石油价格数据分析
例如,考虑石油价格欧洲布伦特现货价格离岸价。资料来源:汤森路透。美国能源信息管理局。汤森路透。数据是从1987年5月20日到2020年11月10日的每日美元汇率。
原始时间序列。
我们选择一个趋势-线性回归。
我们从趋势中清除初始数据(可以随时恢复线性趋势)。
蓝色图形-原始数据。黑色是一种趋势。橙色-标准化数据(无趋势)。
找到一个近似值。
到目前为止,一切还不是很好:这样一个系列的8次和20次谐波很小。
对于30次谐波,结果是完全可以接受的。
让我们继续隔离傅立叶事件的方法。让我们举例说明用8次谐波逼近原始序列的一种方法。
找到8个谐波的所有可能组合。其中将有255个。对于255个组合中的每个组合,我们将从原始行与特定谐波组合生成的结构(行)之间的点差计算绝对值。
对于一个新系列,我们计算最大,标准偏差和值的总和(可能需要计算其他指标:平均值等)。
在图中,这些指示器按顺序显示。它们对应于前一百个值,并按最大值的降序排列。
让我们考虑选择的100个中的前60个。然后,我们将选择(视觉上)有趣的一个。这些图如下所示。图片下的数字对应于255的组合的序数。灰色图是原始行,红色图是谐波组合。
对于企业而言,什么才算是“有趣”是一项有意义的任务。到目前为止,所有这些只是标准技术。
最后结局如何?从与原始序列非常接近的一组谐波中,我们选择了在某些区域与原始时间序列非常吻合的组合,而在其他区域则表现出明显的差异。这是最后一个站点,可以分析该时间段内发生的事件(所有图表每天都有明确的日期)。
另外,图形中非常紧密相连的区域的存在为推导所反映过程的动力学的“规范”的特性提供了基础。
分析的目的是确定与事件相对应的谐波。反问题是基本循环过程的选择。
拆分方法很重要,因为一个时间序列所代表的过程实质上可以是复合的,并且取决于更高级别的事件:全球危机等。
7.现金流量分析中的傅立叶事件
分析时间序列的过程与周期性过程占主导地位的期望相关。通常,这种期望可能无法实现。关键在于甚至没有这种周期性的优势。仅仅由于形成时间序列的特定方式,可能无法识别该特定序列中的周期性。
现金流量是另一回事。实际上,在生产和商业活动中,大多数过程最初都是周期性的。偏离规范与破坏这种周期性的事件有关。在现金流量分析中使用傅里叶事件方法可以确定客观的“准则”以及偏差指标。
就傅立叶事件而言,现金流量分析问题在应用人工智能和神经网络(机器学习)方法方面是很好的算法。