posterior option in SA

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@709 ac1d8469-bf42-47a9-8791-bf33cf982152
time-shift
ratto 2006-04-11 15:31:45 +00:00
parent 91fa502406
commit 3476711051
1 changed files with 81 additions and 19 deletions

View File

@ -14,6 +14,7 @@ options_gsa_ = options_.opt_gsa;
options_gsa_ = set_default_option(options_gsa_,'stab',1);
options_gsa_ = set_default_option(options_gsa_,'redform',0);
options_gsa_ = set_default_option(options_gsa_,'pprior',1);
options_gsa_ = set_default_option(options_gsa_,'ppost',0);
options_gsa_ = set_default_option(options_gsa_,'ilptau',1);
options_gsa_ = set_default_option(options_gsa_,'Nsam',2048);
options_gsa_ = set_default_option(options_gsa_,'load_stab',0);
@ -65,10 +66,15 @@ end
options_gsa_ = set_default_option(options_gsa_,'glue',0);
if options_gsa_.glue,
dr_ = oo_.dr;
if options_gsa_.pprior
load([fname_,'_prior']);
if options_gsa_.ppost
load([fname_,'_post']);
DirectoryName = CheckPath('metropolis');
else
load([fname_,'_mc']);
if options_gsa_.pprior
load([fname_,'_prior']);
else
load([fname_,'_mc']);
end
end
nruns=size(x,1);
gend = options_.nobs;
@ -83,34 +89,74 @@ if options_gsa_.glue,
data = transpose(rawdata);
end
Obs.data = data;
Obs.time = [1:gend];
Obs.num = gend;
Obs.data = data;
Obs.time = [1:gend];
Obs.num = gend;
for j=1:size(options_.varobs,1)
Obs.name{j} = deblank(options_.varobs(j,:));
vj=deblank(options_.varobs(j,:));
jxj = strmatch(vj,lgy_(dr_.order_var,:),'exact');
js = strmatch(vj,lgy_,'exact');
y0=zeros(gend+1,nruns);
nb = size(stock_filter,3);
y0 = squeeze(stock_filter(:,jxj,:)) + ...
kron(stock_ys(js,:),ones(size(stock_filter,1),1));
if ~options_gsa_.ppost
y0=zeros(gend+1,nruns);
nb = size(stock_filter,3);
y0 = squeeze(stock_filter(:,jxj,:)) + ...
kron(stock_ys(js,:),ones(size(stock_filter,1),1));
Out(j).data = y0';
Out(j).time = [1:size(y0,1)];
else
Out(j).data = jxj;
Out(j).time = [pwd,'\',DirectoryName];
end
Out(j).name = vj;
Out(j).ini = 'yes';
Out(j).time = [1:size(y0,1)];
Out(j).data = y0';
Lik(j).name = ['rmse_',vj];
Lik(j).ini = 'yes';
Lik(j).isam = 1;
Lik(j).data = rmse_MC(:,j)';
if ~options_gsa_.ppost
y0 = squeeze(stock_smooth(:,jxj,:)) + ...
kron(stock_ys(js,:),ones(size(stock_smooth,1),1));
Out1(j).name = vj;
Out1(j).ini = 'yes';
Out1(j).time = [1:size(y0,1)];
Out1(j).data = y0';
else
Out1=Out;
end
ismoo(j)=jxj;
end
jsmoo = size(options_.varobs,1);
for j=1:M_.endo_nbr,
if ~ismember(j,ismoo),
jsmoo=jsmoo+1;
vj=deblank(M_.endo_names(dr_.order_var(j),:));
if ~options_gsa_.ppost
y0 = squeeze(stock_smooth(:,j,:)) + ...
kron(stock_ys(j,:),ones(size(stock_smooth,1),1));
Out1(jsmoo).time = [1:size(y0,1)];
Out1(jsmoo).data = y0';
else
Out1(jsmoo).data = j;
Out1(jsmoo).time = [pwd,'\',DirectoryName];
end
Out1(jsmoo).name = vj;
Out1(jsmoo).ini = 'yes';
end
end
tit(M_.exo_names_orig_ord,:) = M_.exo_names;
for j=1:M_.exo_nbr,
Exo(j).name = deblank(tit(j,:));
end
if ~options_gsa_.ppost
Lik(size(options_.varobs,1)+1).name = 'logpo';
Lik(size(options_.varobs,1)+1).ini = 'yes';
Lik(size(options_.varobs,1)+1).isam = 1;
Lik(size(options_.varobs,1)+1).data = -logpo2;
end
Lik(size(options_.varobs,1)+1).name = 'logpo';
Lik(size(options_.varobs,1)+1).ini = 'yes';
Lik(size(options_.varobs,1)+1).isam = 1;
Lik(size(options_.varobs,1)+1).data = -logpo2;
Sam.name = bayestopt_.name;
Sam.dim = [size(x) 0];
Sam.data = [x];
@ -118,6 +164,22 @@ if options_gsa_.glue,
Rem.id = 'Original';
Rem.ind= [1:size(x,1)];
save([fname_,'_glue'], 'Out', 'Sam', 'Lik', 'Obs', 'Rem')
if options_gsa_.ppost
Info.dynare=M_.fname;
Out=Out1;
save([fname_,'_post_glue'], 'Out', 'Sam', 'Lik', 'Obs', 'Rem','Info', 'Exo')
%save([fname_,'_post_glue_smooth'], 'Out', 'Sam', 'Lik', 'Obs', 'Rem','Info')
else
if options_gsa_.pprior
save([fname_,'_prior_glue'], 'Out', 'Sam', 'Lik', 'Obs', 'Rem')
Out=Out1;
save([fname_,'_prior_glue_smooth'], 'Out', 'Sam', 'Lik', 'Obs', 'Rem')
else
save([fname_,'_mc_glue'], 'Out', 'Sam', 'Lik', 'Obs', 'Rem')
Out=Out1;
save([fname_,'_mc_glue_smooth'], 'Out', 'Sam', 'Lik', 'Obs', 'Rem')
end
end
end