У меня есть четыре разных временных ряда часовых измерений:
- Потребление тепла внутри дома
- Температура вне дома
- Солнечная радиация
- Скорость ветра
Я хочу иметь возможность прогнозировать потребление тепла в доме. Существует четкая сезонная тенденция, как на ежегодной, так и на ежедневной основе. Поскольку существует четкая корреляция между различными сериями, я хочу подогнать их под модель ARIMAX. Это можно сделать в R, используя функцию arimax из пакета TSA.
Я пытался прочитать документацию по этой функции и прочитать о передаточных функциях, но пока мой код:
regParams = ts.union(ts(dayy))
transferParams = ts.union(ts(temp))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams,xtransf=transferParams,transfer=list(c(1,1))
pred10 = predict(model10, newxreg=regParams)
дает мне:
где черная линия - это фактические измеренные данные, а зеленая линия - моя подходящая модель для сравнения. Мало того, что это не хорошая модель, но явно что-то не так.
Я признаю, что мои знания о ARIMAX-моделях и функциях передачи ограничены. В функции arimax () (насколько я понял) xtransf - это экзогенный временной ряд, который я хочу использовать (используя передаточные функции) для прогнозирования моего основного временного ряда. Но в чем разница между xreg и xtransf?
В целом, что я сделал не так? Я хотел бы иметь возможность получить лучшее прилегание , чем тот достигается от пленки (тепло ~ температура Radi ветра * время).
Изменения: на основе некоторых комментариев я удалил перевод и добавил вместо него xreg:
regParams = ts.union(ts(dayy), ts(temp), ts(time))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams)
где dayy - «число чисел года», а time - час дня. Температура снова температура снаружи. Это дает мне следующий результат:
что лучше, но не совсем то, что я ожидал увидеть.