Мне интересно, как я могу адаптировать использование терминов Фурье Роба Хиндмана, как в этом сообщении в блоге , для прогнозирования еженедельных данных временных рядов с помощью дополнительного регрессора. Ниже моя попытка, но я получаю сообщение об ошибке, которое xreg is rank deficient
library(forecast)
gascsv <- read.csv("https://robjhyndman.com/data/gasoline.csv", header=FALSE)[,1]
gas<- ts(gascsv[1:300], freq=365.25/7, start=1991+31/365.25)
#assume that gasreg is an additional regressor used to forecast gas
gasreg <- ts(gascsv[301:600], freq=365.25/7, start=1991+31/365.25)
bestfit <- list(aicc=Inf)
for(i in 1:25){
for(j in 1:25){
fit <- auto.arima(gas, xreg=cbind(fourier(gas, K=i),fourier(gasreg,K=j)), seasonal=FALSE)
if(fit$aicc < bestfit$aicc){
bestfit <- fit
k <-i
l <- j
}
else break;
}
}
Спасибо!
Редактировать: После некоторых дополнительных поисков в Интернете я нашел некоторые материалы, которые кажутся полезными. В другом сообщении Роба в качестве регрессоров используется набор терминов Фурье, а также фиктивная переменная. Этот пост на kaggle (см. 3. Модель ARIMA) использует несколько терминов Фурье способом, очень похожим на то, что я делаю, хотя я все еще получаю ошибку xreg is rank deficient
. Может ли это быть вызвано тем, что gasreg
совпадает с данными о газе?