Esempi di statistica descrittiva e inferenziale/Eventi avversi vaccini Covid

Dopo avere scaricato il dataset VAERS del 2021 da qui : https://vaers.hhs.gov/data.html e il dataset delle vaccinazioni da qui : https://github.com/owid/covid-19-data/blob/master/public/data/vaccinations/vaccinations.csv è possibile analizzare gli eventi avversi ai vaccini anti covid negli Stati Uniti, segnalati dall'1/1/2021 al 31/12/2021, utilizzando il linguaggio di programmazione Python su Colab in modo da utilizzare le risorse hardware di Google trattandosi di big data.

Dopo avere caricato le opportune librerie :

import pandas as pd
import matplotlib as plt

e caricato i dati :

	
from google.colab import drive
drive.mount('/content/drive')
!unzip /content/drive/MyDrive/VAERS/2021VAERSData.zip


# Read the data
patient = pd.read_csv("2021VAERSDATA.csv", encoding='ISO-8859-1')
vaccines = pd.read_csv("2021VAERSVAX.csv", encoding='unicode_escape')
symptoms = pd.read_csv("2021VAERSSYMPTOMS.csv", encoding='unicode_escape')
vaccinations = pd.read_csv("/content/drive/MyDrive/VAERS/vaccinations.csv")


si nota che gli eventi avversi segnalati ai vaccini anti covid sono 725.919


counts=vaccines['VAX_TYPE'].value_counts()
dict(counts)
{'COVID19': 725919,
'VARZOS': 14289,
'UNK': 9679,
'FLU4': 5384,
'HPV9': 1823,
'VARCEL': 1750,
'TDAP': 1657,
'PPV': 1614,
'HEPA': 1415,
'MMR': 1414,
'MNQ': 1396,
'HEP': 1381,
'FLUX': 1364,
'MMRV': 1233,
'PNC13': 1092,
'HIBV': 929,
'DTAP': 778,
'MENB': 767,
'DTAPIPV': 755,
'RV5': 730,
'FLUA4': 697,
'FLUC4': 693,
'DTAPIPVHIB': 587,
'FLUR4': 530,
'DTAPHEPBIP': 436,
'IPV': 414,
'TYP': 194,
'HEPAB': 194,
'RV1': 185,
'RAB': 183,
'FLU3': 172,
'TD': 168,
'HPV4': 142,
'ANTH': 118,
'FLUA3': 104,
'YF': 97,
'FLUC3': 65,
'FLUN4': 62,
'MEN': 52,
'ADEN_4_7': 43,
'EBZR': 39,
'TTOX': 36,
'DF': 30,
'CHOL': 26,
'SMALL': 26,
'PNC': 25,
'DT': 25,
'HPVX': 22,
'DTPPVHBHPB': 22,
'JEV1': 17,
'DTP': 14,
'RVX': 13,
'FLUX(H1N1)': 9,
'6VAX-F': 8,
'FLUN3': 6,
'BCG': 5,
'JEVX': 2,
'FLUR3': 2,
'FLU(H1N1)': 2,
'OPV': 2,
'PNC10': 1,
'HEPATYP': 1,
'MU': 1,
'H5N1': 1,
'TDAPIPV': 1,
'DTOX': 1,
'DTPHEP': 1,
'MNQHIB': 1,
'PER': 1,
'COVID19-2': 1}


escludiamo tutti i vaccini, tranne quelli relativi al Covid:

vaccines=vaccines.loc[vaccines['VAX_TYPE'] == 'COVID19']


Gli eventi avversi relativi al vaccino MODERNA sono 336.734, quelli relativi a PFIZER 324.814 ecc.


counts=vaccines['VAX_MANU'].value_counts()
dict(counts)
{'MODERNA': 336734,
'PFIZER\\BIONTECH': 324814,
'JANSSEN': 62787,
'UNKNOWN MANUFACTURER': 1584}


Unisco i 2 datasets patient e vaccines


df = patient.merge(vaccines, on="VAERS_ID")

Come si vede dal seguente grafico ci sono più eventi avversi relativi a MODERNA che a PFIZER...:


df_groups =df.loc[df['VAX_MANU'] !='UNKNOWN MANUFACTURER']
df_groups['VAX_MANU'].value_counts().plot(kind="barh",color='maroon')


...inoltre ci sono più eventi avversi relativi a donne che a uomini:

df_groups =df['SEX'].value_counts().plot(kind="barh")


... unisco ai precedenti datasets, quello dei sintomi:

df = df.merge(symptoms, on="VAERS_ID", how='left')

Visualizzo una tabella con alcuni dei 10.816 eventi avversi relativi alle vaccinazioni contro il Covid:

	
df2 = pd.DataFrame({'sintomi':df['SYMPTOM1']})
df3 = pd.DataFrame({'sintomi':df['SYMPTOM2']})
df4 = pd.DataFrame({'sintomi':df['SYMPTOM3']})
df5 = pd.DataFrame({'sintomi':df['SYMPTOM4']})
df6 = pd.DataFrame({'sintomi':df['SYMPTOM5']})
df2=pd.concat([df2,df3])
df2=pd.concat([df2,df4])
df2=pd.concat([df2,df5])
df2=pd.concat([df2,df6])

df_symptoms =df2.loc[df2['sintomi'] !='']
df_symptoms['sintomi'].value_counts()
Headache                     125548
Pyrexia                      107988
Fatigue                      105646
Chills                        91424
Pain                          90869
                              ...  
Lip erosion                       1
Cat scratch disease               1
Gut fermentation syndrome         1
Morose                            1
Conjunctival pallor               1
Name: sintomi, Length: 10816, dtype: int64


Visualizzo il numero di vaccinazioni negli Stati Uniti al 31/12/2020 e al 31/12/2021:

vaccinations.loc[(vaccinations['location']=='United States') & 
                 (vaccinations['date']=='2020-12-31')]
5701167.0
vaccinations.loc[(vaccinations['location']=='United States') & 
                 (vaccinations['date']=='2021-12-31')]
520934556.0

Numero di miocarditi segnalate a causa dei vaccini anti covid considerato che negli Stati Uniti sono state somministrate dal 1/1/2021 al 31/12/2021 circa 515.233.389 dosi e quindi 2406*100000/515233389= 0,47 miocarditi ogni 100.000 dosi .

df_symptoms =df2.loc[df2['sintomi'] =='Myocarditis']
df_symptoms['sintomi'].value_counts()
Myocarditis    2406
Name: sintomi, dtype: int64


Numero di morti segnalate a causa dei vaccini anti covid, considerato che negli Stati Uniti sono state somministrate dal 1/1/2021 al 31/12/2021 circa 515.233.389 dosi e quindi 18973*100000/515233389=3,68 morti ogni 100.000 dosi .

len(df.loc[(df['DIED'] =='Y') | 
       (df['SYMPTOM1']=='Death')| 
       (df['SYMPTOM2']=='Death')| 
       (df['SYMPTOM3']=='Death')| 
       (df['SYMPTOM4']=='Death')| 
       (df['SYMPTOM5']=='Death')])
18973