Ale*_*lex 3 regression r prediction forecasting lm
我正在使用auto.arima包中的函数拟合模型forecast.例如,我得到的是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
Run Code Online (Sandbox Code Playgroud)
更新:深入研究代码auto.arima,我看到它使用Arima了反过来使用的代码stats:::arima.因此,问题实际上是如何stats:::arima计算第一次观察的残差?
残差是实际值减去拟合值.对于第一次观察,拟合值是过程的估计平均值.假设已经估计了AR(1)过程,对于随后的观察,拟合值是先前观察的$\phi $倍.