Я использую функции fourier()
и fourierf()
в отличном пакете forecast
Рона Хайндмана в R. Чтобы проверить, выбраны ли и используются ли одни и те же термины в fourier()
и fourierf()
, я построил несколько выходных терминов.
Ниже приведены исходные данные с использованием ts.plot(data)
. Во временном ряду частота равна 364, к вашему сведению.
Ниже приведен график терминов, использующих fourier(data,3)
. По сути, это похоже на зеркальное отображение существующих данных.
Рассматривая только термин sin1 выходных данных, мы снова получаем некоторую вариацию, которая показывает аналогичную 364-дневную сезонность в соответствии с данными выше.
Однако, когда я строю результаты прогноза Фурье с использованием fourierf(data,3, 410)
, я вижу следующие данные. Это кажется гораздо более гладким, чем условия, предусмотренные исходной функцией fourier
.
Итак, мне интересно, как связаны результаты fourier()
и fourierf()
. Можно ли просто увидеть один консолидированный результат Фурье, чтобы вы могли видеть результат с синусом или косинусом, перемещающийся по существующим данным, а затем по периоду прогнозирования? Если нет, как я могу подтвердить, что условия, созданные fourierf()
, соответствуют данным в выборке?
Я хочу использовать его в функции auto.arima
или glm
с другими внешними регрессорами, подобными этому:
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()
).