Question about nearly-zero variance in variance decomposition

Hello Dynare,

I am using Dynare to estimate my DSGE model. I am looking at the shocks decomposition, especially the results stored in oo_.PosteriorTheoreticalMoments.dsge.ConditionalVarianceDecomposition in the results.mat.

I find that the variance of the decomposition is extremely small (1*10^(-30)) while the mean is normal (0.1).

Could you please help me understand this nearly-zero variance? Relating to the literature, I should’ve been able to produce a confidence interval for my shocks decomposition.


  1. You need to be careful in your terminology. A variance decomposition is not a shock decomposition/historical shock decomposition.
  2. I am not sure I understand your question. What you seem to say is that your posterior distribution for the variance decomposition across draws is degenerate, i.e. for every parameter draw you get the same value. That could indicate a problem with the posterior distribution. Did the MCMC converge? And what was the acceptance rate?
  1. Sorry, I meant variance decomposition.
  2. I set mode_compute = 6, AcceptanceRateTarget = default (1/3), and it converges.

( Below is part of my log file. I think it looks normal.)
Estimation::mcmc: Number of mh files: 1 per block.
Estimation::mcmc: Total number of generated files: 2.
Estimation::mcmc: Total number of iterations: 20000.
Estimation::mcmc: Current acceptance ratio per chain:
Chain 1: 31.8%
Chain 2: 32.11%
Estimation::mcmc: Total number of MH draws per chain: 20000.
Estimation::mcmc: Total number of generated MH files: 1.

Run generate_trace_plots(1) and see whether the parameters fluctuate much.

Most of the parameters do not fluctuate much. Could you please take a look at the following two graphs? The parameter z is a TFP shock and the prior for its variance is inverse gamma (1,1).
TracePlot_Posterior_blck_1.pdf (380.2 KB)
TracePlot_ANTsigmaz_blck_1.pdf (369.9 KB)

Those graphs look ok. They suggest that the posterior was correctly sampled. The question is why you get no dispersion in the posterior variance decomposition estimates. Which Dynare version are you using and which fields exactly are you inspecting?

I am using Dynare version 4.5.4. I am estimating a DSGE model that investigates household labor decision. I log-linearized my model, and input US log GDP growth and log labor supply as data. The non-monetary model is mostly standard, with wage stickiness, habit in consumption, and income tax. I use Dynare to produce shock decomposition, variance decomposition, and impulse response functions, all of which look good.

Your statements do not answer my questions. All your points refer to the mean estimates, but not their distribution.

I am not sure I understand your last question. Please let me know if I still won’t get it.

My list of estimated parameters includes 4 parameters on the utility function, with prior assumed to be of normal distributions; 9 parameters on slopes (s) of the shocks (TFP, government expenditure, taste, etc.), with prior beta distributions; 9 parameters on variance of the error terms (e) of these shocks, with prior inverse gamma distributions. They look like following (X are the shocks):

X_t = s * X_(t-1)+e * N(0,1).

You still did not tell me

  1. which fields of oo_ you are looking at
  2. what the exact problem is, i.e. where you see too small numbers
  3. if that problem refers to any of the other posterior moments that Dynare computes
  4. which Dynare version you are using
  1. I am looking at oo_.PosteriorTheoreticalMoments.dsge.ConditionalVarianceDecomposition.Variance. The numbers in it are around (1*10^(-30)), compared to oo_.PosteriorTheoreticalMoments.dsge.ConditionalVarianceDecomposition.Mean, where numbers are around 0.1.
  2. The problem is that since the variance in ConditionalVarianceDecomposition is nearly zero, the confidence interval degenerates to the mean.
  3. No, I think the rest of the result looks good.
  4. I use dynare 4.5,4.

Regarding 3, do fields like oo_.PosteriorTheoreticalMoments.dsge.correlation.Variance have such small numbers as well?

Yes, you are right. oo_.PosteriorTheoreticalMoments.dsge.correlation.Variance, oo_.PosteriorTheoreticalMoments.dsge.VarianceDecomposition.Variance, oo_.PosteriorTheoreticalMoments.dsge.ConditionalVarianceDecomposition.Variance,
oo_.PosteriorTheoreticalMoments.dsge.covariance.Variance all have small numbers.

Other fields like oo_.PosteriorIRF, oo._posterior_deciles are normal.

I would need to see the files.

Sorry for this delayed reply, but I am not given the permission to send the files.

Thank you for your help.