From 63f500830546e86748f6652a3f5795303b9079cb Mon Sep 17 00:00:00 2001 From: michel Date: Mon, 13 Oct 2008 20:08:13 +0000 Subject: [PATCH] v 4.0.2: simpler solution to problem with unobserved stochastic trends git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@2149 ac1d8469-bf42-47a9-8791-bf33cf982152 --- matlab/DsgeLikelihood.m | 6 +++--- matlab/DsgeSmoother.m | 34 +++++++++------------------------- 2 files changed, 12 insertions(+), 28 deletions(-) diff --git a/matlab/DsgeLikelihood.m b/matlab/DsgeLikelihood.m index 00277d797..5c2940d23 100644 --- a/matlab/DsgeLikelihood.m +++ b/matlab/DsgeLikelihood.m @@ -241,17 +241,17 @@ function [fval,cost_flag,ys,trend_coeff,info] = DsgeLikelihood(xparam1,gend,data Z = QT(mf,:); R1 = QT'*R; - % [u,s,v]=svd(Z*ST(:,1:nk),0); +% [u,s,v]=svd(Z*ST(:,1:nk),0); [QQ,RR,EE] = qr(Z*ST(:,1:nk),0); k = find(abs(diag(RR)) < 1e-8); if length(k) > 0 - k1 = find(ismember(EE,k)); %find(EE(:,k)); + k1 = EE(:,k); % [junk,k1] = max(abs(v(:,k))); dd =ones(nk,1); dd(k1) = zeros(length(k1),1); Pinf(1:nk,1:nk) = diag(dd); end - + end %------------------------------------------------------------------------------ % 4. Likelihood evaluation diff --git a/matlab/DsgeSmoother.m b/matlab/DsgeSmoother.m index 0cfb5b232..cc8b050ff 100644 --- a/matlab/DsgeSmoother.m +++ b/matlab/DsgeSmoother.m @@ -175,16 +175,15 @@ function [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK,T,R,P,PK,d, Z = QT(mf,:); R1 = QT'*R; - % [u,s,v]=svd(Z*ST(:,1:nk),0); - [QQ,RR,EE] = qr(Z*ST(:,1:nk),0); - k = find(abs(diag(RR)) < 1e-8); - if length(k) > 0 - k1 = find(ismember(EE,k)); %find(EE(:,k)); -% [junk,k1] = max(abs(v(:,k))); - dd =ones(nk,1); - dd(k1) = zeros(length(k1),1); - Pinf(1:nk,1:nk) = diag(dd); - end +% $$$ [u,s,v]=svd(Z*ST(:,1:nk),0); +% $$$ k = find(abs(diag(s)) < 1e-8); +% $$$ if length(k) > 0 +% $$$ [junk,k1] = max(abs(v(:,k))); +% $$$ dd =ones(nk,1); +% $$$ dd(k1) = zeros(length(k1),1); +% $$$ Pinf(1:nk,1:nk) = diag(dd); +% $$$ end + Pinf(1:nk,1:nk) = eye(nk); end % ----------------------------------------------------------------------------- % 4. Kalman smoother @@ -282,18 +281,3 @@ function [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK,T,R,P,PK,d, end end end - -aE=T*alphahat; -global ss_ -ss_.T=T; -ss_.R=R; -ss_.a=alphahat(:,end); -ss_.a1=alphahat(:,1); -ss_.ss=SteadyState(oo_.dr.order_var); -for j= (length(ss_.ss)+1):length(T), - ss_.ss(j)=ss_.ss(find(T(j,:))); -end -ss_.etahat=etahat; -% ss_.af=af; -ss_.aE=aE; -