增加一个 mable:使用 ARMA 错误模型回归的残差和创新是相同的

问题描述

我觉得这里有些奇怪。例如,以下代码为残差和创新提供了相同的值:

fit <- us_change %>%
  model(ARIMA(Consumption ~ Income)) %>%
    augment()

augment() 函数似乎只提取了创新值,并将其用于回归中的残差。当我们使用 residuals() 提取残差和创新时可以看到这一点:

bind_rows(
    `Regression Errors` = as_tibble(residuals(fit,type = "regression")),`ARIMA Errors` = as_tibble(residuals(fit,type = "innovation")),.id = "type"
  )

那么残差和创新应该是不同的。

解决方法

.resid 提供的 augment() 列包含响应残差,而不是回归残差。我已更新文档以澄清这一点:https://github.com/tidyverts/fabletools/commit/c0efd7166bca06450d7b18d3d0530fdeac67cce7

响应残差 (.resid) 是对原始响应变量的反向转换预测的误差。创新残差 (.innov) 是模型的误差(可能是不同的、转换的响应变量)。由于您的模型不转换数据,因此响应残差 (.resid) 和创新残差 (.innov) 相同。

目前无法使用 augment() 函数获得回归残差(执行回归后,应用 ARIMA 过程之前的残差)。这是将来会很高兴的事情。