%% (b) load the data: load( 'thymusglandweights.dat' ); nsamples = 80; x = thymusglandweights(1:nsamples); %% (c) mean, sem and hist: sem = std(x)/sqrt(nsamples); fprintf( 'Mean of the data set = %.2fmg\n', mean(x) ); fprintf( 'SEM of the data set = %.2fmg\n', sem ); hist(x,20) xlabel('x') ylabel('count') savefigpdf( gcf, 'bootstraptymus-datahist.pdf', 6, 5 ); pause( 2.0 ) %% (d) bootstrap the mean: resample = 500; [bootsem, mu] = bootstrapmean( x, resample ); hist( mu, 20 ); xlabel('mean(x)') ylabel('count') savefigpdf( gcf, 'bootstraptymus-meanhist.pdf', 6, 5 ); fprintf( ' bootstrap standard error: %.3f\n', bootsem ); fprintf( 'theoretical standard error: %.3f\n', sem ); %% (e) confidence interval: q = quantile(mu, [0.025, 0.975]); fprintf( '95%% confidence interval of the mean from %.2fmg to %.2fmg\n', q(1), q(2) ); pause( 2.0 ) %% (f): dependence on sample size: nsamplesrange = 10:10:1000; bootsems = zeros( length(nsamplesrange),1); for n=1:length(nsamplesrange) nsamples = nsamplesrange(n); % [bootsems(n), mu] = bootstrapmean(x, resample); bootsems(n) = bootstrapmean(thymusglandweights(1:nsamples), resample); end plot(nsamplesrange, bootsems, 'b', 'linewidth', 2); hold on plot(nsamplesrange, std(x)./sqrt(nsamplesrange), 'r', 'linewidth', 1) hold off xlabel('sample size') ylabel('SEM') legend('bootsrap', 'theory') savefigpdf( gcf, 'bootstraptymus-samples.pdf', 6, 5 );