Skip to content

Instantly share code, notes, and snippets.

@airalcorn2
Last active December 17, 2020 23:25
Show Gist options
  • Save airalcorn2/519d8a68e02fc85e92f743a43b21b53b to your computer and use it in GitHub Desktop.
Save airalcorn2/519d8a68e02fc85e92f743a43b21b53b to your computer and use it in GitHub Desktop.
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
households = 10000
infected_households_prop = 0.01
persons_per_household = 100
sample_prop = 0.001
samples = int(sample_prop * households * persons_per_household)
experiments = 1000
infected_prop_diffs = []
for experiment in range(experiments):
infected_households = np.random.rand(households) < infected_households_prop
infected_persons = np.repeat(infected_households, persons_per_household)
true_infected_prop = infected_persons.sum() / len(infected_persons)
sampled = np.random.choice(infected_persons, samples, replace=False)
sampled_infected_prop = sampled.sum() / samples
infected_prop_diffs.append(sampled_infected_prop - true_infected_prop)
print(np.mean(infected_prop_diffs))
sns.histplot(infected_prop_diffs)
plt.show()
infected_prop_diffs = []
for experiment in range(experiments):
infected_households = np.random.rand(households) < infected_households_prop
true_infected_prop = infected_households.sum() / len(infected_households)
sampled = np.random.choice(infected_households, samples, replace=False)
sampled_infected_prop = sampled.sum() / samples
infected_prop_diffs.append(sampled_infected_prop - true_infected_prop)
print(np.mean(infected_prop_diffs))
sns.histplot(infected_prop_diffs)
plt.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment