Indici statistici: descrizione e implementazione in pandas
Nicola Iantomasi
Posted on November 1, 2023
Nel campo della statistica, gli indici sono valori numerici fondamentali che forniscono un riassunto efficiente di grandi quantità di dati. Questo articolo esplorerà due categorie chiave di indici, quelli univariati e multivariati, parlando anche della relativa implementazione con la libreria Pandas di Python.
Indici di statistica univariati con Pandas
Gli indici univariati consentono un'analisi approfondita di una singola variabile all'interno di un insieme di dati. Partiamo allora creando un _DataFrame _con una sola colonna _Voti _
import pandas as pd
Voti = pd.DataFrame(data=[25,23,28,25,24,29,25],columns = ["Voto"] )
Voti
Tramite il metodo describe otteniamo con una sola riga di codice il valore dei principali indici statistici di posizione e di variabilità. Facciamo attenzione però al valori di std che corrisponde alla stima della deviazione standard della popolazione da cui è estratto il campione (al denominatore della formula ho n-1).
Voti.describe()
Per calcolare gli indici di forma possiamo creare prima una colonna con i valori standardizzati e poi applicare le formule degli indici di Fisher e di curtosi.
Voti["Voto_StandardScaler"] = (Voti["Voto"]-media)/deviazione_standard
AsimmetriaFisher = Voti["Voto_StandardScaler"].pow(3).mean()
Curtosi = Voti["Voto_StandardScaler"].pow(4).mean() - 3
Indici di statistica bivariati con Pandas
Gli indici multivariati sono utilizzati per descrivere le relazioni tra due o più variabili in un insieme di dati. In base alla classificazione delle variabili statistiche è possibile calcolare l'associazione per tutte le combinazioni possibili:
due variabili qualitative: si utilizzano comunemente l'indice Chi quadrato e la sua versione normalizzata, la *V di Cramer *
una variabile qualitativa e una quantitativa per i quale usiamo generalmente l'indice eta quadro
due variabili quantitative di cui il coefficiente di correlazione di Pearson e quello di Spearman sono due esempi
Nel prossimo paragrafo ci concentreremo sugli indici relativi alle variabili qualitative
Indice Chi Quadrato e indice V di Cramer con Pandas
Vediamo il codice per calcolare gli indici Chi Quadrato e V di Cramer con Pandas. Partiamo da un Dataframe con due colonne che contengono dati di tipo qualitativo, contenenti ad esempio il colore degli occhi e l'area geografica, di nome DatiCramer.
Partiamo calcolando le frequenze osservate
FreqOsservate = DatiCramer.groupby(by = ["Occhi","Area geografica"],
dropna = False,
as_index = False).agg(conteggio = ("Occhi", np.size))
Eseguiamo il pivot dei dati
FreqOsservatePivot = FreqOsservate.pivot(columns = "Area geografica",
index = "Occhi", ).fillna(0)
Creiamo la tabella di contingenza con l'ausilio della libreria scipy
import scipy.stats as stats
stats.chi2_contingency(FreqOsservatePivot, correction=False)
A questo punto possiamo calcolare l'indice chi-quadrato
indice_chi_quadrato = stats.chi2_contingency(FreqOsservatePivot,
correction=False)[0]
e l'indice V di Cramer
n = len(DatiCramer)
k = len(DatiCramer["Occhi"].unique())
r = len(DatiCramer["Area geografica"].unique())
indice_v_cramer = pow(indice_chi_quadrato / (n*max(k-1,r-1)),0.5)
indice_v_cramer
Indice di correlazione di Pearson e di Spearman con Pandas
Il calcolo degli indici di associazione tra due variabili quantitative è molto più immediato. Pandas infatti ci mette a disposizione il metodo corr utilizzabile per calcolare le correlazioni tra tutte le coppie di variabili numeriche. Se non specifichiamo il parametro method, verrà calcolare l'indice di correlazione lineare di Pearson
Dati.corr()
Se invece volessi calcolare il coefficiente di Spearman, mi basterebbe scrivere
Dati.corr(method="spearman")
Posted on November 1, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.