La deviazione standard è un indice statistico fondamentale che esprime la tendenza dei dati a variare. Supponiamo ad esempio di voler analizzare il listino prezzi di due fornitori concorrenti. La più semplice analisi statistica che possiamo effettuare richiede per lo meno il calcolo di due indici: la media e, per l’appunto, la deviazione standard. Il fornitore con una deviazione standard più bassa avrà dei prezzi con meno oscillazioni, che in generale si discostano meno dal valore medio. Di conseguenza, in un’ottica di scelta che minimizzi il rischio, potrebbe essere preferibile il fornitore con deviazione standard dei prezzi più bassa rispetto a quello con il prezzo medio minore.
La deviazione standard è anche l’indice che permette di distinguere dal punto di vista statistico situazioni completamente differenti ma che, calcolando unicamente la media, potrebbero risultare uguali. Citando il celeberrimo poeta romano Trilussa, statisticamente il caso in cui un uomo mangia due polli mentre un uomo è a digiuno è differente dal caso in cui entrambi mangiano un pollo a testa perché, a parità di media, la deviazione standard nel primo caso è più elevata.
In questo articolo spiegheremo tramite un esempio come calcolare manualmente questo indice e riporteremo il codice necessario per il suo calcolo sui principali linguaggi di programmazione per l’analisi dei dati. Ricordiamo infine che un altro nome per riferirsi alla deviazione standard è scarto quadratico medio.
Come calcolare lo scarto quadratico medio
Illustriamo con un esempio i passi necessari per calcolare la deviazione standard dei valori 3, 5, 7, 8, 10:
- calcolare la media delle misure a disposizione: (3+5+7+8+10)/5 = 6.6
- elevare il risultato della media al quadrato: 43.56
- elevare tutte le misure a disposizione al quadrato: 9, 25, 49, 64, 100
- calcolare la media delle misure ottenute al passo 3: 49.4
- calcolare la differenza tra il risultato ottenuto al passo 4 e quello ottenuto al passo 2: 49.4 – 43.56 = 5.84
- estrarre la radice quadrata del risultato ottenuto al passo 5: 2.42
Il valore ottenuto alla fine del passo 5 è un altro indicatore statistico molto importante: la varianza. In questo senso possiamo definire la deviazione standard come la radice quadrata della varianza.
È importante sottolineare che spesso in statistica abbiamo a disposizione i dati relativi a un campione della popolazione, vale a dire di una parte parziale (ma possibilmente rappresentativa) della totalità. In questo caso, se vogliamo stimare la deviazione standard dell’intera popolazione a partire dai soli dati del campione, dobbiamo effettuare questa piccola operazione in più:
prima di estrarre la radice quadrata al passo 6, occorre moltiplicare il valore ottenuto al passo 5 per n/(n-1), dove n è il numero di misure a disposizione.
Tornando all’esempio precedente, occorrerà moltiplicare 5.84 per 5/4 ottenendo 7.3 e poi estrarre la radice di questo numero: 2.70. Nel prosieguo dell’articolo ci riferiremo a quest’ultimo calcolo come “stima corretta della deviazione standard della popolazione“. In modo analogo, il numero ottenuto dopo la correzione del passo 5 è noto come “stima corretta della varianza della popolazione“.
Analizziamo le formule dello scarto quadratico medio

La formula del paragrafo precedente può essere sintetizzata in questo modo:È dunque pari alla differenza tra
- la media calcolata su tutti i valori elevati al quadrato
- il quadrato della media dei valori originali

Tramite alcuni passaggi matematici, possiamo riscrivere la formula in una versione equivalente:dove con la X barrata intendiamo semplicemente la media dei valori di partenza. Questa formulazione è probabilmente più famosa, ma rende a mio parere il calcolo più complesso. Ha il vantaggio però di mettere bene il luce il perché del nome scarto quadratico medio. Infatti, se chiamiamo scarto la differenza tra ogni valore e la media complessiva, possiamo descrivere la deviazione standard come la radice quadrata della media dei quadrati degli scarti.
Calcolare la deviazione standard su Excel
Su Microsoft Excel possiamo calcolare la deviazione standard di una colonna tramite la formula DEV.ST.P che accetta in input una serie di valori. Per calcolare invece la stima corretta della popolazione useremo DEV.ST.C, secondo la definizione data nel paragrafo precedente.
Entrambe le funzioni ignorano nel calcolo eventuali celle selezionate che sono vuote o che non contengono valori numerici. Per il calcolo della deviazione standard su Excel abbiamo altre due funzioni:
- DEV.ST.POP.VALORI
- DEV.ST.VALORI (quest’ultima per la stima)
Esse ignorano le celle vuote ma, a differenza delle precedenti, considerano come il valore zero tutte le celle che contengono valori non riconosciuti come numeri. Fa eccezione la stringa “VERO” che viene interpretata come un uno.
Calcolo deviazione standard sui database relazionali
Anche sui database relazionali abbiamo funzioni differenti per la deviazione standard classica e per la stima sulla popolazione da cui è estratto il campione. Il linguaggio utilizzato per interrogare i database relazionali è l’SQL, tuttavia il nome delle specifiche funzioni da utilizzare è differente in ogni DBMS (Database Management System). Riportiamo in questa tabella i nomi delle funzioni nei principali database.
RDBMS | Deviazione standard | Stima corretta della deviazione standard della popolazione |
MySql | STD, STDDEV e STDDEV_POP | STDDEV_SAMP |
Sql Server | STDEVP | STDEV |
Oracle | STDDEV_POP | STDDEV |
In questo link trovi un mio approfondimento su altre funzioni SQL.
Calcolare deviazione standard su Python
Il calcolo su Python può dipendere dalla particolare libreria utilizzata e, di conseguenza, dalla struttura dati in cui i dati sono salvati. Riportiamo la sintassi da utilizzare con la libreria Pandas, quando i dati sono salvati in una colonna di un dataframe. In questo articolo https://www.geeksforgeeks.org/python-pandas-dataframe/ trovi un approfondimento sui dataframe, la struttura dati maggiormente utilizzata nei progetti di analisi dei dati.
Tramite questo codice possiamo calcolare con Pandas la stima per la popolazione
NomeDataframe["Valori"].std()
Per calcolare la deviazione standard occorrerà specificare il valore zero per l’argomento ddof (il default è 1)
NomeDataframe["Valori"].std(ddof = 0)
Continua a imparare
- Segui la lezione successiva sull’indice di eterogeneità di Gini
- Torna all’indice delle lezioni
- Visita la pagina del mio corso online di statistica