data(FoReco_data)
### CROSS-SECTIONAL TOP-DOWN RECONCILIATION
# Cross sectional aggregation matrix
C <- FoReco_data$C
# monthly base forecasts
mbase <- FoReco2matrix(FoReco_data$base, m = 12)$k1
obs_1 <- FoReco_data$obs$k1
# average historical proportions
props <- colMeans(obs_1[1:168,-c(1:3)]/obs_1[1:168,1])
cs_td <- tdrec(topf = mbase[,1], C = C, weights = props)
### TEMPORAL TOP-DOWN RECONCILIATION
# top ts base forecasts ([lowest_freq' ... highest_freq']')
top_obs12 <- FoReco_data$obs$k12[1:14,1]
bts_obs1 <- FoReco_data$obs$k1[1:168,1]
# average historical proportions
props <- colMeans(matrix(bts_obs1, ncol = 12, byrow = TRUE)/top_obs12)
topbase <- FoReco_data$base[1, 1]
t_td <- tdrec(topf = topbase, m = 12, weights = props)
### CROSS-TEMPORAL TOP-DOWN RECONCILIATION
top_obs <- FoReco_data$obs$k12[1:14,1]
bts_obs <- FoReco_data$obs$k1[1:168,-c(1:3)]
bts_obs <- lapply(1:5, function(x) matrix(bts_obs[,x], nrow=14, byrow = TRUE))
bts_obs <- do.call(cbind, bts_obs)
# average historical proportions
props <- colMeans(bts_obs/top_obs)
ct_td <- tdrec(topf = topbase, m = 12, C = C, weights = props)
Run the code above in your browser using DataLab