Come testare la stabilità di una segmentazione?
La stabilità valuta se una struttura simile riappare con ricampionamento, variazione temporale o perturbazione ragionevole delle variabili. Non garantisce utilità aziendale.
Redazione scientifica: Marketing Science Center
Risposta diretta
Confrontare soluzioni e quantificare la robustezza delle assegnazioni.
La stabilità valuta se una struttura simile riappare con ricampionamento, variazione temporale o perturbazione ragionevole delle variabili. Non garantisce utilità aziendale.
01 · PROTOCOLLO
Sintesi operativa
Una segmentazione in quattro segmenti è proposta su 360 clienti. Viene ricostruita su 40 ricampionamenti estratti con reimmissione e il recupero di ogni segmento è misurato con l’indice di Jaccard. Il segmento più debole è ritrovato solo a 0,664749, sotto la soglia dichiarata di 0,75. Peggio: una referenza senza struttura, ottenuta permutando ogni variabile, ritrova i propri segmenti a 0,829190, quindi meglio del file reale. Verdetto: PROPOSED_SEGMENTATION_NOT_STABLE. La soluzione a tre segmenti regge invece a 0,986949.
02 · PROTOCOLLO
Situazione marketing concreta
Una direzione marketing ha ricevuto da un fornitore una segmentazione in quattro gruppi, con nomi, personas e un piano di animazione per gruppo. Prima di impegnare quattro budget distinti, il team pone una domanda semplice: rifacendo lo stesso lavoro su un campione leggermente diverso degli stessi clienti, si ritroverebbero questi quattro gruppi? Nessuno chiede se i gruppi siano veri. Si chiede se reggono.
03 · PROTOCOLLO
Domanda scientifica
Per questi 360 clienti, queste tre variabili dichiarate, questa distanza dichiarata e questa procedura di ricampionamento dichiarata, ciascuno dei quattro segmenti proposti riappare abbastanza spesso da giustificare un budget dedicato? E questo livello di ricomparsa supera ciò che un file senza alcuna struttura produrrebbe già per il solo effetto del ricampionamento? La domanda non riguarda né l’esistenza dei gruppi né la loro utilità, ma la loro riproducibilità sotto perturbazione.
04 · PROTOCOLLO
Perché l’approccio semplice può fallire
Guardare la soluzione una sola volta non dice nulla: un algoritmo di partizione restituisce sempre il numero di gruppi richiesto, e su una singola estrazione quel numero appare sempre netto. Rieseguire il calcolo senza cambiare i dati non dice nulla, poiché la partenza è deterministica. E misurare un recupero elevato senza termine di paragone può ingannare del tutto: su questo file la referenza senza struttura raggiunge 0,829190 a quattro segmenti, cifra che si leggerebbe volentieri come prova di solidità se non fosse confrontata con altro.
05 · PROTOCOLLO
Intuizione del metodo
L’idea sta in una frase: si perturba il file, si rifà esattamente lo stesso lavoro e si guarda cosa ritorna. Ogni perturbazione è un ricampionamento estratto con reimmissione, della stessa dimensione del file. Dopo ogni ricostruzione, tutti i clienti d’origine sono riassegnati ai nuovi centri, così le due ripartizioni riguardano le stesse persone e si confrontano senza artifici. Ogni segmento d’origine riceve allora il miglior recupero che ottiene rispetto ai segmenti ricostruiti. Il tutto è misurato una seconda volta su una referenza senza struttura, per sapere cosa produce il solo rumore.
06 · PROTOCOLLO
Dati necessari
Sono fissati prima di ogni lettura: l’identificativo cliente ordinato senza lacune, la recenza, la frequenza, lo scontrino medio, le trasformazioni dichiarate, la standardizzazione, la distanza, la partenza deterministica, i numeri di segmenti esaminati (2, 3 e 4), il numero proposto (4), i 40 ricampionamenti, la ricorrenza aritmetica che li produce, la referenza senza struttura e le due soglie. Il file sigillato contiene 360 clienti. Il caso è sintetico e dichiarato tale.
07 · PROTOCOLLO
Modello formale e simboli
Ogni cliente è un vettore di tre coordinate standardizzate: logaritmo della recenza, frequenza, logaritmo dello scontrino. La distanza è euclidea al quadrato e un segmento raccoglie i clienti più vicini al proprio centro che a ogni altro. Il recupero di un segmento S da parte di un segmento ricostruito R è l’indice di Jaccard, cioè il numero di clienti comuni diviso per il numero di clienti appartenenti all’uno o all’altro. I ricampionamenti provengono da una ricorrenza dichiarata: lo stato successivo vale (1103515245 × stato + 12345) modulo 2^31, e il cliente estratto è lo stato modulo il numero di clienti.
08 · PROTOCOLLO
Calcolo dichiarato
Il calcolo dichiarato segue sette tappe: validare lo schema e rifiutare ogni file non conforme; trasformare e standardizzare le tre variabili sull’intero file; costruire la referenza senza struttura permutando ogni variabile indipendentemente con la stessa ricorrenza; per ogni numero di segmenti esaminato, costruire la ripartizione su tutto il file e registrare la composizione di ogni segmento; estrarre i 40 ricampionamenti, ricostruire, riassegnare tutti i clienti d’origine e attribuire a ogni segmento il suo miglior Jaccard, fallendo se un ricampionamento non produce il numero richiesto; mediare sui ricampionamenti, rifare in modo identico sulla referenza senza struttura, poi calcolare il recupero più debole, quello della referenza e il loro margine; applicare le due soglie, poi la regola di verdetto al numero proposto.
09 · PROTOCOLLO
Esempio numerico completo
Illustrazione sintetica — valori didattici, non osservati
Sul file sigillato: 360 clienti, 40 ricampionamenti. A due segmenti, recuperi 0,977481 e 0,976322; il più debole vale 0,976322, la referenza senza struttura 0,647971, il margine 0,328351, quindi STABLE. A tre segmenti: 0,990139, 0,986949 e 0,997222; più debole 0,986949, referenza 0,606088, margine 0,380860, quindi STABLE. A quattro segmenti, il numero proposto: 0,848874, 0,664749, 0,827341 e 0,979621; più debole 0,664749, sotto la soglia di 0,75, referenza 0,829190 e margine −0,164441, quindi NOT_STABLE. Verdetto: PROPOSED_SEGMENTATION_NOT_STABLE.
10 · PROTOCOLLO
Ipotesi di validità
La procedura presuppone che i clienti del file possano essere trattati come osservazioni intercambiabili di una stessa popolazione, il che autorizza l’estrazione con reimmissione; che le tre variabili siano quelle che descrivono ciò che il team vuole distinguere; e che la referenza ottenuta permutando ogni variabile distrugga davvero la struttura congiunta conservando ogni distribuzione marginale. Non presuppone che esistano quattro segmenti, né che tre sia il numero giusto. Tre cose non sono verificabili qui: la pertinenza delle variabili, la persistenza della ripartizione nel tempo e la reazione differenziata di un segmento a un’azione.
11 · PROTOCOLLO
Diagnostica e incertezza
Il recupero medio è calcolato su 40 ricampionamenti: non è accompagnato da un intervallo, perché con questo numero di estrazioni l’incertezza sulla media resterebbe dello stesso ordine degli scarti che si cerca di interpretare, e la pagina lo dice anziché mostrare una precisione che non ha. La diagnosi decisiva non è il livello grezzo ma il margine: a quattro segmenti è negativo, −0,164441, il che significa che il file reale riproduce i propri segmenti peggio di un file senza struttura. Nessuno di questi numeri è un p, e nessuno verifica un’ipotesi.
12 · PROTOCOLLO
Robustezza e alternative
Alternative dichiarate prima del risultato: sostituire l’estrazione con reimmissione con un sottocampionamento senza reimmissione a dimensione fissata, verificando che la conclusione non dipenda dallo schema; sostituire l’indice di Jaccard con l’indice di Rand corretto, che giudica l’intera ripartizione invece di ogni segmento; aumentare il numero di ricampionamenti per stringere le medie; oppure perturbare le variabili con un rumore dichiarato anziché con un’estrazione. Ogni variante va annunciata prima della lettura e riportata anche se ribalta il verdetto.
13 · PROTOCOLLO
Interpretazione del risultato
La soluzione proposta non regge. Uno dei suoi quattro segmenti si dissolve appena si rifà il calcolo su clienti leggermente diversi, e l’insieme si riproduce peggio di un file senza struttura. La ripartizione in tre segmenti torna invece quasi intatta. Ma la lettura si ferma lì: anche la ripartizione in due segmenti è stabile, il che mostra che un buon recupero non designa il numero giusto di gruppi. La stabilità elimina candidati, non ne incorona nessuno.
14 · PROTOCOLLO
Conclusioni consentite
Consentito: rifiutare di impegnare quattro budget sulla soluzione proposta; pubblicare il recupero di ogni segmento, la referenza senza struttura e il margine; dire che uno dei quattro segmenti si dissolve sotto ricampionamento; mantenere tre segmenti come candidato serio a condizione di giustificarlo con altro che non sia la stabilità; ed esigere da un fornitore questi tre numeri con ogni segmentazione consegnata. Consentito anche: dire che il risultato vale per queste variabili e questo periodo, e rifare l’esame se una delle due cambia.
15 · PROTOCOLLO
Conclusioni vietate
Vietato: concludere che tre sia il vero numero di segmenti, mentre anche due supera le soglie; leggere un recupero elevato come prova che una struttura esiste, mentre la referenza senza struttura raggiunge 0,829190 a quattro segmenti; presentare la stabilità come misura di utilità commerciale; concludere che un segmento stabile reagirà meglio a un’offerta; o rifare il calcolo con più soglie pubblicando solo quella comoda. Vietato anche: presentare questo caso sintetico come una misura osservata.
16 · PROTOCOLLO
Possibile decisione marketing
La decisione ragionevole è rinviare la segmentazione a quattro gruppi al suo autore con i tre numeri che la smentiscono, e non finanziare nessuno dei quattro programmi così com’è. Se il team vuole procedere, riparte dalla soluzione a tre segmenti, la giustifica con la propria capacità di animazione e con lo scarto di valore fra gruppi, poi misura l’effetto reale di ogni programma con un esperimento dotato di un gruppo di controllo in ciascun segmento. La stabilità condiziona il diritto di proseguire; non sostituisce la misura.
17 · PROTOCOLLO
Quando usare o evitare il metodo
Usare questo esame ogni volta che una segmentazione è consegnata per fondare dei budget, e prima di ogni messa in produzione. Evitarlo come unico criterio di scelta del numero di segmenti, poiché non ne designa alcuno. Evitarlo anche quando la base è appena stata rinnovata, quando le variabili non descrivono ciò che si vuole distinguere, o quando la domanda reale è l’effetto di un’azione su un segmento, che richiede un esperimento e non un ricampionamento.
18 · PROTOCOLLO
Implementazioni e risultato finale
Il CSV CC0 contiene i 360 clienti sintetici. Python e R sono le implementazioni di riferimento; SPSS riprende lo stesso calcolo in un blocco Python; SAS riproduce esattamente la ricorrenza dichiarata, quindi estrae gli stessi ricampionamenti, ma affida il raggruppamento alla propria procedura e verifica i flag anziché ogni decimale. Il risultato finale raccoglie i dati, il dizionario delle variabili, le variabili e la distanza dichiarate, la ricorrenza di ricampionamento, la referenza senza struttura, le due soglie, le sette tappe numerate, il recupero di ogni segmento per ciascun numero esaminato, i margini, i flag, il verdetto e le versioni software.
Dati sintetici · CC0
msc-p032-stability-panel.csv ↓Protocollo riproducibile
msc-p032-reproducibility-readme.md ↓Riferimento Python · MIT
msc-p032-reference.py ↓Riferimento R · MIT
msc-p032-reference.R ↓Implementazione SPSS · MIT
msc-p032-secondary.sps ↓Implementazione SAS · MIT
msc-p032-secondary.sas ↓19 · PROTOCOLLO
Fonti e livello di prova
Von Luxburg spiega che testare la stabilità richiede di rilanciare l’algoritmo su insiemi di dati leggermente diversi, e che un risultato stabile con un numero di segmenti troppo piccolo non consente alcuna conclusione utile; ricorda inoltre che il punteggio si confronta con quello di una distribuzione di referenza senza struttura, e che l’estrazione con reimmissione è lo schema standard della letteratura del bootstrap. Hennig osserva che la stabilità è più facile da raggiungere con pochi gruppi, e che le variabili vanno scelte per la domanda posta. Ullmann, Hennig e Boulesteix collocano l’analisi di stabilità in un quadro di validazione e ricordano l’uso corrente di trattenere il numero di segmenti più stabile. Ullmann e coautori mostrano infine che il numero di segmenti è un’impostazione di cui vanno esaminate le conseguenze, e che premunirsi dall’eccesso di ottimismo esige regole fissate in anticipo. Riferimenti fondativi: von Luxburg (2010, preprint arXiv; pubblicato in Foundations and Trends in Machine Learning, con revisione paritaria) e Hennig (2015, preprint arXiv; pubblicato in Pattern Recognition Letters, con revisione). Sviluppi recenti: Ullmann, Hennig e Boulesteix (2021, preprint arXiv; pubblicato in WIREs Data Mining and Knowledge Discovery, con revisione) e Ullmann et al. (2022, Advances in Data Analysis and Classification, accesso aperto CC BY, con revisione).
- von Luxburg (2010) Testo integrale verificato, con estratto breve localizzato nella fonte.
- Hennig (2015) Testo integrale verificato, con estratto breve localizzato nella fonte.
- Ullmann, Hennig & Boulesteix (2021) Testo integrale verificato, con estratto breve localizzato nella fonte.
- Ullmann et al. (2022) Testo integrale verificato, con estratto breve localizzato nella fonte.
Connessioni metodologiche

