Fil*_*lly 2 r time-series missing-data
我试图用R中的ARIMA模型计算时间序列中的缺失值.我尝试了这段代码,但没有成功.
x <- AirPassengers
x[90:100] <- NA
fit <- auto.arima(x)
fitted(fit)[90:100] ## this is giving me NAs
plot(x)
lines(fitted(fit), col="red")
Run Code Online (Sandbox Code Playgroud)
拟合模型不会影响缺失值.有关如何做到这一点的任何想法?
fitted给出样本内一步预测.做你想做的"正确"的方式是通过卡尔曼平滑器.使用缺失部分的前向和后向预测的平均值,可以获得对于大多数目的而言足够好的粗略近似.像这样:
x <- AirPassengers
x[90:100] <- NA
fit <- auto.arima(x)
fit1 <- forecast(Arima(AirPassengers[1:89],model=fit),h=10)
fit2 <- forecast(Arima(rev(AirPassengers[101:144]), model=fit), h=10)
plot(x)
lines(ts(0.5*c(fit1$mean+rev(fit2$mean)),
start=time(AirPassengers)[90],freq=12), col="red")
Run Code Online (Sandbox Code Playgroud)
