BBD*_*Sys 35 python math matlab
对于已知具有季节性或日常模式的数据,我希望使用傅立叶分析来进行预测.在运行时间序列数据fft后,我获得系数.如何使用这些系数进行预测?
我相信FFT假设它接收的所有数据构成一个周期,那么,如果我只是使用ifft重新生成数据,我也在重新生成我的函数的延续,那么我可以将这些值用于未来的值吗?
简单地说:我运行fft为t = 0,1,2,.. 10然后在coef上使用ifft,我可以使用重新生成的时间序列为t = 11,12,... 20?
tar*_*nov 40
我知道这个问题对你来说可能不再适用,但对于寻找答案的其他人,我在Python中写了一个非常简单的傅里叶外推的例子https://gist.github.com/tartakynov/83f3cd8f44208a1856ce
在运行脚本之前,请确保已安装所有依赖项(numpy,matplotlib).随意尝试一下.
PS局部静止小波可能比傅立叶外推更好.LSW通常用于预测时间序列.傅立叶外推的主要缺点是它只是用周期N重复你的系列,其中N是你的时间序列的长度.
Ste*_*joa 23
听起来你想要一个外推和去噪的组合.
您说您想要在多个时段重复观察到的数据.那么,只需重复观察到的数据.无需傅立叶分析.
但你也想找到"模式".我认为这意味着在观察到的数据中找到主要频率成分.然后是,采用傅立叶变换,保留最大系数,并消除其余系数.
X = scipy.fft(x)
Y = scipy.zeros(len(X))
Y[important frequencies] = X[important frequencies]
Run Code Online (Sandbox Code Playgroud)
至于周期性重复:设z = [x, x],即两个信号周期x.然后Z[2k] = X[k]对于k{0,1,...,N-1}中的所有,否则为零.
Z = scipy.zeros(2*len(X))
Z[::2] = X
Run Code Online (Sandbox Code Playgroud)
在时间序列数据上运行FFT时,会将其转换为频域.系数乘以系列中的项(正弦和余弦或复指数),每个都具有不同的频率.
外推总是一件危险的事情,但欢迎你试试.当你这样做的时候,你正在使用过去的信息来预测未来:"通过今天的预测来预测明天的天气." 请注意风险.
我建议阅读"黑天鹅".