在 R 中拟合多元线性回归:自相关残差

机器算法验证 r 时间序列 多重回归 自相关 残差
2022-03-15 22:21:48

我试图用这样的方程估计 R 中的多元线性回归:

regr <- lm(rate ~ constant + askings + questions + 0)

提问和问题是季度数据时间序列,由askings <- ts(...).

现在的问题是我得到了自相关残差。我知道可以使用 gls 函数拟合回归,但我不知道如何识别我必须在 gls 函数中实现的正确 AR 或 ARMA 错误结构。

我现在会尝试再次估计,

gls(rate ~ constant + askings + questions + 0, correlation=corARMA(p=?,q=?))

但不幸的是,我既不是 R 专家,也不是一般的统计专家来识别 p 和 q。

如果有人能给我一个有用的提示,我会很高兴。非常感谢您!

2个回答

尝试

library(forecast)
fit <- auto.arima(rate, xreg=cbind(askings,questions))

这将适合线性模型,并且会自动识别错误的 ARMA 结构。它使用 MLE 而不是 GLS,但它们是渐近等价的。

如果您的目的是预测,您可以在参数上拟合一系列模型:

expand.grid(p = 1:P, q = 1:Q)

其中PQ是您希望包含的最大 AR(p) 和 MA(q) 项,并选择由 BIC 确定的最佳拟合模型。

auto.arima()包内预测将对此有所帮助,但可以使用expand.grid()and loop 和arima()R 附带的函数轻松手动编码。

gls()以上是拟合来自没有correlation结构的残差。

您也可以直接手动完成整个工作,只需为and和内置函数gls()的组合安装大量模型即可。pqAIC()

您还可以从没有相关结构的线性模型中绘制残差的 ACF ( acf()) 和部分 ACF ( ),并使用它们来建议所需的模型顺序。pacf()