import random |
from sets import Set |
population = <total list of probes, n = 12575> |
sample_size = 1258 |
def sample_wr(population, k): |
# Chooses k random elements (with replacement) from a population |
# From http://code.activestate.com/recipes/273085 |
n = len(population) |
_random, _int = random.random, int |
result = [None] * k |
for i in xrange(k): |
j = _int(_random() * n) |
result[i] = population[j] |
return result |
distribution = range(2000) |
for x in range(2000): |
sample1 = Set(sample_wr(population, sample_size)) |
sample2 = Set(sample_wr(population, sample_size)) |
intersect = sample1.intersection(sample2) |
distribution[x] = float(len(intersect)) / float(len(sample1)) |
mean = sum(distribution) / len(distribution) |
variance = sum([(x − mean)**2 for x in distribution]) / len(distribution) |
print ‘Population size: ’, len(population) |
Print |
print ‘Bootstrap distribution: ’, distribution |
print ‘Bootstrap cycles: ’, len(distribution) |
Print |
print ‘Bootstrap mean: ’, str(mean) |
print ‘Bootstrap standard deviation: ’, str(variance**0.5) |