Esercizio - Statistica descrittiva, quartili e standardizzazione di un dataset
Questa pagina non ha ancora la versione ripasso: qui sotto c'è il testo completo.
In questa pagina 6
Testo. Dato il vettore (, dalle slide sulla moda):
- calcolare media, mediana, moda, varianza (con divisore e con divisore ) e deviazione standard;
- calcolare asimmetria e curtosi e classificare la forma;
- calcolare , , e l'IQR con la convenzione senza interpolazione dell'esame, e dire se esistono outlier secondo il box plot;
- standardizzare il vettore con lo z-score e verificare che media e deviazione standard dei nuovi valori valgono e .
Teoria usata: Statistica per il machine learningI dati di un problema ML si organizzano nella matrice di progetto $X$ ($n$ osservazioni, $p$ variabili). La statistica serve a capirli, ripulirli e prepararli: i momenti (media $\mu$, varianza $\sigma^2$, asimmetria, curtosi), i quartili con lo scarto interquartile $\mathrm{IQR}=Q_3-Q_1$ (all'esame senza interpolazione), la moda per i dati categorici. Con queste quantità si imputano i dati mancanti (media o mediana), si eliminano le variabili costanti e si standardizza con lo z-score $z=(x-\mu)/\sigma$, usando sempre media e deviazione standard del solo training set.Statistica per il machine learning →, Correlazione e visualizzazione dei datiLa correlazione di Pearson $r=\sum(X_i-\bar X)(Y_i-\bar Y)/\big(\sqrt{\sum(X_i-\bar X)^2}\sqrt{\sum(Y_i-\bar Y)^2}\big)\in[-1,1]$ misura la relazione lineare tra due variabili (covarianza divisa per le deviazioni standard); correlazione non implica causalità. Serve a capire quali variabili contano per il target e a eliminare quelle quasi duplicate (|r| molto alto). Gli indicatori di sintesi non bastano (quartetto di Anscombe, Datasaurus): vanno affiancati ai grafici: istogramma, KDE, box plot, violin plot, heatmap di correlazione, scatter plot e matrice di scatter plot.Correlazione e visualizzazione dei dati →; la media e la varianza sono quelle di Valore attesoIl valore atteso E[X] = Σ x p_X(x) è la media dei valori di X pesata con le loro probabilità (esiste se la serie converge assolutamente); per una funzione g vale E[g(X)] = Σ g(x) p_X(x) senza trovare la legge di g(X), ed E è lineare: E[aX + bY + c] = aE[X] + bE[Y] + c.Valore atteso → e Varianza e momentiI momenti E[X^k] e i momenti centrati E[(X − μ)^k] descrivono la forma di una legge; la varianza Var(X) = E[(X − μ)²] = E[X²] − E[X]² misura quanto X si disperde attorno alla media, vale Var(aX + b) = a² Var(X) e Var(X) = 0 solo se X è costante.Varianza e momenti →. Il calcolo con Python è in Python per il machine learning - NumPy, pandas e MatplotlibIl corso usa Python in Jupyter/Colab. Servono: variabili e tipi, if/for/while, funzioni (i tipi immutabili si passano per valore: per cambiare un numero la funzione deve restituirlo), classi, e le strutture list, tuple, set, dict. NumPy gestisce array e algebra lineare (assi, broadcasting, @, hstack, np.cov(rowvar=False)), pandas le tabelle (read_csv, filtri, value_counts, statistiche; var con $n-1$ contro np.var con $n$), Matplotlib e seaborn i grafici (istogrammi, box plot, heatmap, pair plot). Trappole tipiche: forma $(n,)$ contro $(n,1)$, asse sbagliato, statistiche calcolate sul dataset intero.Python per il machine learning - NumPy, pandas e Matplotlib →.
1. Media, mediana, moda, varianza
Media. Somma , quindi .
Mediana. I dati sono già ordinati e è dispari: la mediana è il sesto valore (quello con cinque valori prima e cinque dopo): . (Il notebook di laboratorio definisce la mediana come l'elemento di indice , contando da 1: , lo stesso valore; per pari darebbe il valore centrale superiore.)
Moda. Il valore più frequente è (compare 3 volte).
Scarti dalla media. .
Varianza. Quadrati degli scarti: con somma . Con divisore (popolazione, come nelle slide): e . Con divisore (stima corretta, come fa pandas): e deviazione standard . La differenza è del perché è piccolo.
2. Asimmetria e curtosi
Cubi degli scarti: la somma vale . (con ): praticamente simmetrica (appena una coda a sinistra).
Quarte potenze: somma . (con ): distribuzione platicurtica (code più leggere della normale).
3. Quartili senza interpolazione e outlier
Le percentuali cumulate dei valori ordinati sono : .
- : primo valore con percentuale : il terzo (), cioè .
- : primo : il sesto (), (coincide con la mediana).
- : primo : il nono (), .
. Il box plot considera outlier i valori fuori da : tutti i dati ( e compresi) sono dentro, nessun outlier.
4. Standardizzazione
con : . La somma dei è zero perché è la somma degli scarti divisa per , quindi media ; la varianza è . Usando invece il divisore () i valori sono più piccoli in modulo (per esempio per il primo) e la deviazione standard dei calcolata con non è ma : bisogna usare lo stesso divisore nei due passaggi.
Verifica con Python
import numpy as np
from scipy import stats
x = np.array([1,2,2,3,4,7,9,10,10,10,12.])
print(x.mean(), np.median(x), x.var(), x.std(), x.var(ddof=1)) # 6.364 7.0 14.777 3.844 16.255
print(stats.skew(x), stats.kurtosis(x, fisher=False)) # -0.0478 1.3715
print(np.percentile(x, [25, 50, 75], method="inverted_cdf")) # [ 2. 7. 10.]
z = (x - x.mean()) / x.std(); print(z.mean(), z.std()) # 0.0 1.0method="inverted_cdf" riproduce la regola «primo valore con percentuale almeno » delle slide (non "higher", usato nei notebook, che qui darebbe ).
Domanda d'esame collegata
Nella simulazione dell'appello (lezione 14): «qual è la mediana del vettore?». Con i dati ordinati () la mediana è il quarto valore, .