Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 快速傅立叶变换与时间序列聚类_R_Time Series_Fft_Cluster Analysis_Data Mining - Fatal编程技术网

R 快速傅立叶变换与时间序列聚类

R 快速傅立叶变换与时间序列聚类,r,time-series,fft,cluster-analysis,data-mining,R,Time Series,Fft,Cluster Analysis,Data Mining,我正在做一个与确定销售动态相关的项目。我的数据库就是这样的。共有三列: 产品-显示产品组 周-产品发布后的时间(周),前26周 销售收益-每周产品的销售如何变化 数据库中有3302个观测值=127个时间序列 我的目标是将时间序列分组,向我展示不同的销售动态。在聚类之前,我想使用快速傅立叶变换来改变向量上的时间序列,并考虑振幅等因素,然后使用距离算法和分组乘积 这是我第一次处理FFT和集群,因此如果有人能指出我在使用FFT对销售动态进行分组之前/之后必须执行的步骤,我将不胜感激。我想在R中完成所有

我正在做一个与确定销售动态相关的项目。我的数据库就是这样的。共有三列:

产品-显示产品组

周-产品发布后的时间(周),前26周

销售收益-每周产品的销售如何变化

数据库中有3302个观测值=127个时间序列

我的目标是将时间序列分组,向我展示不同的销售动态。在聚类之前,我想使用快速傅立叶变换来改变向量上的时间序列,并考虑振幅等因素,然后使用距离算法和分组乘积

这是我第一次处理FFT和集群,因此如果有人能指出我在使用FFT对销售动态进行分组之前/之后必须执行的步骤,我将不胜感激。我想在R中完成所有步骤,所以如果有人键入我应该使用哪些过程来完成所有步骤,那将是非常棒的

这就是我现在的时间序列

请注意,我对时间序列分析比较陌生(这就是为什么我不能把我的代码放在这里),所以您可以在R中提供任何清晰的信息,或者您可以推荐任何能够有效完成此任务的软件包,我们将不胜感激


另外,我在这里找到了DWT的代码->www.rdatamining.com/examples/time-series-clustering-classification,而不是FFT,但无法在我的数据库和时间序列上使用它(建议R在26周后分析新的时间序列)。有人能给我解释一下吗?

您的数据可能太少,FFT/DWT无法理解。DTW可能更好,但我也不认为它对销售数据有意义-为什么从一个位置到另一个位置会有x周的时间偏移?这并不是说这些数据是在未知的起始周捕获的

当您的数据具有有趣的重复模式时,FFT和DWT是好的,并且您具有A)良好的时间分辨率(对于音频数据,例如16000 Hz-我指的是数千个数据点!)和B)您不知道预期的频率。如果您知道,例如,您将有每周模式(例如,周日没有销售),那么您应该使用其他算法对其进行过滤

当您不知道事件何时开始以及它们如何对齐时,DTW(动态时间扭曲)很好。假设您正在捕获心脏测量值。你不能期望两个对象的心脏同步跳动。DTW将尝试对齐该数据,并可能(或可能不会)成功匹配,例如,两名受试者的心跳异常。理论上

也许你根本不需要专门的时间方法

A) 您的数据的时间分辨率太低

B) 您的数据已经完全对齐


也许你所需要的只是花更多的时间来预处理数据,特别是标准化,以便能够捕获相似性。

因为这更多的是一个算法问题而不是编程问题,你最好还是继续问下去。你的期望是什么?你认为明星产品会脱颖而出,而劣质产品会淡出市场吗?您是否尝试过一些简单的工具,如互相关,以确定随着时间的推移哪些序列具有相似的行为?还可以进行回归分析,然后根据其参数进行聚类。傅里叶变换通常用于(伪)周期信号,但在您的情况下,似乎没有足够的可用数据(即26周太少,无法捕捉季节性事件)。回归分析是什么意思?为每个时间序列创建模型?哪种基于参数的聚类群组观察方法?谢谢你的回答!那么你建议用什么方法呢?我想实现的结果是,对具有不同销售动态的产品进行聚类,并在图上显示这些不同的动态。我建议进行大量的预处理,而不是使用任何您觉得合适的算法,这样可以产生合理的结果。但预处理是关键。(根据您的数据,我们无法帮助您进行预处理)。