TeX formatting and various things...

git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@656 ac1d8469-bf42-47a9-8791-bf33cf982152
time-shift
adjemian 2006-03-06 08:38:11 +00:00
parent 00fac4544c
commit 58cb6e42b6
3 changed files with 32 additions and 53 deletions

View File

@ -191,8 +191,7 @@ rawdata = read_variables(options_.datafile,options_.varobs,[],options_.xls_sheet
k = [];
k1 = [];
for i=1:n_varobs
k = [k strmatch(deblank(options_.varobs(i,:)),M_.endo_names(dr.order_var,:), ...
'exact')];
k = [k strmatch(deblank(options_.varobs(i,:)),M_.endo_names(dr.order_var,:),'exact')];
k1 = [k1 strmatch(deblank(options_.varobs(i,:)),M_.endo_names, 'exact')];
end
@ -257,29 +256,9 @@ if options_.mode_compute > 0 & options_.posterior_mode_estimation
disp(sprintf('Objective function at mode: %f',fval))
disp(sprintf('Objective function at mode: %f',DsgeLikelihood(xparam1,gend,data)))
elseif options_.mode_compute == 5
if isfield(options_,'hess')
flag = options_.hess;
else
flag = 1;
end
if ~exist('igg'), % by M. Ratto
hh=[];
gg=[];
igg=[];
end % by M. Ratto
if isfield(options_,'ftol')
crit = options_.ftol;
else
crit = 1.e-7;
end
if isfield(options_,'nit')
nit = options_.nit;
else
nit=1000;
end
%[xparam1, hh, gg, fval] = newrat('DsgeLikelihood',xparam1,[],[],flag,gend,data);
[xparam1, hh, gg, fval, invhess] = newrat('DsgeLikelihood',xparam1,hh,gg,igg,crit,nit,flag,gend,data);
eval(['save ' M_.fname '_mode xparam1 hh gg fval invhess;']);
flag = 0;
[xparam1, hh, gg, fval] = newrat('DsgeLikelihood',xparam1,[],[],flag,gend,data);
eval(['save ' M_.fname '_mode xparam1 hh gg fval;']);
end
if options_.mode_compute ~= 5
hh = reshape(hessian('DsgeLikelihood',xparam1,gend,data),nx,nx);
@ -483,9 +462,11 @@ elseif ~any(bayestopt_.pshape > 0) & options_.posterior_mode_estimation
end
OutputDirectoryName = CheckPath('Output');
if any(bayestopt_.pshape > 0) & options_.TeX %% Bayesian estimation (posterior mode) Latex output
if np
filename = [M_.fname '_Posterior_Mode_1.TeX'];
filename = [OutputDirectoryName '\' M_.fname '_Posterior_Mode_1.TeX'];
fidTeX = fopen(filename,'w');
fprintf(fidTeX,'%% TeX-table generated by dynare_estimation (Dynare).\n');
fprintf(fidTeX,'%% RESULTS FROM POSTERIOR MAXIMIZATION (parameters)\n');
@ -502,7 +483,7 @@ if any(bayestopt_.pshape > 0) & options_.TeX %% Bayesian estimation (posterior m
ip = nvx+nvn+ncx+ncn+1;
for i=1:np
fprintf(fidTeX,'$%s$ & %s & %7.3f & %6.4f & %8.4f & %7.4f \\\\ \n',...
M_.param_names_tex(estim_params_.param_vals(i,1),:),...%deblank(estim_params_.tex(i,:)),...
M_.param_names_tex(estim_params_.param_vals(i,1),:),...
deblank(pnames(bayestopt_.pshape(ip)+1,:)),...
bayestopt_.pmean(ip),...
estim_params_.param_vals(i,6),...
@ -520,7 +501,7 @@ if any(bayestopt_.pshape > 0) & options_.TeX %% Bayesian estimation (posterior m
fclose(fidTeX);
end
if nvx
TeXfile = [M_.fname '_Posterior_Mode_2.TeX'];
TeXfile = [OutputDirectoryName '\' M_.fname '_Posterior_Mode_2.TeX'];
fidTeX = fopen(TeXfile,'w');
fprintf(fidTeX,'%% TeX-table generated by dynare_estimation (Dynare).\n');
fprintf(fidTeX,'%% RESULTS FROM POSTERIOR MAXIMIZATION (standard deviation of structural shocks)\n');
@ -556,7 +537,7 @@ if any(bayestopt_.pshape > 0) & options_.TeX %% Bayesian estimation (posterior m
fclose(fidTeX);
end
if nvn
TeXfile = [M_.fname '_Posterior_Mode_3.TeX'];
TeXfile = [OutputDirectoryName '\' M_.fname '_Posterior_Mode_3.TeX'];
fidTeX = fopen(TeXfile,'w');
fprintf(fidTeX,'%% TeX-table generated by dynare_estimation (Dynare).\n');
fprintf(fidTeX,'%% RESULTS FROM POSTERIOR MAXIMIZATION (standard deviation of measurement errors)\n');
@ -590,7 +571,7 @@ if any(bayestopt_.pshape > 0) & options_.TeX %% Bayesian estimation (posterior m
fclose(fidTeX);
end
if ncx
TeXfile = [M_.fname '_Posterior_Mode_4.TeX'];
TeXfile = [OutputDirectoryName '\' M_.fname '_Posterior_Mode_4.TeX'];
fidTeX = fopen(TeXfile,'w');
fprintf(fidTeX,'%% TeX-table generated by dynare_estimation (Dynare).\n');
fprintf(fidTeX,'%% RESULTS FROM POSTERIOR MAXIMIZATION (correlation of structural shocks)\n');
@ -625,7 +606,7 @@ if any(bayestopt_.pshape > 0) & options_.TeX %% Bayesian estimation (posterior m
fclose(fidTeX);
end
if ncn
TeXfile = [M_.fname '_Posterior_Mode_5.TeX'];
TeXfile = [OutputDirectoryName '\' M_.fname '_Posterior_Mode_5.TeX'];
fidTeX = fopen(TeXfile,'w');
fprintf(fidTeX,'%% TeX-table generated by dynare_estimation (Dynare).\n');
fprintf(fidTeX,'%% RESULTS FROM POSTERIOR MAXIMIZATION (correlation of measurement errors)\n');

View File

@ -4,7 +4,7 @@ global M_ oo_ options_ bayestopt_ estim_params_
bayestopt_.penalty = 1e8;
DirectoryName = CheckPath('metropolis');
MhDirectoryName = CheckPath('metropolis');
nblck = options_.mh_nblck;
nruns = ones(nblck,1)*options_.mh_replic;
@ -23,9 +23,9 @@ if options_.load_mh_file == 0
disp('MH: One Chain mode.')
end
% Delete old mh files...
files = eval(['dir(''' DirectoryName '/' M_.fname '_mh*_blck*.mat'');']);
files = dir([ MhDirectoryName '/' M_.fname '_mh*_blck*.mat']);
if length(files)
delete([ DirectoryName '/' M_.fname '_mh*_blck*.mat']);
delete([ MhDirectoryName '/' M_.fname '_mh*_blck*.mat']);
disp('MH: Old _mh files succesfully erased!')
end
% Initial values...
@ -78,9 +78,9 @@ if options_.load_mh_file == 0
fline = ones(nblck,1);
NewFile = ones(nblck,1);
% Creation of the mh-history file:
file = eval(['dir(''' DirectoryName '/' M_.fname '_mh_history.mat'');']);
file = dir([MhDirectoryName '/' M_.fname '_mh_history.mat']);
if length(files)
delete([ DirectoryName '/' M_.fname '_mh_history.mat']);
delete([ MhDirectoryName '/' M_.fname '_mh_history.mat']);
disp('MH: Old mh_history file succesfully erased!')
end
AnticipatedNumberOfFiles = floor(nruns(1)/MAX_nruns);
@ -102,8 +102,8 @@ if options_.load_mh_file == 0
save([DirectoryName '/' M_.fname '_mh_history'],'record');
elseif options_.load_mh_file == 1% Here we consider previous mh files (previous mh did not crash).
disp('MH: I''m loading past metropolis-hastings simulations...')
file = eval(['dir(''' DirectoryName '/' M_.fname '_mh_history.mat'');']);
files = eval(['dir(''' DirectoryName '/' M_.fname '_mh*.mat'');']);
file = dir([ MhDirectoryName '/' M_.fname '_mh_history.mat' ]);
files = dir([ MhDirectoryName '/' M_.fname '_mh*.mat']);
if ~length(files)
disp('MH:: FAILURE! there is no MH file to load here!')
return
@ -112,7 +112,7 @@ elseif options_.load_mh_file == 1% Here we consider previous mh files (previous
disp('MH:: FAILURE! there is no MH-history file!')
return
else
load([ DirectoryName '/' M_.fname '_mh_history'])
load([ MhDirectoryName '/' M_.fname '_mh_history'])
end
past_number_of_blocks = record.Nblck;
if past_number_of_blocks ~= nblck
@ -148,7 +148,7 @@ elseif options_.load_mh_file == 1% Here we consider previous mh files (previous
record.MhDraws(end,3) = AnticipatedNumberOfLinesInTheLastFile;
randn('state',record.Seeds.Normal);
rand('state',record.Seeds.Unifor);
save([DirectoryName '/' M_.fname '_mh_history'],'record');
save([MhDirectoryName '/' M_.fname '_mh_history'],'record');
disp(['MH: ... It''s done. I''ve loaded ' int2str(NumberOfPreviousSimulations) ' simulations.'])
disp(' ')
elseif options_.load_mh_file == -1% The previous metropolis-hastings
@ -156,13 +156,13 @@ elseif options_.load_mh_file == -1% The previous metropolis-hastings
% recover the saved draws...
disp('MH: Recover mode!')
disp(' ')
file = eval(['dir(''' DirectoryName '/' M_.fname '_mh_history.mat'');']);
file = dir([MhDirectoryName '/' M_.fname '_mh_history.mat']);
if ~length(file)
disp('MH:: FAILURE! there is no MH-history file!')
return
else
load([ DirectoryName '/' M_.fname '_mh_history'])
end
load([ MhDirectoryName '/' M_.fname '_mh_history'])
end
nblck = record.Nblck;
options_.mh_nblck = nblck;
if size(record.MhDraws,1) == 1
@ -202,12 +202,12 @@ elseif options_.load_mh_file == -1% The previous metropolis-hastings
ExpectedNumberOfMhFilesPerBlock = sum(record.MhDraws(:,2),1);
ExpectedNumberOfMhFiles = ExpectedNumberOfMhFilesPerBlock*nblck;
% I count the total number of saved mh files...
AllMhFiles = eval(['dir(''' DirectoryName '/' M_.fname '_mh*_blck*.mat'');']);
AllMhFiles = dir([MhDirectoryName '/' M_.fname '_mh*_blck*.mat']);
TotalNumberOfMhFiles = length(AllMhFiles);
% I count the number of saved mh files per block
NumberOfMhFilesPerBlock = zeros(nblck,1);
for i = 1:nblck
BlckMhFiles = eval(['dir(''' DirectoryName '/' M_.fname '_mh*_blck' int2str(i) '.mat'');']);
BlckMhFiles = dir([ MhDirectoryName '/' M_.fname '_mh*_blck' int2str(i) '.mat']);
NumberOfMhFilesPerBlock(i) = length(BlckMhFiles);
end
tmp = NumberOfMhFilesPerBlock(1); b = 1;
@ -229,8 +229,7 @@ elseif options_.load_mh_file == -1% The previous metropolis-hastings
% (if there was a complete session before the crash) ?
if OldMh
ante = sum(record.MhDraws(1:end-1,2),1);
load(['./' DirectoryName '/' M_.fname '_mh' int2str(ante) '_blck' ...
int2str(CrashedBlck) '.mat'],'logpo2');
load([MhDirectoryName '/' M_.fname '_mh' int2str(ante) '_blck' int2str(CrashedBlck) '.mat'],'logpo2');
if length(logpo2) == MAX_nruns
IsTheLastFileOfThePreviousMhFull = 1;
else
@ -245,7 +244,7 @@ elseif options_.load_mh_file == -1% The previous metropolis-hastings
MhFileNumber = ante;
while MhFileExist
MhFileNumber = MhFileNumber + 1;
if ~exist(['./' DirectoryName '/' M_.fname '_mh' int2str(MhFileNumber) '_blck' int2str(CrashedBlck) '.mat'])
if ~exist([MhDirectoryName '/' M_.fname '_mh' int2str(MhFileNumber) '_blck' int2str(CrashedBlck) '.mat'])
MhFileExist = 0;
end
end
@ -267,7 +266,7 @@ elseif options_.load_mh_file == -1% The previous metropolis-hastings
nruns(CrashedBlck) = nruns(CrashedBlck)-NumberOfSavedDraws;
% I initialize with the last saved mh file of the inccomplete
% block:
load(['./' DirectoryName '/' M_.fname '_mh' int2str(MhFileNumber-1) '_blck' int2str(CrashedBlck) '.mat']);
load([MhDirectoryName '/' M_.fname '_mh' int2str(MhFileNumber-1) '_blck' int2str(CrashedBlck) '.mat']);
ilogpo2(CrashedBlck) = logpo2(end);
ix2(CrashedBlck,:) = x2(end,:);
NewFile(CrashedBlck) = MhFileNumber;
@ -319,7 +318,7 @@ for b = fblck:nblck
prtfrc = j/nruns(b);
waitbar(prtfrc,hh,[ '(' int2str(b) '/' int2str(nblck) ') ' sprintf('%f done, acceptation rate %f',prtfrc,isux/j)]);
if (irun == InitSizeArray(b)) | (j == nruns(b)) % Now I save the simulations
save([DirectoryName '/' M_.fname '_mh' int2str(NewFile(b)) '_blck' int2str(b)],'x2','logpo2');
save([MhDirectoryName '/' M_.fname '_mh' int2str(NewFile(b)) '_blck' int2str(b)],'x2','logpo2');
InitSizeArray(b) = min(nruns(b)-j,MAX_nruns);
if j == nruns(b) % I record the last draw...
record.LastParameters(b,:) = x2(end,:);
@ -342,8 +341,8 @@ for b = fblck:nblck
end% End of the loop over the mh-blocks.
record.Seeds.Normal = randn('state');
record.Seeds.Unifor = rand('state');
save([DirectoryName '/' M_.fname '_mh_history'],'record');
save([MhDirectoryName '/' M_.fname '_mh_history'],'record');
disp(['MH: Number of mh files : ' int2str(NewFile(1)) ' per block.'])
disp(['MH: Total number of generated files : ' int2str(NewFile(1)*nblck) '.'])
disp(['MH: Total number of iterations : ' int2str((NewFile(1)-1)*MAX_nruns+irun-1) '.'])
disp(' ')
disp(' ')

View File

@ -39,6 +39,5 @@ else
bandwidth = 0; % Rule of thumb optimal bandwidth parameter.
kernel_function = 'gaussian'; % Gaussian kernel for Fast Fourrier Transform approximaton.
optimal_bandwidth = mh_optimal_bandwidth(xx,length(xx),bandwidth,kernel_function);
% [abscissa,f] = kernel_density_estimate(,,,)
[density(:,1),density(:,2)] = kernel_density_estimate(xx,number_of_grid_points,optimal_bandwidth,kernel_function);
end