Как применить экспоненциальное преобразование к прогнозам из объекта прогноза в R - PullRequest
1 голос
/ 07 октября 2019

Я сделал модель арима с auto.arima . Затем я могу получить объект прогноза с помощью функции прогноз .

Проблема в том, что я применил логарифмическое преобразование к переменной, чтобы уменьшить гетероскедастичность. Теперь прогнозы в том же масштабе, что и журнал. Я хочу получить прогнозы в реальном масштабе, взяв экспоненциальное преобразование, а затем построить тот же график, который мы можем получить с помощью объекта прогноза. Но я не могу применить это преобразование к объекту прогноза.

arimaFit <- auto.arima(datats)
plot(exp(forecast(arimaFit, h = 100)))

Это дает мне следующую ошибку:

Error in exp(forecast(arimaFit)) : 
  non-numeric argument to mathematical function

Я думал о преобразовании объекта прогноза в матрицу, а затем оэкспоненциальная, а затем снова преобразовать матрицу в объект прогноза, но я не могу найти способ сделать это.

Есть ли способ преобразовать данные в экспоненциальную, чтобы получить тот же график с исходными данными?

1 Ответ

1 голос
/ 07 октября 2019

Вы можете возвести в степень среднее, верхнее, нижнее и x поля прогнозируемого объекта, а затем построить результирующий объект.

Поле x содержит серию, которую вы преобразовали, и затем запустил auto.arima () вкл. Поле среднего содержит прогноз (в логарифмическом масштабе), а верхнее и нижнее поля содержат доверительные интервалы (также в логарифмическом масштабе).

ff <- forecast(arimaFit, h = 100)
ff$x <- exp(ff$x)
ff$mean <- exp(ff$mean)
ff$lower <- exp(ff$lower)
ff$upper <- exp(ff$upper)
plot(ff)

В качестве альтернативы можно передать параметр lambda = 0. в функцию auto.arima (), которая будет преобразовывать ваши исходные ряды данных и подгонять их в логарифмированном виде, а затем функция прогноза преобразует обратно для уменьшения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...