如何在R中从预测结果中提取预测值?

4

我正在对一个包含多个位置的时间序列运行VAR。假设loc1,loc2和loc3是时间序列数据的列名。

fitVAR = VAR(data,p=order,type = "both", ic = "AIC") 
pred = predict(fitVAR,n.ahead = L)

我知道可以通过pred$fcst$loc1[,1]等方法获得预测结果。但是,假设我想编写一个函数来实现这一点,该函数以位置名称为输入变量(例如,LOC=c("loc1","loc2","loc3")))。我该怎么办呢?

2个回答

5
您可以使用lapply来实现以下操作:
 lapply(predict(pp)$fcst[LOC],'[',,1)

例如:
data(Canada)
fit <- VAR(Canada, p = 2, type = "none")
LOC <- c('e','U')
lapply(predict(fit)$fcst[LOC],'[',,'fcst') 
lapply(predict(fit)$fcst[LOC],'[',,1)
$e
 [1] 962.3490 962.7852 963.1305 963.4016 963.6116 963.7742 
     963.9023 964.0081 964.1026 964.1954

$U
 [1] 6.764097 6.751969 6.804301 6.900299 7.030548 7.184748 
     7.353441 7.528150 7.701521 7.867432

3
如何使用以下方法:
locs <- sapply(pred$fcst[LOC], function (k) k[ , 1])

这个想法是,pred$fcst 是一个有命名的列表。你已经在 LOC 中放置了你想要的名称。现在我们可以收集名称在 LOC 中的元素,然后从每个元素中提取第一列到 locs 中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接