Varianza e arrotondamenti

Autore/Autrice

Corrado Lanera

Data di Pubblicazione

15 novembre 2026

Quest’anno a lezione ho presentato di nuovo, anch’io, la formula alternativa della varianza, quella con la somma dei quadrati dei dati, come la più comoda e veloce (anche se forse più difficile da ricordare) per fare i conti a mano. Tornato a casa, per la prima volta forse (o forse la prima in cui ho poi dato seguito alla mia curiosità) ci ho ripensato con calma… e d’ora in poi farò l’esatto contrario: la mostrerò solo per dire di NON usarla!

Scrivo questo breve reportino nel caso possa interessare o essere utile non solo a me nel ricordarci sempre che abbiamo a che fare con computer e calcolatrici, che sono macchine “finite”, e non con costrutti teorici algebrici “infinitamente esatti”, sempre!

Le due formule

Giusto per ricordarlo, le due formule sono:

  1. la definizione:

s2=∑i=1n(xi−x‾)2n−1s^2 = \frac{\sum_{i=1}^n (x_i - \bar{x})^2}{n - 1}

e

  1. quella che si trova in molti libri, comoda perché alla calcolatrice richiede (molti!) meno passaggi:

s2=(∑i=1nxi2)−nx‾2n−1s^2 = \frac{(\sum_{i=1}^n x_i^2) - n\bar{x}^2}{n - 1}

Ribadiamo, algebricamente sono del tutto equivalenti! Ma… la seconda è MOLTO più sensibile agli arrotondamenti (ovvero, agli errori, anche molto piccoli!).

Un esempio a mano

Facciamo un esempio per capirci, prendiamo cinque valori: 177, 193, 195, 209 e 228.

La media è (esattamente) 200.4 e la varianza (esattamente) 366.8.

Facendo i conti a mano può venire naturale arrotondare la media a 200, e credo nessuno si stupirebbe di un arrotondamento che impatta dello 0.2%… Bene, con questo piccolo arrotondamento sulla media, le due formule danno:

Formula Calcolo s2s^2
Definizione 1468/41468 / 4 367
Alternativa (202268−200000)/4(202268 - 200000) / 4 567

Se non ci credete, fate pure voi i conti.

Perché succede

Il motivo è che la seconda formula ottiene la varianza come differenza fra due numeri grandi e vicini, qui 202268 e 200000, per arrivare a un risultato molto più piccolo di loro. Un piccolo errore sulla base di calcolo di uno dei due, in questo caso quello dovuto all’arrotondamento della media, cambia di molto questa differenza.

In analisi numerica questo fenomeno è molto noto, e va sotto il nome di cancellazione catastrofica (spettacolare!).

È un po’ come voler sapere quanto pesa il capitano di una nave, pesando prima la nave con lui a bordo, poi senza di lui, e facendo la differenza: serve una bilancia DAVVERO molto precisissima, altrimenti il peso del capitano è molto facile si perda nell’errore stesso intrinseco nella pesata.

Al computer

Lo stesso succede al computer, dove abbiamo un numero finito di bit per memorizzare le cifre e dove l’arrotondamento è quello dei numeri in virgola mobile (tipicamente 64 bit, 8 Byte).

Ma potete verificarlo anche senza alcun arrotondamento o “errore” da parte vostra, basta prendere numeri “abbastanza grandi” da far entrare in gioco l’approssimazione stessa del sistema (finito, i nostri 8 Byte) che il computer usa per rappresentare i dati.1 Per esempio, prendiamo i valori 1 000 000 004, 1 000 000 007, 1 000 000 013 e 1 000 000 016, la varianza è (esattamente) 30; la seconda formula, calcolata in R in doppia precisione, restituisce (esattamente…) 0 :-), mentre var() restituisce (giustamente, implementando al suo interno un algoritmo “stabile”) 30.

x <- 1e9 + c(4, 7, 13, 16)
var(x)                                               
[1] 30
(sum(x^2) - length(x) * mean(x)^2) / (length(x) - 1)
[1] 0

Conclusioni

Anche a mano, quindi direi…, che conviene usare la definizione :-), mentre al computer la funzione del software (per esempio, var() in R, che di certo usa un algoritmo stabile).

Del software di analisi, però! Non perdo l’occasione per ribadirlo: per fare analisi serve un software di analisi, non di altro, come Excel… che prima della versione 2003 la varianza la calcolava proprio con la formula alternativa (la stessa Microsoft la chiama “calculator formula”, la formula da calcolatrice!), e solo da Excel 2003 in poi usa la definizione.2

Da adesso, comunque, nelle mie slide la seconda formula continuerà sì ad esserci ancora, ma solo con questo esempio, seguito dall’indicazione di usare SEMPRE la definizione!

Note

  1. E notiamo che non conta quanto siano grandi i dati, ma quanto siano vicini fra loro rispetto alla loro grandezza: con 1, 2, 3 e 4 miliardi i quadrati sono enormi, eppure la formula alternativa dà il risultato giusto…↩︎

  2. La pagina di Microsoft sulla VAR, “Excel statistical functions: VAR and VARP improvements and data consolidation” (KB 829248), non è più sul sito di Microsoft, ma se ne trova una copia d’archivio. Contiene anche un esempio molto simile al nostro: aggiungendo 10810^8 ai valori 1, 2 e 3 (varianza 1), Excel 2002 restituiva 0.↩︎