# 9. Dynare misc commands

MATLAB/Octave command: send_endogenous_variables_to_workspace ;

  Puts the simulation results for the endogenous variables stored in `oo_.endo_simul` into vectors with the same name as the respective variables into the base workspace.

MATLAB/Octave command: send_exogenous_variables_to_workspace ;

  Puts the simulation results for the exogenous variables stored in `oo_.exo_simul` into vectors with the same name as the respective variables into the base workspace.

MATLAB/Octave command: send_irfs_to_workspace ;

  Puts the IRFs stored in `oo_.irfs` into vectors with the same name into the base workspace.

MATLAB/Octave command: clean_current_folder ;

  Cleans the current folder from all files generated by Dynare for the mod-files currently located in the current folder. It will delete all class files (+folders), log-files, and folders generated by previous runs of these files. Note that this also applies to the `results` subfolder. Proceed with caution.

Command: prior_function(OPTIONS);

  Executes a user-defined function on parameter draws from the prior distribution. Dynare returns the results of the computations for all draws in an ndraws by \(n\) cell array named `oo_.prior_function_results`.

  Options

  function = FUNCTION_NAME

    The function must have the following header `output_cell = FILENAME(xparam1,M_,options_,oo_,estim_params_,bayestopt_,dataset_,dataset_info)`, providing read-only access to all Dynare structures. The only output argument allowed is a \(1 \times n\) cell array, which allows for storing any type of output/computations. This option is required.

  sampling_draws = INTEGER

    Number of draws used for sampling. Default: 500.

Command: posterior_function(OPTIONS);

  Same as the `prior_function` command but for the posterior distribution. Results returned in `oo_.posterior_function_results`.

  Options

  function = FUNCTION_NAME

    See `prior_function_function`.

  sampling_draws = INTEGER

    See `prior_function_sampling_draws`.

MATLAB/Octave command: generate_trace_plots(CHAIN_NUMBER);

  Generates trace plots of the MCMC draws for all estimated parameters and the posterior density for the specified Markov Chain(s) `CHAIN_NUMBER`. If `CHAIN_NUMBER` is a vector of integers, the trace plots will plot contains separate lines for each chain.

MATLAB/Octave command: internals FLAG ROUTINENAME[.m]|MODFILENAME

  Depending on the value of `FLAG`, the `internals` command can be used to run unitary tests specific to a MATLAB/Octave routine (if available), to display documentation about a MATLAB/Octave routine, or to extract some information about the state of Dynare.

  Flags

  `--test`

  > Performs the unitary test associated to ROUTINENAME (if this routine exists and if the MATLAB/Octave `.m` file has unitary test sections).

  > Example

  > >     >> internals --test ROUTINENAME

  > > if `routine.m` is not in the current directory, the full path has to be given:

  > >     >> internals --test ../matlab/fr/ROUTINENAME

  `--display-mh-history`

  > Displays information about the previously saved MCMC draws generated by a `.mod` file named MODFILENAME. This file must be in the current directory.

  > Example

  > >     >> internals --display-mh-history MODFILENAME

  `--load-mh-history`

  > Loads into the MATLAB/Octave’s workspace information about the previously saved MCMC draws generated by a `.mod` file named MODFILENAME.

  > Example

  > >     >> internals --load-mh-history MODFILENAME

  > This will create a structure called `mcmc_informations` (in the workspace) with the following fields:

  > `Nblck`

  > > The number of MCMC chains.

  > `InitialParameters`

  > > A `Nblck*n`, where `n` is the number of estimated parameters, array of doubles. Initial state of the MCMC.

  > `LastParameters`

  > > A `Nblck*n`, where `n` is the number of estimated parameters, array of doubles. Current state of the MCMC.

  > `InitialLogPost`

  > > A `Nblck*1` array of doubles. Initial value of the posterior kernel.

  > `LastLogPost`

  > > A `Nblck*1` array of doubles. Current value of the posterior kernel.

  > `InitialSeeds`

  > > A `1*Nblck` structure array. Initial state of the random number generator.

  > `LastSeeds`

  > > A `1*Nblck` structure array. Current state of the random number generator.

  > `AcceptanceRatio`

  > > A `1*Nblck` array of doubles. Current acceptance ratios.

MATLAB/Octave command: prior [OPTIONS[ ...]];

  Prints information about the prior distribution given the provided options. If no options are provided, the command returns the list of available options.

  Options

  table

    Prints a table describing the marginal prior distributions (mean, mode, std., lower and upper bounds, HPD interval).

  moments

    Computes and displays first and second order moments of the endogenous variables at the prior mode (considering the linearized version of the model).

  moments(distribution)

    Computes and displays the prior mean and prior standard deviation of the first and second moments of the endogenous variables (considering the linearized version of the model) by randomly sampling from the prior. The results will also be stored in the `prior` subfolder in a `_endogenous_variables_prior_draws.mat` file.

  irfs(distribution)

    Computes the prior distribution of the impulse response functions of the endogenous variables (considering the linearized version of the model) by randomly sampling from the prior. The results will be stored in the `prior` subfolder in a `_endogenous_variables_irfs_prior_draws.mat` file.

  optimize

    Optimizes the prior density (starting from a random initial guess). The parameters such that the steady state does not exist or does not satisfy the Blanchard and Kahn conditions are penalized, as they would be when maximizing the posterior density. If a significant proportion of the prior mass is defined over such regions, the optimization algorithm may fail to converge to the true solution (the prior mode).

  simulate

    Computes the effective prior mass using a Monte Carlo. Ideally the effective prior mass should be equal to 1, otherwise problems may arise when maximizing the posterior density and model comparison based on marginal densities may be unfair. When comparing models, say \(A\) and \(B\), the marginal densities, \(m_A\) and \(m_B\), should be corrected for the estimated effective prior mass \(p_A\neq p_B \leq 1\) so that the prior mass of the compared models are identical.

  plot

    Plots the marginal prior density.

MATLAB/Octave command: search VARIABLENAME[ OPTION]

  Searches all occurrences of a variable in a model, and prints the equations where the variable appear in the command line window. If OPTION is set to withparamvalues, the values of the parameters (if available) are displayed instead of the name of the parameters. Requires the json command line option to be set.

  Example

  > Assuming that we already ran a .mod file and that the workspace has not been cleaned after, we can search for all the equations containing variable X

  >     >> search X

  >     Y = alpha*X/(1-X)+e;

  >     diff(X) = beta*(X(-1)-mX) + gamma1*Z + gamma2*R + u;

  > To replace the parameters with estimated or calibrated parameters:

  >     >> search X withparamvalues

  >     Y = 1.254634*X/(1-X)+e;

  >     diff(X) = -0.031459*(X(-1)-mX) + 0.1*Z - 0.2*R + u;

MATLAB/Octave command: dplot [OPTION VALUE[ ...]]

  Plot expressions extracting data from different `dseries` objects.

  Options

  --expression EXPRESSION

    `EXPRESSION` is a mathematical expression involving variables available in the `dseries` objects, `dseries` methods, numbers or parameters. All the referenced objects are supposed to be available in the calling workspace.

  --dseries NAME

    `NAME` is the name of a `dseries` object from which the variables involved in `EXPRESSION` will be extracted.

  --range DATE1:DATE2

    This option is not mandatory and allows plotting the expressions only over a sub-range. `DATE1` and `DATE2` must be dates as defined in Dates in a mod file.

  --style MATLAB_SCRIPT_NAME

    Name of a Matlab script (without extension) containing Matlab commands to customize the produced figure.

  --title MATLAB_STRING

    Adds a title to the figure.

  --with-legend

    Prints a legend below the produced plot.

  Remarks

  > - More than one –expression argument is allowed, and they must come first.

  > - For each `dseries` object we plot all the expressions. We use two nested loops, the outer loop is over the `dseries` objects and the inner loop over the expressions. This determines the ordering of the plotted lines.

  > - All `dseries` objects must be defined in the calling workspace, if a `dseries` object is missing the routine throws a warning (we only build the plots for the available `dseries` objects), if all `dseries` objects are missing the routine throws an error.

  > - If the range is not provided, the expressions cannot involve leads or lags.

  Example

  >     >> toto = dseries(randn(100,3), dates('2000Q1'), {'x','y','z'});
  >     >> noddy = dseries(randn(100,3), dates('2000Q1'), {'x','y','z'});
  >     >> b = 3;
  >     >> dplot --expression 2/b*cumsum(x/y(-1)-1) --dseries toto --dseries noddy --range 2001Q1:2024Q1 --title 'This is my plot'

  > will produce plots for `2/b*cumsum(x/y(-1)-1)`, where `x` and `y` are variables in `dseries` objects `toto` and `noddy`, in the same figure.

MATLAB/Octave command: set_dynare_threads(NAME_OF_MEX_FILE,INTEGER);

  A NAME_OF_MEX_FILE and INTEGER pair that can be used to set the number of parallel threads employed during the execution of .mex files. To get the number of logical cores n available, you can run `n=numprocs`.

  Available NAME_OF_MEX_FILE options are:

  > `'sparse_hessian_times_B_kronecker_C'`

  > > .mex file used during computation of second-order solutions and in identification. Default number of threads: number of logical cores.

  > `'local_state_space_iteration_2'`

  > > .mex file used during nonlinear filtering at order=2 without k_order_solver or with pruning. Default number of threads: number of logical cores.

  > `'local_state_space_iteration_3'`

  > > .mex file used during nonlinear filtering at order=3 without k_order_solver or with pruning. Default number of threads: number of logical cores.

  > `'local_state_space_iteration_k'`

  > > .mex file used during nonlinear filtering at order>3 (without pruning) or at order=3 with k_order_solver and without pruning. Default number of threads: 1.

  > `'perfect_foresight_problem'`

  > > .mex file used during perfect foresight simulations. Default number of threads: number of logical cores.

  > `'k_order_perturbation'`

  > > .mex file used for perturbation solutions with k_order_solver. Default number of threads: half the number of logical cores, but at least 1.