@@ -36,10 +36,7 @@ function simulate(series::Vector{T}, gas::Model{D, T}, H::Int, S::Int;
36
36
sim, param = simulate_recursion (gas, H + biggest_lag; initial_params = params_simulation)
37
37
observation_scenarios[:, scenario] = sim[biggest_lag+ 1 : end ]
38
38
# The first param is known
39
- parameter_scenarios[1 , :, scenario] = params_simulation[end , :]
40
- # The last param (param[end, :]) is actually in a time step bigger
41
- # than H
42
- parameter_scenarios[2 : end , :, scenario] = param[biggest_lag+ 1 : end - 1 , :]
39
+ parameter_scenarios[:, :, scenario] = param[biggest_lag+ 1 : end , :]
43
40
end
44
41
return observation_scenarios, parameter_scenarios
45
42
end
@@ -69,12 +66,18 @@ function forecast(series::Vector{T}, gas::Model{D, T}, H::Int;
69
66
70
67
observation_scenarios, parameter_scenarios = simulate (series, gas, H, S;
71
68
initial_params = initial_params)
69
+ parameters_forecast = mean (parameter_scenarios, dims = 3 )[:, :, 1 ]
70
+ observations_forecast = Vector {T} (undef, H)
71
+ for i in 1 : H
72
+ dist = update_dist (D, parameters_forecast, i)
73
+ observations_forecast[i] = mean (dist)
74
+ end
72
75
return Forecast (
73
76
get_quantiles (quantiles, observation_scenarios),
74
- mean (observation_scenarios, dims = 2 )[:] ,
77
+ observations_forecast ,
75
78
observation_scenarios,
76
79
get_quantiles (quantiles, parameter_scenarios),
77
- mean (parameter_scenarios, dims = 3 )[:, :, 1 ] ,
80
+ parameters_forecast ,
78
81
parameter_scenarios
79
82
)
80
83
end
0 commit comments