【发布时间】:2014-05-29 17:36:47
【问题描述】:
我想从R 中的ar() 函数输出模型中检索拟合值。使用Arima() 方法时,我使用fitted(model.object) 函数获取它们,但我找不到ar() 的等效项。
【问题讨论】:
标签: r time-series autoregressive-models
我想从R 中的ar() 函数输出模型中检索拟合值。使用Arima() 方法时,我使用fitted(model.object) 函数获取它们,但我找不到ar() 的等效项。
【问题讨论】:
标签: r time-series autoregressive-models
它不存储拟合向量,但有残差。使用来自ar-object 的残差从原始数据重构预测的示例:
data(WWWusage)
arf <- ar(WWWusage)
str(arf)
#====================
List of 14
$ order : int 3
$ ar : num [1:3] 1.175 -0.0788 -0.1544
$ var.pred : num 117
$ x.mean : num 137
$ aic : Named num [1:21] 258.822 5.787 0.413 0 0.545 ...
..- attr(*, "names")= chr [1:21] "0" "1" "2" "3" ...
$ n.used : int 100
$ order.max : num 20
$ partialacf : num [1:20, 1, 1] 0.9602 -0.2666 -0.1544 -0.1202 -0.0715 ...
$ resid : Time-Series [1:100] from 1 to 100: NA NA NA -2.65 -4.19 ...
$ method : chr "Yule-Walker"
$ series : chr "WWWusage"
$ frequency : num 1
$ call : language ar(x = WWWusage)
$ asy.var.coef: num [1:3, 1:3] 0.01017 -0.01237 0.00271 -0.01237 0.02449 ...
- attr(*, "class")= chr "ar"
#===================
str(WWWusage)
# Time-Series [1:100] from 1 to 100: 88 84 85 85 84 85 83 85 88 89 ...
png(); plot(WWWusage)
lines(seq(WWWusage),WWWusage - arf$resid, col="red"); dev.off()
【讨论】:
从 AR(p) 模型中获取拟合的最简单方法是使用 forecast 包中的 auto.arima(),它确实具有 fitted() 方法。如果您真的想要一个纯 AR 模型,您可以通过 d 参数限制差异,并通过 max.q 参数限制 MA 顺序。
> library(forecast)
> fitted(auto.arima(WWWusage,d=0,max.q=0))
Time Series:
Start = 1
End = 100
Frequency = 1
[1] 91.68778 86.20842 82.13922 87.60576 ...
【讨论】: