Di cosa parleremo
Cos’è il Teorema del Limite Centrale
Partiamo dall’enunciato, e poi lo tradurremo in parole semplici. Il Teorema del Limite Centrale afferma che: se preleviamo campioni sufficientemente grandi da una qualsiasi popolazione con media \(\mu\) e deviazione standard \(\sigma\) finite, la distribuzione delle medie campionarie sarà approssimativamente normale, indipendentemente dalla forma della distribuzione originale. Più precisamente, la distribuzione delle medie campionarie \(\bar{X}\) tende a: \( \bar{X} \sim N\left(\mu, \, \frac{\sigma}{\sqrt{n}}\right) \\ \) dove:- \(\mu\) è la media della popolazione
- \(\sigma\) è la deviazione standard della popolazione
- \(n\) è la dimensione di ciascun campione
- \(\frac{\sigma}{\sqrt{n}}\) è l’errore standard della media
Perché è così importante
Va sempre tenuto bene a mente questo punto, perché è la chiave di volta di tutto ciò che abbiamo fatto finora. Quando calcoliamo un intervallo di confidenza o conduciamo un test delle ipotesi, non lavoriamo con i singoli dati: lavoriamo con le medie campionarie. E il TLC ci garantisce che quelle medie, purché il campione sia abbastanza grande, seguono una distribuzione normale (o approssimativamente tale). Ecco perché possiamo usare la distribuzione normale e la distribuzione t anche quando i dati originali non sono normali. Non stiamo facendo un’assunzione azzardata: stiamo sfruttando un risultato matematico solido. In pratica, il TLC è il motivo per cui:- gli intervalli di confidenza funzionano
- i test delle ipotesi sono affidabili
- possiamo fare inferenza statistica su praticamente qualsiasi tipo di dato
L’errore più comune sul TLC
Molti pensano che il Teorema del Limite Centrale dica che la popolazione diventa normale se il campione è abbastanza grande. Non è così. Il TLC non trasforma i tuoi dati grezzi: non importa quanto grande sia il campione, la distribuzione del traffico giornaliero resterà asimmetrica. Quello che diventa normale è la distribuzione delle medie campionarie — una cosa diversa, che vive a un livello di astrazione superiore. I dati del singolo giorno continueranno a essere storti quanto prima; è la media di tanti campioni a distribuirsi a campana. Confondere le due cose porta a conclusioni sbagliate: ad esempio, a pretendere che i dati di vendita giornalieri seguano una normale prima di applicare un test delle ipotesi, quando in realtà il test lavora con le medie ed è il TLC a garantirne la validità.
Vediamolo con i nostri occhi: una simulazione in R
La teoria è bella, ma vedere il TLC in azione è un’altra cosa. Costruiamo una simulazione in R che mostra il teorema al lavoro. Partiamo da una distribuzione decisamente non normale: una distribuzione esponenziale, che è fortemente asimmetrica a destra (pensate alla distribuzione dei tempi di permanenza su un sito: molte visite brevissime, poche molto lunghe). Simuliamo in R il processo di campionamento ripetuto:set.seed(42)
# Popolazione: distribuzione esponenziale (media = 1/lambda)
lambda <- 0.5
pop_mean <- 1 / lambda # media vera = 2
# Simuliamo 10000 campioni di dimensione n
n_campioni <- 10000
# Funzione per calcolare le medie campionarie
simula_medie <- function(n) {
replicate(n_campioni, mean(rexp(n, rate = lambda)))
}
# Proviamo con tre dimensioni campionarie diverse
medie_n5 <- simula_medie(5)
medie_n30 <- simula_medie(30)
medie_n100 <- simula_medie(100)
# Visualizziamo
par(mfrow = c(2, 2))
# La distribuzione originale (esponenziale)
hist(rexp(10000, rate = lambda), breaks = 50, probability = TRUE,
main = "Popolazione originale\n(esponenziale)",
col = "lightcoral", xlab = "Valore", ylab = "Densit\u00e0")
# Medie con n = 5
hist(medie_n5, breaks = 50, probability = TRUE,
main = "Medie campionarie (n = 5)",
col = "lightyellow", xlab = "Media", ylab = "Densit\u00e0")
curve(dnorm(x, mean = pop_mean, sd = pop_mean / sqrt(5)),
add = TRUE, col = "red", lwd = 2)
# Medie con n = 30
hist(medie_n30, breaks = 50, probability = TRUE,
main = "Medie campionarie (n = 30)",
col = "lightgreen", xlab = "Media", ylab = "Densit\u00e0")
curve(dnorm(x, mean = pop_mean, sd = pop_mean / sqrt(30)),
add = TRUE, col = "red", lwd = 2)
# Medie con n = 100
hist(medie_n100, breaks = 50, probability = TRUE,
main = "Medie campionarie (n = 100)",
col = "lightblue", xlab = "Media", ylab = "Densit\u00e0")
curve(dnorm(x, mean = pop_mean, sd = pop_mean / sqrt(100)),
add = TRUE, col = "red", lwd = 2)
- Con n = 5, le medie cominciano già a somigliare a una normale, anche se resta un po’ di asimmetria
- Con n = 30, la distribuzione delle medie è praticamente indistinguibile da una normale
- Con n = 100, la sovrapposizione con la curva teorica è quasi perfetta
La regola pratica: quanto deve essere grande n?
Una domanda legittima: “sufficientemente grande” è un termine piuttosto vago. In pratica, quanto deve essere grande il campione perché il TLC faccia il suo lavoro? La regola pratica più diffusa è n ≥ 30. Con 30 o più osservazioni, la distribuzione delle medie campionarie è generalmente ben approssimata dalla normale, anche se la distribuzione originale è moderatamente asimmetrica. Ma attenzione: questa regola ha delle eccezioni.- Se la distribuzione originale è già simmetrica (anche se non normale), bastano campioni più piccoli (anche n = 10-15 può essere sufficiente)
- Se la distribuzione originale è fortemente asimmetrica (come nel caso di dati con molti outlier, o distribuzioni esponenziali con parametri estremi), possono servire campioni più grandi (n = 50 o anche di più)
Il TLC e l’errore standard
Il teorema ci dice anche qualcosa di prezioso sulla dispersione delle medie campionarie. La deviazione standard della distribuzione delle medie (cioè l’errore standard) è: \( SE = \frac{\sigma}{\sqrt{n}} \\ \) Questo ha due conseguenze pratiche importanti:- All’aumentare di n, l’errore standard diminuisce. Più dati raccogliamo, più le nostre medie campionarie si concentrano attorno alla media vera. La relazione è con \(\sqrt{n}\), il che significa (come abbiamo già visto con gli intervalli di confidenza) che per dimezzare l’errore standard dobbiamo quadruplicare il campione.
- La variabilità della popolazione conta. Se i nostri dati sono molto dispersi (alto \(\sigma\)), servono campioni più grandi per ottenere stime precise. Un sito con traffico molto variabile richiede più giorni di osservazione per una stima affidabile della media giornaliera.
# Errore standard teorico per n = 30
se_teorico <- pop_mean / sqrt(30)
# Errore standard osservato dalla simulazione
se_osservato <- sd(medie_n30)
cat("SE teorico:", round(se_teorico, 4), "\n")
cat("SE osservato:", round(se_osservato, 4), "\n")
cat("Differenza:", round(abs(se_teorico - se_osservato), 4), "\n")La corrispondenza è notevole: i due valori praticamente coincidono. Il TLC funziona esattamente come promesso.Un esempio pratico: il traffico organico giornaliero
Applichiamo il TLC a un caso concreto. Supponiamo di monitorare il traffico organico giornaliero di un sito per un anno (365 giorni). I dati di traffico non sono mai normali: sono asimmetrici a destra (giorni feriali vs weekend, picchi stagionali, anomalie). Simuliamo in R una situazione realistica:set.seed(123)
# Simuliamo 365 giorni di traffico (distribuzione log-normale, tipica del web)
traffico <- round(rlnorm(365, meanlog = 6, sdlog = 0.5))
cat("Media traffico giornaliero:", round(mean(traffico)), "visite\n")
cat("Mediana:", round(median(traffico)), "visite\n")
cat("Dev. standard:", round(sd(traffico)), "visite\n")
# Prendiamo campioni di 30 giorni e calcoliamo la media di ciascuno
medie_mensili <- replicate(5000, mean(sample(traffico, 30, replace = TRUE)))
par(mfrow = c(1, 2))
hist(traffico, breaks = 30, probability = TRUE,
main = "Traffico giornaliero\n(365 giorni)",
col = "lightcoral", xlab = "Visite", ylab = "Densit\u00e0")
hist(medie_mensili, breaks = 50, probability = TRUE,
main = "Medie di campioni\nda 30 giorni",
col = "lightblue", xlab = "Media visite", ylab = "Densit\u00e0")
curve(dnorm(x, mean = mean(traffico), sd = sd(traffico) / sqrt(30)),
add = TRUE, col = "red", lwd = 2)
# Test di normalit\u00e0 sulle medie
shapiro.test(sample(medie_mensili, 5000))
Quando il TLC non basta
Sarebbe disonesto non menzionare i casi in cui il TLC ha dei limiti. Il teorema richiede che la popolazione abbia media e varianza finite. Ci sono distribuzioni (come la distribuzione di Cauchy) che non hanno una varianza finita, e per queste il TLC non vale. Nella pratica della SEO e del marketing, questo è raramente un problema: i nostri dati hanno sempre media e varianza finite. Tuttavia, vale la pena ricordare che:- Con distribuzioni fortemente asimmetriche e campioni piccoli (n < 20), l’approssimazione normale può essere insufficiente. In questi casi, meglio usare metodi non parametrici o tecniche di bootstrap
- Con proporzioni estreme (molto vicine a 0 o a 1), il TLC per le proporzioni richiede campioni più grandi perché l’approssimazione funzioni. Ne abbiamo già parlato nell’articolo sugli intervalli di confidenza
Prova tu
Un e-commerce registra i seguenti importi degli ordini (in euro) in un mese:ordini <- c(12, 8, 45, 15, 22, 150, 9, 18, 35, 11,
14, 200, 7, 19, 28, 13, 55, 10, 16, 95,
8, 21, 42, 12, 17, 310, 9, 14, 25, 11)- Calcola media e deviazione standard degli ordini. La distribuzione sembra normale?
- Usa
replicate()esample()per generare 5000 medie campionarie con n = 10 (campionando con reinserimento) - Disegna l’istogramma delle medie campionarie. Assomiglia a una normale?
- Calcola l’errore standard teorico (\(\frac{s}{\sqrt{n}}\)) e confrontalo con la deviazione standard delle medie simulate
replicate(5000, mean(sample(ordini, 10, replace = TRUE))) fa quasi tutto il lavoro. Abbiamo visto come il Teorema del Limite Centrale sia il fondamento nascosto di tutta la statistica inferenziale: è il motivo per cui possiamo costruire intervalli di confidenza, condurre test delle ipotesi e fare previsioni affidabili, anche quando i nostri dati non sono normali. Ma il TLC ci ha anche insegnato che la dimensione del campione è cruciale. Questo ci apre la strada a una domanda molto pratica: quanti dati ci servono? È il problema della dimensione campionaria e del campionamento, temi che affronteremo in un prossimo articolo.Per approfondire
Se vuoi approfondire il ruolo della distribuzione normale e del Teorema del Limite Centrale nella pratica statistica, L’arte della statistica di David Spiegelhalter è un’ottima compagna di viaggio. Spiegelhalter riesce a spiegare perché la curva a campana compare ovunque — dalle misurazioni fisiche ai sondaggi elettorali — con una chiarezza che non sacrifica mai il rigore.