diff --git a/covidrisk.py b/covidrisk.py old mode 100644 new mode 100755 index 0123bf3..27371e7 --- a/covidrisk.py +++ b/covidrisk.py @@ -2,6 +2,11 @@ import matplotlib.pyplot as plt +def get_data(): + n_14_day_tests = 7366.1 + n_14_day_positive_tests = (18.2 + 7.1) / 100 * n_14_day_tests + return (n_14_day_tests, n_14_day_positive_tests) + def p_meet_positive(groupsize:int): ''' Naive approach, only works if each individual gets tested. @@ -12,12 +17,12 @@ def p_meet_positive(groupsize:int): return (1 - ( 1 - p_positive )**groupsize) * 100 -def p_meet_positive_bayes(groupsize:int): +def p_meet_positive_bayes(groupsize:int, n_positive_tests:float, n_tests:float): ''' Bayesian approach ''' - n_positive_tests = 1863.6 # number of positive tests in the last 14 days - n_tests = 7366.1 # total number of tests in the last 14 days + #n_positive_tests = n_tests_pos # number of positive tests in the last 14 days + #n_tests = n_tests_tot # total number of tests in the last 14 days n_population = 100000 # sample size -> per 100k for switzerland p_test_positive = 0.3 # probability of a positive person getting tested (0.5 is optimistic...) @@ -35,9 +40,13 @@ def plot_data(data): plt.grid(linestyle='--', linewidth='0.1') plt.show() -data = [] -for i in range(1, 70): - data.append(p_meet_positive_bayes(i)) - print(f'The chance of meeting a positive in a group of {i} is: {p_meet_positive_bayes(i)}%') +if __name__ == "__main__": -plot_data(data) + tests, pos = get_data() + + data = [] + for i in range(1, 70): + data.append(p_meet_positive_bayes(i, tests, pos)) + print(f'The chance of meeting a positive in a group of {i} is: {p_meet_positive_bayes(i, tests, pos)}%') + + plot_data(data)