src.create_initial_states.create_vaccination_priority

Create the vaccination groups and the vaccination rank.

Vaccination Groups

1 = Highest Priority

  • overall 8.6 Mio individuals = ~10% of the population

  • 1% live in nursing homes (https://bit.ly/3vFsByz) and not covered in our data

=> target of 9%

  • over 80 year olds -> 4% of our synthetic population

  • individuals working in nursing homes and outpatient nursing

    => 1.5% of the population.

    => We increase this to 4.6% of the population to include other groups such as ICU staff. To achieve this share for the overall population we set the work_contact_priority to 0.9. With this we also reach the 9% target for the highest priority group.

2 = Very High Priority (2nd and 3rd group acc. to STIKO)

  • approx. 14% of the population acc. to RKI without educators.

    => 15% abstracting 1% nursing home population.

  • 70 to 80 year olds

  • close contacts of very high risk individuals

  • individuals with other dangerous preconditions

  • more medical workers

=> we model this as age group 50-70 gets 2/3 of the spots and

1/3 goes to age group 20-50.

In addition nursery, preschool and primary teachers were moved to this group. They are about 1% of our synthetic population.

=> target share of 16%

3 = High Priority (4th+5th category acc. to STIKO)

  • 6.9 mio in 4th group + 9 mio in 5th group (~19%)

    = ~18% of population without the already vaccinated teachers => ~19% abstracting 1% nursing home population.

  • 60 to 70 year olds

  • other teachers

  • many essential workers (police, fire fighters …)

  • people with preconditions that make them more susceptible to covid.

  • close contacts of people with dangerous preconditions

Preconditions in this group include diabetes, hypertension, cancer, asthma, auto-immune disease

=> We expect a higher share among older individuals.

4 = The General Adult Population

Approximately 45 mio people ~ 56% of the population. => 57% abstracting 1% nursing home population

5 = Youths and 6 = Children

Youths will be vaccinated after the general population because in the beginning the vaccines were not allowed to be given to children. First, 12 to 16 year olds will be vaccinated, then children under 12.

We assume that the shares refer to the adult population without children.

References

Module Contents

Functions

create_vaccination_rank(vaccination_group, share_refuser, seed)

Create the order in which individuals get vaccinated, including refusers.

create_vaccination_group(states, seed)

Put individuals into vaccination priority groups based on age and work.

_get_second_priority_people_acc_to_stiko(states, vaccination_group)

People aged 70 to 80 and people with serious preconditions.

_get_educators_of_young_children(states, vaccination_group)

nursery, preschool and primary educators.

_get_third_priority(states, vaccination_group)

_sample_from_subgroups(n_to_sample, states, age_cutoff, share_to_sample_above_age_cutoff, vaccination_groups_so_far)

Sample a fixed number of adults from subgroups.

_check_vaccination_group(vaccination_group, states)

create_vaccination_rank(vaccination_group, share_refuser, seed)[source]

Create the order in which individuals get vaccinated, including refusers.

Parameters
  • vaccination_group (pandas.Series) – index is the same as that of states. Low values indicate individuals that have a high priority to be vaccinated.

  • share_refuser (float) –

    share of individuals (irrespective of their vaccination group) that refuse to be vaccinated.

    Warning

    This share must also be passed to the vaccination model!

  • seed (int) –

Returns

same index as that of

vaccination_group. Takes values between 0 and 1. Low values correspond to individuals that get vaccinated earlier. Refusers receive the highest values but cannot be distinguished from the rest.

Return type

vaccination_order (pandas.Series)

create_vaccination_group(states, seed)[source]

Put individuals into vaccination priority groups based on age and work.

Parameters
  • states (pandas.DataFrame) – states DataFrame. Must contain as columns: “age”, “work_contact_priority”, “educ_worker”, “school_group_id_0”, and “occupation”.

  • seed (int) – seed

Returns

index is the same as states.

Values go from 1 (highest priority) to 4 (lowest priority). This is irrespective of individuals refuse to get vaccinated or not.

Return type

vaccination_group (pandas.Series)

_get_second_priority_people_acc_to_stiko(states, vaccination_group)[source]

People aged 70 to 80 and people with serious preconditions.

_get_educators_of_young_children(states, vaccination_group)[source]

nursery, preschool and primary educators.

_get_third_priority(states, vaccination_group)[source]
_sample_from_subgroups(n_to_sample, states, age_cutoff, share_to_sample_above_age_cutoff, vaccination_groups_so_far)[source]

Sample a fixed number of adults from subgroups.

Adults are split into those below and above age_cutoff and from each group a share of n_to_sample is drawn.

Parameters
  • n_to_sample (int) – number of doses to distribute. Due to rounding errors it might not be matched exactly.

  • states (pandas.DataFrame) – sid states DataFrame with an “age” column.

  • age_cutoff (int) – The share_to_sample_above_age_cutoff of the n_to_sample is randomly individuals above this cutoff. The rest is distributed among adults bleow the cutoff.

  • share_to_sample_above_age_cutoff (float) – share of n_to_sample that is distributed among individuals > age_cutoff.

  • vaccination_groups_so_far (pandas.Series) – Series with the same index as states that is NaN for individuals that have not received a vaccine priority yet.

Returns

Series with the same index as states and

vaccination_group that is True for individuals that were drawn to receive a vaccine and False for everyone else.

Return type

sampled (pandas.Series)

_check_vaccination_group(vaccination_group, states)[source]