diff --git a/matlab/gsa/filt_mc_.m b/matlab/gsa/filt_mc_.m index 472480135..60fb43976 100644 --- a/matlab/gsa/filt_mc_.m +++ b/matlab/gsa/filt_mc_.m @@ -150,14 +150,12 @@ if ~loadSA, if options_.opt_gsa.ppost || (options_.opt_gsa.ppost==0 && options_.opt_gsa.lik_only==0) skipline() disp('Computing RMSE''s...') - fobs = options_.first_obs; - nobs=options_.nobs; for i=1:size(vvarvecm,1), vj=deblank(vvarvecm(i,:)); jxj(i) = strmatch(vj,lgy_(dr_.order_var,:),'exact'); js(i) = strmatch(vj,lgy_,'exact'); - yss(i,:,:)=repmat(sto_ys(:,js(i))',[nobs,1]); + yss(i,:,:)=repmat(sto_ys(:,js(i))',[gend,1]); end if exist('xparam1','var') [alphahat,etahat,epsilonhat,ahat,SteadyState,trend_coeff,aK] = DsgeSmoother(xparam1,gend,Y,data_index,missing_value); @@ -171,7 +169,7 @@ if ~loadSA, for j=1:length(filfilt), load([DirectoryName filesep M_.fname '_filter_step_ahead',num2str(j),'.mat']); nb = size(stock,4); - y0(:,:,nbb+1:nbb+nb)=y0(:,:,nbb+1:nbb+nb)+squeeze(stock(1,js,1:nobs,:)); + y0(:,:,nbb+1:nbb+nb)=y0(:,:,nbb+1:nbb+nb)+squeeze(stock(1,js,1:gend,:)); nbb=nbb+nb; clear stock; end @@ -180,7 +178,7 @@ if ~loadSA, for j=1:length(filupdate), load([DirectoryName filesep M_.fname '_update',num2str(j),'.mat']); nb = size(stock,3); - yobs(:,:,nbb+1:nbb+nb)=yobs(:,:,nbb+1:nbb+nb)+squeeze(stock(js,1:nobs,:)); + yobs(:,:,nbb+1:nbb+nb)=yobs(:,:,nbb+1:nbb+nb)+squeeze(stock(js,1:gend,:)); nbb=nbb+nb; clear stock; end @@ -208,7 +206,13 @@ if ~loadSA, disp('... done!') if options_.opt_gsa.ppost - save([OutDir,filesep,fnamtmp,'.mat'], 'x', 'logpo2', 'likelihood', 'rmse_MC', 'rmse_mode','rmse_pmean', 'r2_MC', 'r2_mode','r2_pmean') + save([OutDir,filesep,fnamtmp,'.mat'], 'x', 'logpo2', 'likelihood', 'rmse_MC', 'r2_MC') + if exist('xparam1_mean','var') + save([OutDir,filesep,fnamtmp, '.mat'], 'rmse_pmean', 'r2_pmean','-append') + end + if exist('xparam1','var') + save([OutDir,filesep,fnamtmp,'.mat'], 'rmse_mode', 'r2_mode','-append') + end else if options_.opt_gsa.lik_only save([OutDir,filesep,fnamtmp, '.mat'], 'x', 'logpo2','likelihood', '-append') diff --git a/tests/Makefile.am b/tests/Makefile.am index c99fd9341..1241bbaa4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -9,6 +9,7 @@ MODFILES = \ gsa/ls2003.mod \ gsa/ls2003a.mod \ gsa/cod_ML_morris/cod_ML_morris.mod \ + gsa/morris/nk_est.mod \ ramst.mod \ ramst_a.mod \ ramst_static_tag.mod \ @@ -405,6 +406,7 @@ EXTRA_DIST = \ expectations/expectation_ss_old_steadystate.m \ steady_state/walsh1_old_ss_steadystate.m \ data/test.xls \ + gsa/morris/nk_est_data.m \ analytic_derivatives/fsdat_simul.m \ fs2000/fsdat_simul.m \ k_order_perturbation/run_fs2000kplusplus.m \ diff --git a/tests/gsa/morris/nk_est.mod b/tests/gsa/morris/nk_est.mod new file mode 100644 index 000000000..307d3536e --- /dev/null +++ b/tests/gsa/morris/nk_est.mod @@ -0,0 +1,61 @@ +//conducts posterior sampling with morris=1 and morris=2 and rmse +var y l w pi r A dy pic; +varexo eps_A eps_P; + +parameters PSI ETA BETA ALPHA KAPPA PI RHO; + +PSI = 1; +ETA = 2; +BETA = 0.95; +KAPPA = 0.5; +ALPHA = 0.99; +PI = 1.005; +RHO = 0.9; + +model; +y = exp(A)*l; //production function +w/y = PSI * l^ETA;//labor supply +BETA*1/y(+1)*r/pi(+1)=1/y;//saving +log(pi) = ALPHA*log(pi(-1))+(1-ALPHA) * log(pi(+1)) + KAPPA*log(w/exp(A))+eps_P;//inflation +log(r*BETA/PI) = 1.5*log(pi/PI); +A = RHO*A(-1)+eps_A; +//observable variables +dy = log(y)-log(y(-1)); +pic= log(pi)-log(PI); +end; + + +steady_state_model; +A = eps_A; +w = exp(A); +pi = PI; +l = (1/PSI)^(1/(1+ETA)); +y = exp(A)*l; +r = PI/BETA; +end; + +shocks; +var eps_A; +stderr 0.01; +var eps_P; +stderr 0.01; + +end; + + + +steady; +check; + +varobs dy pic; +estimated_params; +ETA,3.7,0.00000001,10,GAMMA_PDF,5,1; +KAPPA,0.3,0.00000001,0.99999999999,beta_PDF,0.5,0.1; +stderr eps_A,0.02,0.000000000001,100,INV_GAMMA2_PDF,0.2,inf; +stderr eps_P,0.03,0.000000000001,100,INV_GAMMA2_PDF,0.2,inf; +end; +estimation(order=1,prior_trunc=0,plot_priors =0, datafile=nk_est_data,conf_sig =.95,smoother,moments_varendo,filtered_vars,mode_check,mode_compute=4,mh_replic=5000,mh_jscale=1.5,mh_nblocks=1,bayesian_irf) y pi l dy pic; +dynare_sensitivity (pprior=0,ppost=1,datafile=nk_est_data,rmse=1, nsam = 2000, lik_only = 0, morris = 2,var_rmse=(dy pic)) ; +dynare_sensitivity (pprior=0,ppost=1,datafile=nk_est_data,rmse=1, nsam = 2000, lik_only = 0, morris = 1,var_rmse=(dy pic)) ; + + diff --git a/tests/gsa/morris/nk_est_data.m b/tests/gsa/morris/nk_est_data.m new file mode 100644 index 000000000..163632869 --- /dev/null +++ b/tests/gsa/morris/nk_est_data.m @@ -0,0 +1,2 @@ +dy=[-0.0164149606036333;-0.00444371301272480;-0.0207795284866737;0.0215820786048762;-0.0312134320780645;-0.00512948534530982;-0.00816441138903740;-0.00920043474284587;-0.00444588962592387;0.00990037151297068;-0.000302205963798416;0.0109144391005480;0.0206507032511272;-0.0255857842135019;0.0299198619790592;0.0142546980534387;0.00859492177250059;-0.0303314095678154;0.00899356446332817;-0.00604285895266747;0.0314719484936994;0.00774369700013479;-0.00392718531930176;0.0241656580707182;0.0194253385156230;0.0141073525966933;-0.0151806414891996;0.000550251173616845;0.0208456942892510;0.00560322075594884;0.00853240749768242;0.0164247183007063;-0.0368678800477706;-0.0185742571903465;-0.0173299635271128;0.000103201182005248;0.00328678857263721;0.0194237364814262;-0.0121878074879048;0.00324521362781441;0.0165910450130083;0.0118896697975725;-0.00616860319246618;-0.0291333058623287;0.00172296531042425;0.00171010632823477;-0.0154041449407641;-0.0148257487058540]; +pic=[-0.00435379489058567;-0.00435180828101745;-0.00817200970941144;-0.00842731261556473;-0.00951737126246006;-0.00886695915875320;-0.00604500733828971;-0.00540405598174093;0.00102138053045196;-0.00722842198263155;-0.00536250628245237;0.0143162753757018;0.00155729167142129;0.00794856841256976;0.00238632941368923;-0.00462579231860141;-0.00181553037594265;-0.00296814609653130;-0.00202489064931017;-0.00392682471012871;-0.00315893888873626;-0.00148200892054426;-0.00361797343071696;0.00393560470670129;0.00391822514942049;0.00709945122442479;0.0192754219330497;0.00950736196030246;0.0175065926305598;0.00444328018119639;-0.00497676719276699;-0.0163242287845185;-0.0131904917611750;-0.00513290322220038;-0.00282079685563725;0.00319215754813894;0.00238719485546936;0.00189456749063194;0.00208023344838363;0.0150119063295650;0.00613925617677741;0.00835197635546318;0.00687792801237943;-0.000973779982694851;-0.00165376676530256;-0.000219020842051647;-0.00244790436135745;0.000238009254825620]; \ No newline at end of file