【问题标题】:How to apply exponential transformation to the predictions from a forecast object in R如何将指数变换应用于R中预测对象的预测
【发布时间】:2020-02-04 16:43:40
【问题描述】:

我已经用 auto.arima 制作了一个 arima 模型。然后我可以使用 forecast 函数获得一个预测对象。

问题是我对变量应用了对数变换以减少异方差。现在预测与日志的规模相同。我想通过指数变换获得实际规模的预测,然后绘制我们可以使用预测对象获得的相同图表。但我无法将此转换应用于预测对象。

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

这给了我以下错误:

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

我曾想过将预测对象转换为矩阵,然后取指数,然后将矩阵再次转换为预测对象,但我找不到这样做的方法。

有什么方法可以将数据转换成指数得到与原始数据相同的图?

【问题讨论】:

标签: r transformation forecast


【解决方案1】:

您可以对预测对象的均值、上限、下限和 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() 函数,该函数将对原始数据序列进行对数转换并拟合,然后预测函数将反向转换以缩减。

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多