Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dóra Kocsis
dynare
Commits
b79f7e55
Commit
b79f7e55
authored
Oct 31, 2013
by
Houtan Bastani
Browse files
Merge pull request #513 from JohannesPfeifer/improved_messages
Add more explicit information in case of singularity problem
parents
07137e80
8282e76d
Changes
3
Hide whitespace changes
Inline
Side-by-side
matlab/dynare_estimation_1.m
View file @
b79f7e55
...
@@ -646,7 +646,7 @@ if ~options_.mh_posterior_mode_estimation && options_.cova_compute
...
@@ -646,7 +646,7 @@ if ~options_.mh_posterior_mode_estimation && options_.cova_compute
disp
(
'POSTERIOR KERNEL OPTIMIZATION PROBLEM!'
)
disp
(
'POSTERIOR KERNEL OPTIMIZATION PROBLEM!'
)
disp
(
' (minus) the hessian matrix at the "mode" is not positive definite!'
)
disp
(
' (minus) the hessian matrix at the "mode" is not positive definite!'
)
disp
(
'=> posterior variance of the estimated parameters are not positive.'
)
disp
(
'=> posterior variance of the estimated parameters are not positive.'
)
disp
(
'You should
try
to change the initial values of the parameters using'
)
disp
(
'You should try to change the initial values of the parameters using'
)
disp
(
'the estimated_params_init block, or use another optimization routine.'
)
disp
(
'the estimated_params_init block, or use another optimization routine.'
)
params_at_bound
=
find
(
xparam1
==
ub
|
xparam1
==
lb
);
params_at_bound
=
find
(
xparam1
==
ub
|
xparam1
==
lb
);
if
~
isempty
(
params_at_bound
)
if
~
isempty
(
params_at_bound
)
...
...
matlab/model_diagnostics.m
View file @
b79f7e55
...
@@ -85,6 +85,7 @@ end
...
@@ -85,6 +85,7 @@ end
%
%
% singular Jacobian of static model
% singular Jacobian of static model
%
%
singularity_problem
=
0
;
if
~
isfield
(
M
,
'block_structure_stat'
)
if
~
isfield
(
M
,
'block_structure_stat'
)
nb
=
1
;
nb
=
1
;
else
else
...
@@ -107,6 +108,7 @@ for b=1:nb
...
@@ -107,6 +108,7 @@ for b=1:nb
end
end
rank_jacob
=
rank
(
jacob
);
rank_jacob
=
rank
(
jacob
);
if
rank_jacob
<
size
(
jacob
,
1
)
if
rank_jacob
<
size
(
jacob
,
1
)
singularity_problem
=
1
;
disp
([
'model_diagnostic: the Jacobian of the static model is '
...
disp
([
'model_diagnostic: the Jacobian of the static model is '
...
'singular'
])
'singular'
])
disp
([
'there is '
num2str
(
endo_nbr
-
rank_jacob
)
...
disp
([
'there is '
num2str
(
endo_nbr
-
rank_jacob
)
...
...
@@ -143,4 +145,9 @@ for b=1:nb
...
@@ -143,4 +145,9 @@ for b=1:nb
end
end
end
end
end
end
if
singularity_problem
fprint
(
'The presence of a singularity problem typically indicates that there is one\n'
)
fprint
(
'redundant equation entered in the model block, while another non-redundant equation\n'
)
fprint
(
'is missing. The problem often derives from Walras Law.\n'
)
end
matlab/print_info.m
View file @
b79f7e55
...
@@ -36,7 +36,8 @@ if ~noprint
...
@@ -36,7 +36,8 @@ if ~noprint
case
2
case
2
error
([
'The generalized Schur (QZ) decomposition failed. '
...
error
([
'The generalized Schur (QZ) decomposition failed. '
...
'For more information, see the documentation for Lapack function dgges: info='
...
'For more information, see the documentation for Lapack function dgges: info='
...
int2str
(
info
(
2
))
', n='
int2str
(
info
(
3
))])
int2str
(
info
(
2
))
', n='
int2str
(
info
(
3
))
...
'. You can also run model_diagnostics to get more information on what may cause this problem.'
])
case
3
case
3
error
([
'Blanchard Kahn conditions are not satisfied: no stable'
...
error
([
'Blanchard Kahn conditions are not satisfied: no stable'
...
' equilibrium'
])
' equilibrium'
])
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment