Statistical Thinking in Python (Part 2)
Justin Bois
Lecturer at the California Institute of Technology
def bootstrap_replicate_1d(data, func): """Generate bootstrap replicate of 1D data.""" bs_sample = np.random.choice(data, len(data)) return func(bs_sample)
bootstrap_replicate_1d(michelson_speed_of_light, np.mean)
299859.20000000001
bootstrap_replicate_1d(michelson_speed_of_light, np.mean)
299855.70000000001
bootstrap_replicate_1d(michelson_speed_of_light, np.mean)
299850.29999999999
bs_replicates = np.empty(10000)
for i in range(10000): bs_replicates[i] = bootstrap_replicate_1d( michelson_speed_of_light, np.mean)
_ = plt.hist(bs_replicates, bins=30, normed=True)
_ = plt.xlabel('mean speed of light (km/s)')
_ = plt.ylabel('PDF')
plt.show()
p%
of the observed values would lie within the p%
confidence interval.conf_int = np.percentile(bs_replicates, [2.5, 97.5])
array([ 299837., 299868.])
Statistical Thinking in Python (Part 2)