Senza categoria

Il Paradosso di Simpson nella SEO: quando i dati aggregati possono mentire

È l’ultimo giorno del mese. Stiamo preparando il report SEO per il cliente principale. Apriamo Google Search Console, impostiamo il confronto mese su mese e un brivido ci corre lungo la schiena: il CTR organico globale del sito è crollato dal 4,5% al 3,5%.

Prima di scrivere l’email con le cattive notizie e prepararci a giustificare il calo, facciamo la cosa giusta: disaggreghiamo i dati per capire dove stiamo perdendo colpi. Guardiamo le performance per dispositivo e scopriamo una cosa apparentemente impossibile:

  • Il CTR su Desktop è salito dal 5,0% al 5,5%.
  • Il CTR su Mobile è salito dal 2,0% al 2,5%.

Fissiamo lo schermo. Com’è matematicamente possibile che le performance siano migliorate ovunque, ma il totale generale sia crollato di un punto percentuale netto?

Non abbiamo rotto Google Search Console e non abbiamo dimenticato la matematica delle elementari. Siamo semplicemente appena diventati vittime del Paradosso di Simpson.

Di cosa parleremo:

Cos’è il Paradosso di Simpson

Il Paradosso di Simpson è un fenomeno statistico in cui un trend che appare evidente all’interno di diversi gruppi di dati scompare — o addirittura si inverte — quando i gruppi vengono combinati in un unico totale.

Nella pratica quotidiana della SEO e del marketing questo accade quasi sempre per colpa di una variabile confondente nascosta (come dicono gli anglosassoni, una confounding variable): nel nostro caso, il peso relativo dei segmenti che stiamo analizzando. È lo stesso ragionamento che incontriamo parlando di probabilità condizionata, dove ciò che conta non è il dato marginale ma quello condizionato a un sottogruppo. In fondo il paradosso non nasce perché le medie siano sbagliate, ma perché stiamo confrontando due fotografie di una popolazione che nel frattempo ha cambiato composizione.

Quando lavoriamo con tassi e percentuali (il CTR, il Conversion Rate, il Bounce Rate), guardare il dato aggregato senza considerare i volumi sottostanti è una delle trappole più insidiose per chi analizza i dati.

La dimostrazione: anatomia di un finto crollo

Torniamo al nostro report mensile e mettiamo i numeri assoluti dietro a quelle percentuali. Solo così capiamo cosa è successo davvero tra il Mese 1 e il Mese 2.

SegmentoMese 1 (impr. · clic · CTR)Mese 2 (impr. · clic · CTR)Andamento
Desktop10.000 · 500 · 5,0%10.000 · 550 · 5,5%in crescita
Mobile2.000 · 40 · 2,0%20.000 · 500 · 2,5%in crescita
Totale aggregato12.000 · 540 · 4,5%30.000 · 1.050 · 3,5%in calo

Ecco il punto: non abbiamo un problema di SEO, al contrario abbiamo avuto un successo notevole. I posizionamenti su Mobile sono esplosi, portando 18.000 impression in più rispetto al mese precedente.

Il traffico Mobile, però, ha storicamente un CTR strutturalmente più basso del Desktop (più rumore in SERP, scrolling veloce, distrazioni). Quell’enorme afflusso di impression a basso CTR ha “annacquato” la media globale, trascinandola verso il basso. Il dato aggregato ci diceva “stiamo peggiorando”; il dato disaggregato ci dice “stiamo migliorando su tutta la linea, ma è cambiato il mix di traffico”.

Slopegraph dei CTR nei due mesi: Desktop e Mobile salgono entrambi, mentre la riga dell’aggregato scende. È il paradosso in un colpo d’occhio: nessuna riga contraddice l’altra, cambia solo il loro peso.

La ragione matematica è semplice e va sempre tenuta bene a mente: il CTR aggregato non è la media dei CTR dei segmenti, ma una loro media pesata, dove i pesi sono le quote di impression di ciascun segmento. In formula:

\( \text{CTR}_{\text{agg}} = \frac{\sum_i \text{clic}_i}{\sum_i \text{impression}_i} = \sum_i w_i \cdot \text{CTR}_i, \qquad w_i = \frac{\text{impression}_i}{\sum_j \text{impression}_j} \\ \)

dove \(\text{CTR}_i\) è il CTR del segmento i e \(w_i\) è il suo peso, cioè la frazione di impression che gli appartiene. Nel Mese 2 il peso del Mobile è passato da 1/6 a 2/3 del totale: anche se ogni singolo CTR è salito, la media si è spostata verso il valore (basso) del segmento diventato dominante. Non è la matematica a essere impazzita: è il mix a essere cambiato.

La composizione delle impression nei due mesi: il Desktop resta a 10.000, il Mobile esplode da 2.000 a 20.000. Il suo peso passa da 1/6 (16,7%) a 2/3 (66,7%) del totale, e trascina la media pesata verso il proprio CTR basso.

Ricostruiamo il tutto in R, così vediamo il meccanismo all’opera invece di prenderlo sulla fiducia:

# Ricostruisco i dati dei due mesi
dati <- data.frame(
  segmento   = c("Desktop", "Mobile", "Desktop", "Mobile"),
  mese       = c("Mese 1",  "Mese 1", "Mese 2",  "Mese 2"),
  impression = c(10000,     2000,     10000,     20000),
  clic       = c(500,       40,       550,       500)
)

# CTR di ciascun segmento
dati$ctr <- dati$clic / dati$impression

# CTR aggregato per mese: media PESATA sulle impression,
# NON la media aritmetica dei CTR
agg <- aggregate(cbind(clic, impression) ~ mese, data = dati, FUN = sum)
agg$ctr_aggregato <- agg$clic / agg$impression
print(agg)

Come si vede dall’output, l’aggregato scende da 4,5% a 3,5% mentre entrambi i segmenti salgono. n.b.: la media aritmetica dei due CTR del Mese 2 sarebbe il 4% (la semplice media tra 5,5% e 2,5%), ben diversa dal 3,5% reale. Tutta la differenza è nei pesi.

CTR Desktop ↑ CTR Mobile ↑
la quota del Mobile nel mix ↑↑↑
CTR aggregato ↓

Altri due scenari SEO dove il paradosso colpisce

Il CTR per dispositivo è l’esempio da manuale, ma il Paradosso di Simpson si annida un po’ ovunque nelle nostre dashboard.

1. Il crollo del Conversion Rate (intento informazionale vs transazionale)

Lavoriamo su un e-commerce e il Conversion Rate organico passa dal 3% all’1,5%. Un disastro? Non necessariamente. Se abbiamo appena lanciato un blog aziendale che ha iniziato a posizionarsi bene per centinaia di keyword informazionali top-of-the-funnel, abbiamo portato sul sito migliaia di utenti lontani dall’acquisto (con un CR fisiologico vicino allo 0,1%). Il CR delle pagine prodotto può essere stabile o in crescita, ma la mole di traffico del blog ha distorto la media aggregata.

2. Cannibalizzazione o espansione del ranking?

Una nostra pagina prodotto storica rankava solo per 5 keyword transazionali esatte: 100 impression, 10 clic, CTR 10%. Decidiamo di ottimizzarne i contenuti e il mese dopo Google ne premia la semantica, posizionandola per 80 nuove keyword long-tail e correlate. Ora la pagina fa 5.000 impression e 100 clic: CTR 2%. Se guardiamo solo il CTR medio su Search Console sembra che l’ottimizzazione l’abbia distrutta; se guardiamo i clic assoluti, li abbiamo decuplicati.

Come difendersi (i takeaway per chi analizza)

Come sopravviviamo al Paradosso di Simpson quando presentiamo i dati a un cliente o a uno stakeholder? Quattro accortezze.

  1. Non fidiamoci mai del solo dato aggregato. Quando analizziamo metriche relative (tassi di conversione, di clic, medie), il totale globale è spesso il numero meno utile di tutti.
  2. Segmentiamo fino a trovare l’omogeneità. Dividiamo i dati per dimensioni logiche prima di trarre conclusioni: per dispositivo (Desktop/Mobile), per tipo di query (brand/non-brand), per tipo di pagina (blog/prodotto).
  3. Cerchiamo il cambiamento dei pesi. Se un tasso globale crolla ma i sottogruppi tengono, chiediamoci: “è cambiato il mix del traffico?”. Quasi sempre un segmento a bassa performance ha aumentato di colpo i propri volumi.
  4. Educhiamo il cliente. In un report non limitiamoci a mostrare il calo del CTR: mostriamo la tabella disaggregata. Spiegare il meccanismo non salva soltanto il report del mese, ci posiziona come analisti che ragionano sui dati invece di subirli.

La regola da portarsi a casa è una sola, e vale ben oltre questo paradosso: prima di interpretare una media, chiediti sempre da quali gruppi è composta e se il loro peso è cambiato. Una media senza la sua composizione è un numero che può dire tutto e il suo contrario.

I dati non mentono, ma i dati aggregati sono ottimi prestigiatori. La difesa più solida, però, non è statistica ma sperimentale: quando possiamo decidere noi come assegnare il traffico — randomizzando gli utenti tra due versioni di una pagina — il mix smette di essere una variabile fuori controllo. È esattamente ciò che facciamo con un A/B test condotto in modo rigoroso, il prossimo passo del nostro percorso: vedere come un esperimento controllato neutralizza alla radice le variabili confondenti che qui ci siamo limitati a smascherare.


Per approfondire

Se vogliamo approfondire il Paradosso di Simpson e l’arte di leggere i dati senza farci ingannare, L’arte della statistica di David Spiegelhalter è la lettura giusta: dedica pagine limpide proprio a questo paradosso — incluso il celebre caso delle ammissioni a Berkeley — mostrando come un numero aggregato possa raccontare l’esatto contrario di ciò che è successo nei dati.

Paolo Gironi

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,…

4 settimane 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…

4 settimane 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…

4 settimane 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…

4 settimane 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…

4 settimane 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…

4 settimane ago