从预测对象中提取值

问题描述 投票:1回答:1

我正在将fpp2程序包中的数据集与预测程序包中的预测功能组合在一起。该预测的输出是带有SNAIVE_MODELS_ALL的对象列表。该对象包含来自消费,收入,生产和储蓄的预测。

library(dplyr)
library(forecast)
library(fpp2)

MY_DATA<-uschange[,1:4]

# 1.FORECAST FUNCTION          
FORECASTING_FUNCTION_SNAIVE <- function(Z, hrz = 5) {
  timeseries <- msts(Z, start = 1970, seasonal.periods = 4)
  forecast <- snaive(timeseries, biasadj = TRUE, h =  hrz)
}     
FORECASTING_LIST_SNAIVE <- lapply(X = MY_DATA, FORECASTING_FUNCTION_SNAIVE)

# 2.FORECASTING
 SNAIVE_MODELS_ALL<-lapply(FORECASTING_LIST_SNAIVE,  forecast)  

因此,我的目的是仅从SNAIVE_MODELS_ALL列表的所有预定序列(消费,收入,生产和储蓄)中提取均值预测值。实际上,此值的路径为:

SNAIVE_MODELS_ALL$Consumption$mean
SNAIVE_MODELS_ALL$Income$mean
SNAIVE_MODELS_ALL$Production$mean
SNAIVE_MODELS_ALL$Savings$mean

我尝试使用此代码,但我不能仅提取平均值

test<-lapply(SNAIVE_MODELS_ALL,ts.union)

所以有人可以帮助我如何解决此问题并仅提取均值吗?

r lapply forecast
1个回答
0
投票

您快到了。如果确实对SNAIVE_MODELS_ALL进行了套用,则会迭代列表中的每个顶级元素,例如SNAIVE_MODELS_ALL [[“ Consumption”]]。因此,剩下的就是找出每个元素的均值。

lapply(SNAIVE_MODELS_ALL,function(i)i$mean)
# or lapply(SNAIVE_MODELS_ALL,"[[","mean")

$Consumption
          Qtr1      Qtr2      Qtr3      Qtr4
2016                               0.5616798
2017 0.4046822 1.0477074 0.7295978 0.5616798

$Income
          Qtr1      Qtr2      Qtr3      Qtr4
2016                               0.7400626
2017 0.5190254 0.7237208 0.6447008 0.7400626

$Production
           Qtr1       Qtr2       Qtr3       Qtr4
2016                                  -0.8455464
2017 -0.4179305 -0.2033188  0.4749184 -0.8455464

$Savings
           Qtr1       Qtr2       Qtr3       Qtr4
2016                                   3.4827860
2017  2.2365341 -2.7215011 -0.5728579  3.4827860
© www.soinside.com 2019 - 2024. All rights reserved.