The CONDFORE statement defines the options for conditional forecasts and scenario analysis.
You can apply conditional forecasts and scenario analysis for both Bayesian and non-Bayesian vector autoregressive models and vector error correction models, with or without independent variables. The future values of dependent and independent variables (which define the scenario) are saved in a table, which can then be input by specifying the SDATA= option in the CONDFORE statement. If you do not specify the SDATA= option, unconditional forecasts are performed. If you specify several scenarios (which are distinguished by the variable that is specified in the SID= option), conditional forecasts are performed for each scenario. The statistics of forecasts (including the mean, standard error, median, and lower and upper bounds of credible interval of each forecast) are output to the table that is specified in the OUT= option in the CONDFORE statement, and the simulated forecasts in each iteration are output to the table that is specified in the OUTSIM= option in the CONDFORE statement.
If you specify the BY statement, the scenarios in the SDATA= table are applied to each BY group, and the BY variables are included in the tables that are specified in the OUT= and OUTSIM= options in the CONDFORE statement. If you specify the ID statement, the ID variable is included in the table that is specified in the OUT= option in the CONDFORE statement. If you specify the SID= option in the CONDFORE statement, the SID= variable is included in the tables that are specified in the OUT= and OUTSIM= options in the CONDFORE statement.
When the GARCH statement is specified or the Q= or FI option is specified in the MODEL statement, the CONDFORE statement is ignored.
You can specify the following options:
-
ALPHA=
sets the size,
(the probability of falsely rejecting the null hypothesis), of the credible interval (100(
)%), where
is inclusively between 0 and 1. The credible interval is an equal-tailed interval. By default, ALPHA=0.05, which produces a 95% credible interval.
-
LEAD=number
specifies the number of multistep forecast values to compute. By default, LEAD=12.
-
NBI=number
specifies the number of burn-in iterations. By default, NBI=0.
-
NMC=number
specifies the number of Monte Carlo iterations. By default, NMC=1000.
-
OUT=SAS-data-set
specifies the output table for forecasts. The columns of the table are the mean, standard error, median, and lower and upper bounds of credible interval of the forecasts for each dependent variable in each scenario.
-
OUTSIM=SAS-data-set
specifies the output table for the simulated forecasts in each scenario.
-
PARM=FIXED | SAMPLING <(SCENARIO)>
-
specifies whether and how to consider the uncertainty of parameters. You can specify the following values:
- FIXED
fixes the parameters that are used in conditional forecasts to the parameter estimates for non-Bayesian models or to the expectation of the posterior distribution of parameters for Bayesian models.
- SAMPLING <SCENARIO>
samples the parameters from the posterior distribution of parameters. If you specify PARM=SAMPLING(SCENARIO), the parameters are sampled through the Gibbs sampling algorithm to consider the effect of the information in each scenario. In theory, it is suggested that the parameter uncertainty should be considered in the conditional forecasts for Bayesian models; however, in practice, the sampling (especially Gibbs sampling) might lead to floating point overflow because of some outlier-like realized parameters. You can specify this value only for Bayesian models.
By default, PARM=FIXED.
-
SDATA=SAS-data-set
specifies the input data table that contains observations for one or multiple scenarios.
-
SEED=number
specifies a nonnegative integer to use as the seed for generating random number sequences. You can use this option to replicate results from different runs if you specify the same positive random seed. If you specify SEED=0, the random seed is determined according to the system clock. By default, SEED=1.
-
SID=variable
SCENARIOID=(variable)
specifies a numeric variable that identifies each scenario. This option is ignored if the SDATA= option is not specified.
Some examples of the CONDFORE statements follow:
proc varmax data=one;
model y1 y2 / p=2;
condfore out=oucf;
run;
proc varmax data=one;
model y1 y2 / p=2;
condfore alpha=0.2 lead=6 sdata=scenarios sid=scenarioIndex
nbi=1000 nmc=10000 seed=12345 parm=sampling(scenario)
out=ocf outsim=ocfsim;
run;