File: bf.mod

package info (click to toggle)
dynare 7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 79,248 kB
  • sloc: cpp: 82,011; ansic: 28,583; objc: 12,573; yacc: 5,105; pascal: 2,374; lex: 1,502; python: 1,118; sh: 1,116; makefile: 605; lisp: 162; xml: 18
file content (100 lines) | stat: -rw-r--r-- 2,641 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// test slice sampler with conditional likelihood initial state estimation of OccBin
var q r rlag rnot u;

varexo  epsu
epsr
;
parameters betap phip rhop rhor rhou rlb shock_scale_zlb sigmap;
betap   = 0.99;
phip    = 0.2;
qinit   = 0;
rinit   = 0;
rhop    = 0.5;
rhor    = 0.8;
rhou    = 0;
rlb     = -(1/betap-1);
shock_scale_zlb =1;
sigmap  = 5;
model;
    [name = 'Asset price']
    q = betap*(1-rhop)*q(1)+rhop*q(-1)-sigmap*r+u;

    [name = 'Shock process u']
    u = rhou*u(-1)+epsu;

    [name = 'Notional rate']
    rnot = (1-rhor)*phip*q+rhor*rlag(-1);

    [name = 'Observed interest rate',relax='zlb']
    r = rnot + epsr;

    [name = 'Observed interest rate',bind='zlb']
    r = rlb + shock_scale_zlb*epsr;

    [name = 'Lag term TR',bind='zlb']
    rlag = rnot;

    [name = 'Lag term TR',relax='zlb']
    rlag = r;
end;
steady;

shocks;
    var epsr;
    stderr 0.001;
    var epsu;
    stderr 0.15;
end;

occbin_constraints;
    name 'zlb'; bind rnot<=rlb;
end;
// ------------------------------------------------------------------------
//.......................... COMPUTATIONS .................................
// ------------------------------------------------------------------------
// Prepare data and observations
// ----------------------------
varobs q r;
// Priors
// -----------------------------
estimated_params;
        phip, 0.2, 0.01, 2, NORMAL_PDF, 0.2, 0.05;
        rhop, 0.5, 0.01000, 0.9999, BETA_PDF, 0.5, 0.2;
        rhor, 0.8, 0.01000, 0.9999, BETA_PDF, 0.8, 0.1;
		stderr epsu, GAMMA_PDF, 0.15, 0.015, 0, inf;
        stderr epsr, GAMMA_PDF, 0.001, 0.0003, 0, inf;
end;

//occbin options
options_.occbin.likelihood.max_number_of_iterations = 30;
options_.occbin.simul.periodic_solution=true;
options_.occbin.smoother.periodic_solution=true;
options_.occbin.likelihood.periodic_solution=true;
// end occbin options

steady;
check;
// Estimation
// -----------------------------

if ~isoctave % test takes too much time under Octave,
estimation(estimate_initial_states_endogenous_prior,
    datafile='datafile',
    order=1,
	use_univariate_filters_if_singularity_is_detected=0,
	mh_replic=20,
	mode_compute=0,
	posterior_sampling_method='slice',
    posterior_sampler_options = ('save_iter_info_file', 0,
                                 'draw_init_state_from_smoother',1,
                                 'draw_init_state_with_rotated_slice',0,
                                 'fast_likelihood_evaluation_for_rejection',1),
	mh_nblocks=1,
	mh_drop=0.5,
	sub_draws = 10,
	//bayesian_irf,
    filter_covariance, smoothed_state_uncertainty,
	filtered_vars, smoother,consider_all_endogenous);

end