From 420cbc8202ef07db6ac2610a8545d681604a2e56 Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer <jpfeifer@gmx.de> Date: Fri, 8 Sep 2023 08:03:18 +0200 Subject: [PATCH] kalman_transition_matrix.m: remove redundant input argument --- matlab/AIM_first_order_solver.m | 3 +-- matlab/DsgeSmoother.m | 4 ++-- matlab/UnivariateSpectralDensity.m | 2 +- matlab/conditional_variance_decomposition.m | 2 +- matlab/dynare_resolve.m | 4 ++-- matlab/forcst.m | 2 +- matlab/get_variance_of_endogenous_variables.m | 2 +- matlab/gsa/map_ident_.m | 4 ++-- matlab/kalman_transition_matrix.m | 5 ++--- matlab/moments/th_autocovariances.m | 2 +- matlab/non_linear_dsge_likelihood.m | 2 +- matlab/nonlinear-filters/solve_model_for_online_filter.m | 2 +- matlab/simultxdet.m | 2 +- matlab/stochastic_solvers.m | 2 +- 14 files changed, 18 insertions(+), 20 deletions(-) diff --git a/matlab/AIM_first_order_solver.m b/matlab/AIM_first_order_solver.m index 5ac8129414..026c2619ee 100644 --- a/matlab/AIM_first_order_solver.m +++ b/matlab/AIM_first_order_solver.m @@ -77,8 +77,7 @@ if aimcode ~=1 info(2) = 1.0e+8; return end -A = kalman_transition_matrix(dr,M.nstatic+(1:M.nspred), 1:M.nspred,... - M.exo_nbr); +A = kalman_transition_matrix(dr,M.nstatic+(1:M.nspred), 1:M.nspred); dr.eigval = eig(A); disp(dr.eigval) nd = size(dr.kstate,1); diff --git a/matlab/DsgeSmoother.m b/matlab/DsgeSmoother.m index 3075e7a0b3..f2a7011348 100644 --- a/matlab/DsgeSmoother.m +++ b/matlab/DsgeSmoother.m @@ -386,7 +386,7 @@ else end end if isoccbin==0 - [A,B] = kalman_transition_matrix(oo_.dr,(1:M_.endo_nbr)',ic,M_.exo_nbr); + [A,B] = kalman_transition_matrix(oo_.dr,(1:M_.endo_nbr)',ic); else opts_simul = options_.occbin.simul; end @@ -540,7 +540,7 @@ else end else % reconstruct smoother - [A,B] = kalman_transition_matrix(oo_.dr,(1:M_.endo_nbr)',ic,M_.exo_nbr); + [A,B] = kalman_transition_matrix(oo_.dr,(1:M_.endo_nbr)',ic); iT = pinv(T); Tstar = A(~ismember(1:M_.endo_nbr,oo_.dr.restrict_var_list),oo_.dr.restrict_var_list); Rstar = B(~ismember(1:M_.endo_nbr,oo_.dr.restrict_var_list),:); diff --git a/matlab/UnivariateSpectralDensity.m b/matlab/UnivariateSpectralDensity.m index 31ce57f69c..d829ba3f30 100644 --- a/matlab/UnivariateSpectralDensity.m +++ b/matlab/UnivariateSpectralDensity.m @@ -92,7 +92,7 @@ for i=M_.maximum_lag:-1:2 i0 = i1; end -[A,B] = kalman_transition_matrix(oo_.dr,ikx',1:nx,M_.exo_nbr); +[A,B] = kalman_transition_matrix(oo_.dr,ikx',1:nx); [vx, u] = lyapunov_symm(A,B*M_.Sigma_e*B',options_.lyapunov_fixed_point_tol,options_.qz_criterium,options_.lyapunov_complex_threshold,[],options_.debug); iky = iv(ivar); if ~isempty(u) diff --git a/matlab/conditional_variance_decomposition.m b/matlab/conditional_variance_decomposition.m index 088a62ddc8..c9d92e406a 100644 --- a/matlab/conditional_variance_decomposition.m +++ b/matlab/conditional_variance_decomposition.m @@ -41,7 +41,7 @@ if any(Steps <= 0) 'positive']) end -[transition_matrix, impulse_matrix] = kalman_transition_matrix(dr,(1:M_.endo_nbr)',M_.nstatic+(1:M_.nspred)',M_.exo_nbr); +[transition_matrix, impulse_matrix] = kalman_transition_matrix(dr,(1:M_.endo_nbr)',M_.nstatic+(1:M_.nspred)'); number_of_state_innovations = M_.exo_nbr; number_of_state_equations = M_.endo_nbr; diff --git a/matlab/dynare_resolve.m b/matlab/dynare_resolve.m index aca22c68a5..b3bf6ed1a5 100644 --- a/matlab/dynare_resolve.m +++ b/matlab/dynare_resolve.m @@ -61,9 +61,9 @@ switch nargin end if nargout==1 - A = kalman_transition_matrix(oo_.dr,iv,ic,M_.exo_nbr); + A = kalman_transition_matrix(oo_.dr,iv,ic); return end -[A,B] = kalman_transition_matrix(oo_.dr,iv,ic,M_.exo_nbr); +[A,B] = kalman_transition_matrix(oo_.dr,iv,ic); ys = oo_.dr.ys; diff --git a/matlab/forcst.m b/matlab/forcst.m index 874b8ea690..0d47fc7a9d 100644 --- a/matlab/forcst.m +++ b/matlab/forcst.m @@ -46,7 +46,7 @@ nspred = M_.nspred; nc = size(dr.ghx,2); endo_nbr = M_.endo_nbr; inv_order_var = dr.inv_order_var; -[A,B] = kalman_transition_matrix(dr,nstatic+(1:nspred),1:nc,M_.exo_nbr); +[A,B] = kalman_transition_matrix(dr,nstatic+(1:nspred),1:nc); if isempty(var_list) var_list = M_.endo_names(1:M_.orig_endo_nbr); diff --git a/matlab/get_variance_of_endogenous_variables.m b/matlab/get_variance_of_endogenous_variables.m index 3e37bb6f4e..85585cf85d 100644 --- a/matlab/get_variance_of_endogenous_variables.m +++ b/matlab/get_variance_of_endogenous_variables.m @@ -43,7 +43,7 @@ ghu = dr.ghu(i_var,:); nc = size(ghx,2); n = length(i_var); -[A,B] = kalman_transition_matrix(dr,nstatic+(1:nspred),1:nc,M_.exo_nbr); +[A,B] = kalman_transition_matrix(dr,nstatic+(1:nspred),1:nc); [vx,u] = lyapunov_symm(A,B*Sigma_e*B',options_.lyapunov_fixed_point_tol,options_.qz_criterium,options_.lyapunov_complex_threshold, [], options_.debug); diff --git a/matlab/gsa/map_ident_.m b/matlab/gsa/map_ident_.m index a0f353d23a..73eb02fbc9 100644 --- a/matlab/gsa/map_ident_.m +++ b/matlab/gsa/map_ident_.m @@ -129,7 +129,7 @@ if opt_gsa.load_ident_files==0 dr.ghx = T(:, [1:(nc1-M_.exo_nbr)],1); dr.ghu = T(:, [(nc1-M_.exo_nbr+1):end], 1); - [Aa,Bb] = kalman_transition_matrix(dr,iv,ic,M_.exo_nbr); + [Aa,Bb] = kalman_transition_matrix(dr,iv,ic); % bayestopt_.restrict_var_list, ... % bayestopt_.restrict_columns, ... % bayestopt_.restrict_aux, M_.exo_nbr); @@ -142,7 +142,7 @@ if opt_gsa.load_ident_files==0 for j=2:length(istable) dr.ghx = T(:, [1:(nc1-M_.exo_nbr)],j); dr.ghu = T(:, [(nc1-M_.exo_nbr+1):end], j); - [Aa,Bb] = kalman_transition_matrix(dr, iv, ic, M_.exo_nbr); + [Aa,Bb] = kalman_transition_matrix(dr, iv, ic); % bayestopt_.restrict_var_list, ... % bayestopt_.restrict_columns, ... % bayestopt_.restrict_aux, M_.exo_nbr); diff --git a/matlab/kalman_transition_matrix.m b/matlab/kalman_transition_matrix.m index 427e3aa7e8..62ed7ef86d 100644 --- a/matlab/kalman_transition_matrix.m +++ b/matlab/kalman_transition_matrix.m @@ -1,12 +1,11 @@ -function [A,B] = kalman_transition_matrix(dr,iv,ic,exo_nbr) -%function [A,B] = kalman_transition_matrix(dr,iv,ic,exo_nbr) +function [A,B] = kalman_transition_matrix(dr,iv,ic) +%function [A,B] = kalman_transition_matrix(dr,iv,ic) % Builds the transition equation of the state space representation out of ghx and ghu for Kalman filter % % INPUTS % dr: structure of decisions rules for stochastic simulations % iv: selected variables % ic: state variables position in the transition matrix columns -% exo_nbr: number of exogenous variables % % OUTPUTS % A: matrix of predetermined variables effects in linear solution (ghx) diff --git a/matlab/moments/th_autocovariances.m b/matlab/moments/th_autocovariances.m index 31fc2a25ff..dc002666b3 100644 --- a/matlab/moments/th_autocovariances.m +++ b/matlab/moments/th_autocovariances.m @@ -96,7 +96,7 @@ ghu_states_only = zeros(M_.nspred,M_.exo_nbr); ghu_states_only(1:M_.nspred,:) = ghu(index_states,:); %get shock impact on states only % state space representation for state variables only -[A,B] = kalman_transition_matrix(dr,index_states,1:M_.nspred,M_.exo_nbr); +[A,B] = kalman_transition_matrix(dr,index_states,1:M_.nspred); % Compute stationary variables for unfiltered moments (filtering will remove unit roots) if options_.hp_filter ~= 0 || options_.bandpass.indicator % By construction, all variables are stationary when filtered diff --git a/matlab/non_linear_dsge_likelihood.m b/matlab/non_linear_dsge_likelihood.m index 8455944a70..58dc3ee293 100644 --- a/matlab/non_linear_dsge_likelihood.m +++ b/matlab/non_linear_dsge_likelihood.m @@ -153,7 +153,7 @@ end switch DynareOptions.particle.initialization case 1% Initial state vector covariance is the ergodic variance associated to the first order Taylor-approximation of the model. StateVectorMean = ReducedForm.constant(mf0); - [A,B] = kalman_transition_matrix(dr,dr.restrict_var_list,dr.restrict_columns,Model.exo_nbr); + [A,B] = kalman_transition_matrix(dr,dr.restrict_var_list,dr.restrict_columns); StateVectorVariance = lyapunov_symm(A, B*Q*B', DynareOptions.lyapunov_fixed_point_tol, ... DynareOptions.qz_criterium, DynareOptions.lyapunov_complex_threshold, [], DynareOptions.debug); StateVectorVariance = StateVectorVariance(mf0,mf0); diff --git a/matlab/nonlinear-filters/solve_model_for_online_filter.m b/matlab/nonlinear-filters/solve_model_for_online_filter.m index 92cbf4c740..ae17f477f7 100644 --- a/matlab/nonlinear-filters/solve_model_for_online_filter.m +++ b/matlab/nonlinear-filters/solve_model_for_online_filter.m @@ -187,7 +187,7 @@ if setinitialcondition switch DynareOptions.particle.initialization case 1% Initial state vector covariance is the ergodic variance associated to the first order Taylor-approximation of the model. StateVectorMean = ReducedForm.state_variables_steady_state;%.constant(mf0); - [A,B] = kalman_transition_matrix(dr,dr.restrict_var_list,dr.restrict_columns,Model.exo_nbr); + [A,B] = kalman_transition_matrix(dr,dr.restrict_var_list,dr.restrict_columns); StateVectorVariance2 = lyapunov_symm(ReducedForm.ghx(mf0,:),ReducedForm.ghu(mf0,:)*ReducedForm.Q*ReducedForm.ghu(mf0,:)',DynareOptions.lyapunov_fixed_point_tol,DynareOptions.qz_criterium,DynareOptions.lyapunov_complex_threshold); StateVectorVariance = lyapunov_symm(A, B*ReducedForm.Q*B', DynareOptions.lyapunov_fixed_point_tol, ... DynareOptions.qz_criterium, DynareOptions.lyapunov_complex_threshold, [], DynareOptions.debug); diff --git a/matlab/simultxdet.m b/matlab/simultxdet.m index 2da4c02dfe..ba449664be 100644 --- a/matlab/simultxdet.m +++ b/matlab/simultxdet.m @@ -121,7 +121,7 @@ elseif iorder == 2 end end -[A,B] = kalman_transition_matrix(dr,nstatic+(1:nspred),1:nc,M_.exo_nbr); +[A,B] = kalman_transition_matrix(dr,nstatic+(1:nspred),1:nc); inv_order_var = dr.inv_order_var; ghx1 = dr.ghx(inv_order_var(ivar),:); diff --git a/matlab/stochastic_solvers.m b/matlab/stochastic_solvers.m index b30da096cc..6b0c4a55e8 100644 --- a/matlab/stochastic_solvers.m +++ b/matlab/stochastic_solvers.m @@ -223,7 +223,7 @@ if M_.maximum_endo_lead == 0 if M_.exo_nbr dr.ghu = -b\jacobia_(:,nz+1:end); end - dr.eigval = eig(kalman_transition_matrix(dr,nstatic+(1:nspred),1:nspred,M_.exo_nbr)); + dr.eigval = eig(kalman_transition_matrix(dr,nstatic+(1:nspred),1:nspred)); dr.full_rank = 1; dr.edim = nnz(abs(dr.eigval) > options_.qz_criterium); dr.sdim = nd-dr.edim; -- GitLab