Below is a simple Matlab function for obtaining the bootstrap estimates Other implementations will be added. (April 21, 2011)
function [bs025,bsmedian,bs975] = bs(D,S);
% D is a two-column data set with frequencies of the forms A and B
% The function computes the boostrap estimate for the frequency of A
% using S samples and for each sample average of averages
%
[n,m] = size(D);
if m>2 or m < 2
'the data should have two columns'
stop
else
for i = 1:S % for S bootstrapsamples
indices = floor((n)*rand(n,1))+1;
% indices is a list of n random integers from [1,n]
Dbs = D(indices,:);
% Dbs: the bootstrap sample
nonzero = sum(Dbs')>0;
% the observations that have at least one data point
bsaveave = mean(Dbs(nonzero,1)./(Dbs(nonzero,1)+Dbs(nonzero,2)));
% Compute the average of averages
% (written in a very Matlab-specific way)
bsall(i) = bsaveave;
end
aveaves = sort(bsall);
bs025 = aveaves(round(0.025*S));
bsmedian = aveaves(round(0.5*S));
bs975 = aveaves(round(0.975*S));
end