5

我正在使用Ron Hyndman 在 R 中的优秀软件包中的fourier()and函数。为了验证是否在and中选择和使用了相​​同的术语,我绘制了一些输出术语。 fourierf()forecastfourier()fourierf()

下面是使用的原始数据ts.plot(data)。时间序列中的频率为 364,仅供参考。 数据

下面是使用fourier(data,3). 基本上,它看起来像是现有数据的镜像。

傅立叶

再次查看输出的 sin1 项,我们得到一些变化,显示出与上述数据相似的 364 天季节性。

傅立叶2

fourierf(data,3, 410)但是,当我使用以下数据绘制傅里叶预测的结果时。fourier它看起来比原始函数 提供的术语要平滑得多。傅立叶

所以,我想知道fourier()和的结果是如何fourierf()相关的。是否可以只看到一个合并的傅立叶结果,以便您可以看到正弦或余弦结果在现有数据中移动,然后在预测期间移动?如果不是,我如何确认创建的术语fourierf()适合样本内数据?

我想在auto.arimaorglm函数中与其他外部回归器一起使用它,如下所示:

 trainFourier<-fourier(data,3)

 trainFourier<-as.data.frame(trainFourier)
 trainFourier$exogenous<-exogenousData
 arima.object<-auto.arima(data, xreg=trainFourier)

 futureFourier<-fourierf(data,3, 410)

 fourierForecast<-forecast(arima.object, xreg=futureFourier, h=410)

并希望完全确定 auto.arima 与fourier()我将在 xreg 下放入的内容forecast(使用来自不同函数的术语,即)具有适当的拟合(使用来自 的术语ffourier())。

4

1 回答 1

12

想通了问题。我同时使用了fdaforecast包。 fda,用于函数数据分析和回归,有自己的fourier()功能。如果我 detach fda,我的 S1 术语fourier(data,3)看起来像这样:

傅里叶()

如果我使用,它与傅里叶预测很好地吻合ts.plot(c(trainFourier$S1,futureFourier$S1))

故事的寓意——看你的包裹抑制了什么,伙计们!

于 2013-07-31T20:18:55.347 回答