R中的残差使用auto.arima和预测包

标签 r regression prediction lm forecasting

我正在使用 forecast 包中的 auto.arima 函数拟合模型。例如,我得到一个 AR(1) 模型。然后我从这个模型中提取残差。这如何产生与原始向量相同数量的残差?如果这是一个 AR(1) 模型,那么残差的数量应该比原始时间序列的维度少 1。我错过了什么?

例子:

require(forecast)
arprocess = as.numeric(arima.sim(model = list(ar=.5), n=100))
#auto.arima(arprocess, d=0, D=0, ic="bic", stationary=T)
#  Series: arprocess 
#  ARIMA(1,0,0) with zero mean     

#  Coefficients:
#          ar1
#       0.5198
# s.e.  0.0867

# sigma^2 estimated as 1.403:  log likelihood=-158.99
# AIC=321.97   AICc=322.1   BIC=327.18
r = resid(auto.arima(arprocess, d=0, D=0, ic="bic", stationary=T))
> length(r)
  [1] 100

更新:深入研究 auto.arima 的代码,我发现它使用了 Arima,而后者又使用了 stats:::arima .因此,问题实际上是 stats:::arima 如何计算第一次观察的残差?

最佳答案

残差是实际值减去拟合值。对于第一次观察,拟合值是过程的估计平均值。对于后续观察,拟合值是先前观察的 $\phi$ 倍,假设已经估计了一个 AR(1) 过程。

关于R中的残差使用auto.arima和预测包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18665168/

相关文章:

r - 如何为回归创建循环

java - 使用自己的 Java 代码在 WEKA 中获取风险预测

r - 在 1 个变量和变量列表之间执行所有可能的线性回归

r - 导致对象消失的函数

r - 更改 ggplot2 中标记的厚度

R,dplyr : assign number of occurence as value to column at several group_by() levels

statistics - 学习最佳参数以最大化奖励

python - Python 和 R 之间的线性回归系数之间的差异

r - GBM多项分布,如何使用predict()得到预测类别?

python - 为什么要为结构化数据使用递归神经网络?