Go to main content
Law of Large Numbers and CLT - official lesson image on GinnyTech

Law of Large Numbers and Central Limit Theorem

The two fundamental theorems that justify all statistical inference.

AD
Created byAndrii Dyshkantiuk
Lesson 157 / 236Level: AdvancedDuration: 22 minPrerequisites: 1

What you will learn

  • Understand the analytical problem and the decision-making context
  • Apply examples, metrics, and controls to real cases

import pandas as pd

Law of Large Numbers and Central Limit Theorem

Un esperimento parte bene: nei primi due giorni la variante nuova sembra vincere e il team è tentato di chiudere subito e spedire. Poi arrivano altri utenti, la stima si muove, l’effetto si riduce e il grafico racconta una storia meno spettacolare ma più vera. La legge dei grandi numeri e il teorema del limite centrale servono a dare disciplina a questo momento. Ti ricordano che un campione piccolo può raccontare una storia rumorosa, mentre un campione più ampio rende la stima più stabile e leggibile. Il punto non è memorizzare due teoremi, ma capire quando una stima inizia a meritare fiducia e quando è ancora solo rumore organizzato.

Quando fidarsi di un numero provvisorio

Questa lezione va letta pensando a tutte le volte in cui un numero provvisorio viene trattato come una verità. La domanda di fondo è quanti dati servono prima di discutere una decisione, come cambia la stabilità della stima al crescere del campione, e quale rischio eviti aspettando evidenza sufficiente. La categoria è tecnica, ma l’obiettivo resta decisionale: capire quale scelta cambia quando il dato diventa più affidabile.

Una sequenza di lavoro tiene insieme i due teoremi. Prima si chiarisce quale decisione deve migliorare, poi quale segnale osservabile riduce l’incertezza, rispetto a quale baseline lo si legge, cosa può falsare la lettura e quale azione segue. Ogni passaggio rende più chiaro il costo di una decisione presa troppo presto.

Legge dei grandi numeri (LLN)

Weak version: for every ε >0, P(|x̄ₙ - μ| > ε) → 0 as n → ∞.

In italiano: la probabilità che la media campionaria sia lontana dalla media vera va a zero all’aumentare del campione. Quello che la legge garantisce è che, con abbastanza dati, la tua stima è accurata. Quello che non garantisce è how many dati ti servono. La convergenza può essere lentissima, e se la distribuzione ha varianza infinita (per esempio una power law con α < 2) la LLN non vale nemmeno.

C’è un caso in cui la legge sembra mentire. Se misuri il revenue medio per cliente su 1 milione di clienti e la distribuzione è una power law, la media campionaria può essere dominata da pochi outlier. Aggiungendo più clienti la media non converge a nulla di stabile, perché ogni nuovo whale cliente la sposta drasticamente. La soluzione è usare la mediana o statistiche robuste, non la media.

Teorema del limite centrale (CLT)

Let X₁, X₂, …, Xₙ be i.i.d. with mean μ and finite variance σ². Then:

√n·(x̄ₙ - μ)/σ → N(0,1) in distribution.

In italiano: la media campionaria standardizzata converge a una normale standard. Le condizioni sono indipendenza e varianza finita. Se manca una delle due, il CLT non si applica.

Le violazioni sono frequenti in analisi dati. La prima è la dipendenza temporale: transazioni consecutive sono correlate e la varianza stimata risulta sbagliata. La seconda è la varianza infinita, tipica delle distribuzioni a coda pesante come revenue e dimensione di un trade, dove il CLT non tiene. La terza è avere campioni troppo piccoli per la distribuzione: per una binomiale con p=0.001 servono molte migliaia di osservazioni prima che l’approssimazione normale sia decente.

Quando il CLT fallisce: il Value at Risk

Il Value at Risk nelle banche assume, via CLT, che i rendimenti siano normalmente distribuiti. Ma i rendimenti finanziari hanno code pesanti, come ha insegnato Taleb. Eventi a “6 sigma” accadono molto più spesso di quanto la normale preveda, e quando accadono i modelli basati sul CLT crollano. È successo nel 1998 con LTCM, nel 2008 con la crisi subprime, e succederà ancora. Prima di usare test basati sulla normale conviene quindi chiedersi se i dati hanno varianza finita e se sono indipendenti. Se la risposta a una delle due è “non lo so”, il CLT potrebbe non salvarti.


References:

  • Feller, W. (1971). An Introduction to Probability Theory and Its Applications, Vol. 2. Wiley.
  • Embrechts, P., Klüppelberg, C. & Mikosch, T. (1997). Modelling Extremal Events. Springer.

Leggere i due teoremi come parte di un sistema

In un progetto reale questi teoremi non vivono mai isolati. Sono parte di un sistema più ampio fatto di decisioni, dati disponibili, vincoli tecnici, incentivi organizzativi e qualità dell’esecuzione. Il rischio dell’analista principiante è trattare il tema come una definizione: imparare il nome, ricordare due formule, applicare un template. Il lavoro professionale è diverso, perché bisogna capire quale problema risolvono, quali assunzioni contengono e cosa succede quando quelle assunzioni non sono vere.

La prima domanda da fare non è quale metrica calcolo, ma quale decisione dovrà essere presa grazie a questa analisi. Una dashboard, una query o un modello statistico hanno valore solo se riducono l’incertezza decisionale; se non cambiano una scelta, sono documentazione o teatro analitico. Un modo per impostare il lavoro è definire il problema in linguaggio business, identificare l’unità di analisi corretta tra utente, account, evento, sessione, ordine o campagna, controllare se i dati misurano davvero il fenomeno o solo una sua ombra, costruire una metrica interpretabile, segmentare per evitare che la media nasconda pattern opposti e trasformare il risultato in una raccomandazione verificabile.

Real case: Netflix and the discipline of metrics

Netflix è un esempio utile perché ha costruito molte decisioni di prodotto intorno a segnali comportamentali osservabili: completamento degli episodi, tempo di ricerca prima della riproduzione, abbandono dopo pochi minuti, ritorno nella settimana successiva, efficacia delle raccomandazioni. Il punto non è che ogni azienda debba copiare Netflix, ma che il dato non viene trattato come ornamento, bensì come infrastruttura decisionale.

Quando Netflix valuta una modifica all’esperienza, che sia una nuova riga di raccomandazioni, una diversa immagine di copertina o un algoritmo di ranking, non misura solo il click immediato. Misura anche segnali di qualità: l’utente guarda davvero il contenuto, torna nei giorni successivi, riduce il tempo speso a cercare, aumenta la soddisfazione implicita. Questa disciplina impedisce di ottimizzare vanity metric che sembrano positive nel breve ma danneggiano valore nel lungo periodo. Lo stesso principio vale qui: i due teoremi vanno collegati a un outcome, e se il risultato non aiuta a scegliere tra due azioni alternative l’analisi è incompleta.

SQL example: building a control view

The following pattern is intentionally generic but executable in most modern warehouses. The goal is to create an analytical base with metric, segment, and time window, so you can compare periods and groups without rewriting logic each time.

WITH base_events AS (
  SELECT
    user_id,
    account_id,
    event_type,
    event_time,
    DATE_TRUNC('week', event_time) AS week,
    source,
    device_type
  FROM events
  WHERE event_time >= CURRENT_DATE - INTERVAL '180 days'
    AND user_id IS NOT NULL
),
weekly_user_metrics AS (
  SELECT
    week,
    user_id,
    COALESCE(source, 'unknown') AS source,
    COALESCE(device_type, 'unknown') AS device_type,
    COUNT(*) AS total_events,
    COUNT(DISTINCT DATE(event_time)) AS active_days,
    COUNT(DISTINCT event_type) AS event_diversity,
    MAX(CASE WHEN event_type IN ('purchase', 'subscribe', 'activation') THEN 1 ELSE 0 END) AS reached_key_outcome
  FROM base_events
  GROUP BY week, user_id, source, device_type
)
SELECT
  week,
  source,
  device_type,
  COUNT(DISTINCT user_id) AS users,
  ROUND(AVG(active_days), 2) AS avg_active_days,
  ROUND(AVG(event_diversity), 2) AS avg_event_diversity,
  ROUND(AVG(reached_key_outcome) * 100, 2) AS key_outcome_rate
FROM weekly_user_metrics
GROUP BY week, source, device_type
ORDER BY week, source, device_type;

La query non pretende di essere la risposta finale. Serve a creare una superficie di osservazione fatta di trend, segmenti, differenze tra canali e variazioni nel tempo, da cui l’analista può formulare ipotesi più precise.

Python example: checking stability and anomalies

A useful metric must be stable enough to guide decisions and sensitive enough to signal real changes. In Python, we can check for anomalous week-over-week variations.


# df contiene: week, segment, users, key_outcome_rate
# key_outcome_rate espresso in percentuale, es. 12.4

df = df.sort_values(['segment', 'week']).copy()
df['previous_rate'] = df.groupby('segment')['key_outcome_rate'].shift(1)
df['wow_change_pp'] = df['key_outcome_rate'] - df['previous_rate']
df['rolling_mean'] = df.groupby('segment')['key_outcome_rate'].transform(
    lambda s: s.rolling(4, min_periods=2).mean()
)
df['rolling_std'] = df.groupby('segment')['key_outcome_rate'].transform(
    lambda s: s.rolling(4, min_periods=2).std()
)
df['z_score'] = (df['key_outcome_rate'] - df['rolling_mean']) / df['rolling_std']

anomalies = df[df['z_score'].abs() >= 2].sort_values('z_score')
print(anomalies[['week', 'segment', 'key_outcome_rate', 'wow_change_pp', 'z_score']])

Il valore di questo controllo è pratico: evita di reagire a ogni oscillazione casuale, ma segnala quando una variazione merita un’investigazione. In azienda questo tipo di analisi può alimentare alert, review settimanali e retrospettive di prodotto.

Common mistakes to avoid

Il primo errore è lavorare su dati aggregati troppo presto, perché una media globale può nascondere due segmenti che si muovono in direzioni opposte. Il secondo è non controllare la qualità del dato: eventi duplicati, tracking incompleto, timezone incoerenti e cambi di definizione producono conclusioni false. Il terzo è confondere correlazione e causalità: se gli utenti che usano una feature convertono di più, non significa che la feature causi la conversione, perché potrebbero usarla proprio in quanto già più motivati.

Per ridurre questi rischi, ogni analisi dovrebbe includere almeno tre controlli: una definizione esplicita della metrica, un confronto per segmento e una verifica contro un periodo precedente o un gruppo di controllo.

La legge dei grandi numeri e il teorema del limite centrale vanno trattati come strumenti decisionali, non come argomenti da manuale. Il valore nasce quando colleghi problema, dati, metrica, segmentazione e azione. Una buona analisi non termina con “il numero è salito” o “il numero è sceso”, ma con una frase operativa: quale decisione prendiamo, con quale livello di confidenza, e quale metrica useremo per sapere se avevamo ragione.