use*_*225 1 r fft cluster-analysis time-series data-mining
我正在制定一个与确定销售动态相关的项目.这就是我的数据库看起来像http://imagizer.imageshack.us/a/img854/1958/zlco.jpg.有三列:
产品 - 介绍产品组
自产品推出以来的一周时间(周),前26周
Sales_gain - 产品销售如何按周变化
在数据库中有3302个观测值= 127个时间序列
我的目标是将时间序列分组,这些组将向我展示不同的销售动态.在聚类之前,我想使用快速傅立叶变换来改变向量上的时间序列并考虑幅度等,然后使用距离算法和分组产品.
这是我第一次处理FFT和聚类,所以如果有人指出步骤,我将不胜感激,我必须在使用FFT之前/之后对销售动态进行分组.我想在R中执行所有步骤,所以如果有人键入我应该使用哪些程序来执行所有步骤,那将会非常棒.
这就是我的时间序列现在的样子http://imageshack.com/a/img703/6726/sru7.jpg
请注意,我对时间序列分析相对较新(这就是为什么我不能把我的代码放在这里),所以你可以在R中提供的任何清晰度或任何你可以推荐的有效完成这项任务的包都将受到赞赏.
PS而不是FFT我在这里找到了DWT的代码 - > www.rdatamining.com/examples/time-series-clustering-classification但不能在我的数据库和时间序列中使用它(建议R在26周后分析新的时间序列).可以向我解释一下吗?
FFT/DWT的数据可能太少而无法理解.DTW可能会更好,但我也不认为它对销售数据有意义 - 为什么从一个位置到另一个位置会有x周的时间偏移?这并不是说数据是在未知的开始周被捕获的.
当您的数据具有有趣的重复模式时,FFT和DWT是很好的,并且您具有A)良好的时间分辨率(对于音频数据,例如16000 Hz - 我说的是数千个数据点!)和B)您不知道预期的频率.如果您知道例如您将有每周模式(例如星期日没有销售),那么您应该使用其他算法过滤它们.
当您不知道事件何时开始以及它们如何对齐时,DTW(动态时间扭曲)很好.假设您正在捕捉心脏测量值.你不能指望两个科目的心脏同步击败.DTW将尝试对齐该数据,并且可能(或可能不)成功匹配例如两个受试者的心跳中的异常.理论上...
也许你根本不需要专门的时间方法.
A)您的数据时间分辨率太低
B)您的数据已经完全一致
也许您所需要的只是花费更多时间来预处理数据,特别是规范化,以便能够捕获相似性.