statistics

Indice di Gini: come misurare (davvero) la concentrazione del traffico SEO

Hai mai notato come poche pagine del tuo sito si portino a casa la parte del leone del traffico?
La homepage, il blog, la pagina prodotti — e poi un lunghissimo elenco di pagine che, messe insieme, pesano meno di quelle tre.

È il principio di Pareto, lo conosciamo bene. Ma “l’80% del traffico viene dal 20% delle pagine” è un’euristica, non una misura.
Come facciamo a sapere se il nostro sito è più o meno concentrato della media? E se vogliamo confrontare due siti tra loro — o lo stesso sito in due momenti diversi?

Ci serve un indice che quantifichi la concentrazione in un numero solo.
Un numero che vale 0 quando tutto è distribuito in parti uguali, e 1 quando una singola pagina si prende tutto. Tra questi due estremi, lo spazio di tutte le distribuzioni reali.

Questo numero esiste. Si chiama indice di Gini, e misura la concentrazione di una variabile quantitativa trasferibile (una grandezza che può essere redistribuita senza cambiarne il totale: reddito, traffico, quote di mercato). Fu introdotto nel 1912 dallo statistico italiano Corrado Gini proprio per studiare la disuguaglianza nella distribuzione del reddito.
Da allora è diventato uno degli indicatori più usati in economia, sociologia — e sì, anche in analisi SEO.

Vediamo come funziona.

Prima di arrivare all’indice, partiamo da una rappresentazione grafica che Gini stesso riprese dal lavoro di Max Otto Lorenz (1905): la curva di Lorenz.

La curva di Lorenz

L’idea è semplice. Ordiniamo le pagine dalla meno trafficata alla più trafficata. Sulle ascisse mettiamo la frazione cumulativa delle pagine (da 0 a 100%). Sulle ordinate mettiamo la frazione cumulativa del traffico (sempre da 0 a 100%). Poi uniamo i punti.

Cosa ci dice questo grafico?

La linea tratteggiata a 45° è la retta di equidistribuzione: se ogni pagina ricevesse esattamente la stessa quantità di traffico, la curva di Lorenz coinciderebbe con questa retta.
La curva blu è la curva di Lorenz dei dati reali: si allontana tanto più dalla diagonale quanto più il traffico è concentrato in poche pagine.
L’area celeste tra la retta e la curva è l’area di concentrazione.

Il punto chiave: la curva di Lorenz rende visibile ciò che un numero da solo non può raccontare — la forma della disuguaglianza.
Due siti con lo stesso indice di Gini possono avere curve molto diverse, come vedremo tra poco.

Corrado Gini (1884–1965)

Gini pubblicò il suo lavoro “Variabilità e mutabilità” nel 1912, ampliando le idee di Lorenz. L’indice che porta il suo nome nasce proprio da lì: misura la percentuale dell’area compresa tra la curva di Lorenz e la retta a 45°, rispetto all’area totale del triangolo sottostante.

Dalla curva all’indice

L’indice di Gini (indicato spesso con R, da “rapporto di concentrazione”) si può definire indipendentemente dalla curva.

La differenza media assoluta è la media delle differenze (in valore assoluto) tra tutte le possibili coppie di valori della distribuzione: misura quanto i valori sono distanti tra loro in media.

R = differenza media assoluta / (2 × media dei valori)

Un valore di R = 0 significa perfetta equidistribuzione (tutte le pagine hanno lo stesso traffico).
R = 1 significa massima concentrazione (una singola pagina detiene tutto il traffico).
Nella realtà, naturalmente, ci si muove tra i due estremi: il grafico che abbiamo visto mostra R ≈ 0,61, un valore di concentrazione medio-alta tipico di molti siti reali.

Per dare un termine di paragone: l’indice di Gini sulla distribuzione del reddito in Italia si aggira intorno a 0,33 (dati ISTAT 2023).
Un sito web ha tipicamente valori molto più alti, perché il traffico tende a concentrarsi in modo più estremo del reddito.

Un limite importante. L’indice di Gini è un indicatore sintetico: riassume la concentrazione in un numero solo, ma due distribuzioni con lo stesso valore possono avere forme molto diverse. Un sito con poche pagine fortissime e tantissime quasi zero può avere Gini = 0,6 esattamente come un sito con una distribuzione più graduale. La curva di Lorenz aiuta a vedere la differenza — ma il numero da solo non basta.

Nel mondo digitale il traffico segue spesso una legge di potenza (qualcuno la chiama legge di Zipf), con una coda lunghissima di pagine che ricevono pochissime visite. Gini non distingue questo tipo di distribuzione da una a coda più corta: lo stesso valore può nascondere code molto diverse, ed è per questo che va sempre affiancato dalla curva di Lorenz.

Attenzione al confronto tra siti di dimensioni diverse. Lo stimatore di Gini calcolato su poche pagine (diciamo n < 50) tende a sovrastimare la concentrazione reale: è un bias noto, tanto che esiste una versione corretta che moltiplica per n/(n−1). Un sito piccolo apparirà strutturalmente più concentrato di uno grande, anche a parità di distribuzione sottostante. È un errore confrontare Gini calcolati su insiemi di pagine di dimensioni molto diverse.

Tre errori comuni con l’indice di Gini

1. “Gini dice quante pagine concentrano il traffico” — No. Gini dice quanto è squilibrata la distribuzione, non quante pagine stanno sopra una certa soglia. Due siti con Gini = 0,6 possono avere pattern molto diversi: uno con poche pagine molto forti e tante quasi zero, un altro con una distribuzione più graduale. La curva di Lorenz aiuta a distinguere i casi.

2. “Gini si può usare su qualsiasi variabile” — Attenzione. Gini ha senso solo per variabili trasferibili, cioè variabili per cui ha senso sommare i valori e poi redistribuirli. Il reddito lo è (la somma dei redditi è il reddito totale). Le sessioni di traffico lo sono (la somma delle sessioni è il traffico totale). Il tasso di conversione no: non ha senso “ridistribuire” i tassi di conversione.

3. “Gini è la stessa cosa della deviazione standard” — No. La deviazione standard misura la dispersione assoluta, Gini misura la concentrazione relativa. Due distribuzioni con la stessa deviazione standard possono avere Gini molto diversi, e viceversa.

Prova tu

Vediamo se hai seguito. Ecco i dati di sessioni (negli ultimi 30 giorni) per 8 pagine di un sito immaginario:

PaginaSessioni
Homepage8 200
Blog5 100
Prodotti2 800
Chi siamo950
Contatti720
Servizi450
Area clienti310
Lavora con noi180

Prova a rispondere:

  1. A occhio: secondo te l’indice di Gini sarà più vicino a 0,3, 0,5 o 0,7?
  2. Quali sono le prime due pagine in ordine di traffico? Che frazione del traffico totale rappresentano?
  3. Se aggiungessimo una nona pagina con 50 sessioni, l’indice di Gini aumenterebbe o diminuirebbe?

Prenditi un momento per pensarci — poi vediamo insieme la soluzione in R.

Calcolo in R

Calcoliamo l’indice di Gini sui dati dell’esercizio. In R possiamo implementare la definizione direttamente:

Delta <- function(variabile) {
  n <- length(variabile)
  media <- mean(variabile)
  variabile_ordinata <- sort(variabile)
  (4 * sum((1:n) * variabile_ordinata) / n - 2 * media * (n + 1)) / (n - 1)
}

sessioni <- c(8200, 5100, 2800, 950, 720, 450, 310, 180)

# Nota: la formula evita di calcolare esplicitamente
# tutte le n(n-1)/2 coppie (riscrittura efficiente)
gini <- Delta(sessioni) / (2 * mean(sessioni))
gini

# Curva di Lorenz in un colpo solo con il pacchetto ineq
library(ineq)
gini_ineq <- Gini(sessioni)
lc <- Lc(sessioni)
plot(lc)

Il risultato? R ≈ 0,58. Un valore di concentrazione alto, come ci si aspetta per un sito con una homepage dominante.

Risposte alle domande:

  1. Era più vicino a 0,7? In realtà 0,58, ma se avevi pensato “tra 0,5 e 0,7” eri sulla strada giusta.
  2. Homepage e Blog insieme fanno 13 300 sessioni su 18 710 totali — circa il 71%. Poco più del 70% del traffico concentrato nel 25% delle pagine.
  3. Una nona pagina con 50 sessioni farebbe aumentare l’indice di Gini, perché aggiungiamo una pagina in coda con pochissimo traffico (50 è il nuovo minimo). In generale, però, l’effetto dipende da dove si colloca il nuovo valore: se fosse vicino alla media, la conseguenza sarebbe ambigua.

L’indice di Gini ci dice quanto è concentrato il traffico, ma non ci dice perché.
Due siti con lo stesso Gini possono avere dinamiche completamente diverse: uno perché pochissime pagine performano benissimo, un altro perché tantissime pagine performano malissimo. La diagnosi è la stessa (alta concentrazione), ma la cura cambia.

Nel prossimo articolo vedremo come scomporre la concentrazione per fonte di traffico (organico, direct, social, referral) — e capire dove agire per primo.


Per approfondire

Disuguaglianza, misure descrittive e l’arte di leggere i numeri senza farsi ingannare: L’arte della statistica di David Spiegelhalter dedica a questi temi pagine illuminanti, ed è la lettura che consigliamo a chi è arrivato fin qui.

paolo

Recent Posts

Clustering delle keyword: raggruppare migliaia di query con K-means e clustering gerarchico

Capita spesso che si esporti l'elenco delle keyword da Search Console o da un tool,…

1 mese ago

CTR atteso vs reale: trovare le pagine che rendono meno della loro posizione

Chi passa le giornate dentro Search Console conosce bene una situazione di questo tipo: una…

1 mese ago

Naive Bayes: classificare l’intento delle query con il teorema di Bayes

Nell'articolo sul multi-armed bandit abbiamo usato Bayes per decidere fra varianti: spostare il traffico verso…

1 mese ago

Multi-armed bandit: ottimizzare le varianti mentre il test è ancora in corso

Nell'articolo sull'A/B test bayesiano abbiamo confrontato due varianti a campione fisso: si raccolgono i dati…

1 mese ago

A/B test bayesiano: non solo “se” B è meglio di A, ma “di quanto”

Abbiamo avuto modo di esaminare, nell'articolo sull'A/B testing classico, come confrontare due varianti con il…

1 mese ago

Stima bayesiana di un conversion rate: quanto possiamo fidarci dei pochi dati che abbiamo

Abbiamo avuto modo di esaminare, nell'articolo sulle fondamenta della statistica bayesiana, come l'aggiornamento bayesiano funzioni…

1 mese ago