48 lines
1.4 KiB
Matlab
48 lines
1.4 KiB
Matlab
%% (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 );
|
|
|