Distanza di Wasserstein e trasporto ottimo: definizione, calcolo in Python e applicazioni al Data Drift

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Distanza di Wasserstein - Misurare lo Spostamento dei Dati

Perché la distanza tra due distribuzioni conta più della sola differenza tra le medie

Immaginiamo di dover confrontare i tempi di consegna di due servizi di logistica: il primo registra tempi concentrati intorno ai 20 minuti, mentre il secondo presenta valori mediamente vicini ai 24 minuti; in un altro scenario, due server web mostrano lo stesso tempo medio di risposta, pari a 100 millisecondi, ma il primo mantiene le richieste tra 99 e 101 millisecondi, mentre il secondo presenta valori molto più variabili, compresi tra 10 e 190 millisecondi. In entrambi i casi, la media offre soltanto una parte dell’informazione, perché non descrive da sola la posizione, la dispersione e la forma delle distribuzioni osservate.

Per confrontare due distribuzioni occorre quindi scegliere una misura coerente con la domanda statistica che vogliamo affrontare. Le differenze tra le medie possono essere utili quando interessa soprattutto lo spostamento del valore medio, mentre altre misure consentono di esaminare la dispersione o la distanza tra le distribuzioni nel loro complesso. La distanza di Wasserstein si distingue perché tiene conto della geometria dei valori e quantifica il costo minimo necessario per trasformare una distribuzione di probabilità in un’altra.

Questa proprietà rende il trasporto ottimo interessante in numerosi contesti, dal confronto tra campioni empirici al monitoraggio delle caratteristiche in ingresso nei modelli di machine learning, purché il risultato venga interpretato alla luce delle ipotesi del problema e non come un indicatore universale di qualità.

Pubblicità

L’idea intuitiva del trasporto ottimo

Per comprendere il significato della distanza di Wasserstein, immaginiamo di avere un mucchio di sabbia con un determinato profilo e di voler ottenere un secondo profilo distribuendo la stessa quantità complessiva di materiale in una configurazione diversa. Possiamo spostare una parte della sabbia da una posizione a un’altra, ma ogni trasferimento comporta un costo che dipende dalla quantità di materiale movimentata e dalla distanza percorsa; l’obiettivo è trovare un piano di trasporto che rispetti la quantità disponibile e le esigenze della configurazione finale, minimizzando il costo complessivo.

Nel caso delle distribuzioni di probabilità, la sabbia rappresenta la massa probabilistica, mentre le posizioni corrispondono ai possibili valori della variabile. Ogni distribuzione deve avere massa totale pari a uno e il piano di trasporto deve trasferire la massa dalla distribuzione di partenza a quella di destinazione, senza crearne o eliminarne una parte. La distanza di Wasserstein misura il costo minimo ottenibile secondo una specifica regola di costo, che dipende dalla distanza tra i valori e dall’ordine [math]p[/math] scelto.

L’analogia aiuta a comprendere un aspetto importante: non conta soltanto quanta probabilità si trova in ciascun punto, ma anche quanto siano lontani i punti nei quali la massa deve essere spostata. Trasferire probabilità tra due valori vicini può comportare un costo contenuto, mentre spostare la stessa quantità tra valori molto distanti può produrre un costo maggiore.

Definizione matematica della distanza di Wasserstein

Siano [math]P[/math] e [math]Q[/math] due distribuzioni di probabilità definite su uno spazio metrico con distanza [math]d[/math]. La distanza di Wasserstein di ordine [math]p[/math], con [math]p\geq 1[/math], è definita come

[math]\displaystyle \begin{aligned} W_p(P,Q)=\left(\inf_{\pi\in\Pi(P,Q)}\mathbb E_{(X,Y)\sim\pi}\left[d(X,Y)^p\right]\right)^{1/p} \end{aligned}[/math]

La formulazione standard presuppone che le distribuzioni abbiano momento [math]p[/math]-esimo finito e che lo spazio metrico sia adatto alla definizione del problema. Il simbolo [math]d(X,Y)[/math] rappresenta la distanza tra il valore di partenza [math]X[/math] e quello di destinazione [math]Y[/math], mentre [math]\pi[/math] indica un accoppiamento, cioè una distribuzione congiunta delle due variabili casuali le cui distribuzioni marginali siano esattamente [math]P[/math] e [math]Q[/math]. L’insieme [math]\Pi(P,Q)[/math] raccoglie tutti gli accoppiamenti ammissibili e l’operatore [math]\inf[/math] identifica il minimo costo raggiungibile, o il suo estremo inferiore quando non è necessariamente raggiunto.

La distanza di Wasserstein-1, indicata con [math]W_1[/math], utilizza direttamente la distanza [math]d(X,Y)[/math] come costo di trasporto e restituisce quindi una misura espressa nella stessa unità della variabile quando si lavora su una retta con la distanza assoluta. La distanza di Wasserstein-2, indicata con [math]W_2[/math], considera invece il quadrato della distanza, calcola il costo quadratico minimo e ne estrae la radice quadrata; questa scelta attribuisce un peso maggiore agli spostamenti più lunghi rispetto alla funzione di costo lineare impiegata da [math]W_1[/math].

Le due varianti non sono intercambiabili in ogni applicazione, perché rispondono a criteri di costo differenti. La scelta dipende dal fenomeno che si vuole descrivere, dalla sensibilità desiderata agli spostamenti estremi e dalle proprietà matematiche richieste all’analisi.

La formulazione duale e il collegamento con le Wasserstein GAN

Per la distanza [math]W_1[/math], sotto le opportune condizioni matematiche, il teorema di dualità di Kantorovich-Rubinstein consente di esprimere il problema di trasporto attraverso una formulazione alternativa:

[math]\displaystyle \begin{aligned} W_1(P,Q)=\sup_{\|f\|_L\leq 1}\left[\mathbb E_{X\sim P}[f(X)]-\mathbb E_{Y\sim Q}[f(Y)]\right] \end{aligned}[/math]

In questa espressione, [math]f[/math] è una funzione 1-Lipschitz, cioè una funzione per la quale la variazione del valore non supera la distanza tra gli argomenti; il simbolo [math]\sup[/math] indica il supremo della differenza tra i valori attesi calcolati sulle due distribuzioni. La formulazione duale descrive quindi la distanza attraverso una classe di funzioni che misura la differenza tra le distribuzioni, anziché calcolare direttamente tutti i possibili trasferimenti di massa.

Questa proprietà è alla base delle Wasserstein Generative Adversarial Networks, note come WGAN, nelle quali una rete neurale denominata critico viene addestrata a distinguere la distribuzione dei dati reali da quella dei dati generati, approssimando la formulazione duale. Per utilizzare correttamente questa impostazione è necessario imporre o approssimare il vincolo di regolarità richiesto alla funzione, attraverso tecniche di regolarizzazione come il gradient penalty o, nella formulazione originaria, il weight clipping.

Le WGAN possono offrire segnali di ottimizzazione più informativi rispetto alla formulazione originale delle GAN in determinate condizioni, ma non garantiscono automaticamente un addestramento stabile, l’assenza di mode collapse o una corrispondenza diretta tra la loss e la qualità percettiva dei dati generati. Questi risultati dipendono anche dall’architettura, dalla regolarizzazione, dalla procedura di ottimizzazione e dalla capacità del modello di rappresentare la distribuzione desiderata.

Due esempi per interpretare la distanza di Wasserstein

Il primo caso è particolarmente semplice: la distribuzione [math]P[/math] concentra tutta la propria probabilità nel valore [math]2[/math], mentre la distribuzione [math]Q[/math] assegna probabilità uno al valore [math]7[/math]. Poiché tutta la massa deve essere trasferita da un unico punto all’altro, non esistono piani di trasporto alternativi e il costo minimo coincide con la distanza tra i due valori:

Forse potrebbe interessarti anche:  Guida alla Decomposizione di Serie Temporali con STL in Python (Statsmodels)

[math]\displaystyle \begin{aligned} W_1(P,Q)=1\cdot |7-2|=5 \end{aligned}[/math]

Il risultato è pari a cinque unità della variabile analizzata, perciò, se i valori rappresentano tempi di attesa espressi in minuti, la distanza di Wasserstein-1 sarà pari a cinque minuti, mentre per una variabile espressa in euro il risultato sarà espresso in euro.

Consideriamo ora un caso in cui le medie non siano sufficienti a distinguere le distribuzioni. La distribuzione [math]P[/math] assegna probabilità [math]0{,}5[/math] al valore [math]0[/math] e probabilità [math]0{,}5[/math] al valore [math]2[/math], mentre la distribuzione [math]Q[/math] concentra tutta la probabilità nel valore [math]1[/math]. Entrambe hanno media aritmetica pari a uno, ma la prima distribuzione presenta due masse distinte e la seconda concentra tutta la probabilità in un solo punto.

Per trasformare [math]P[/math] in [math]Q[/math], metà della massa deve essere trasferita da [math]0[/math] a [math]1[/math] e l’altra metà da [math]2[/math] a [math]1[/math], con un costo complessivo pari a

[math]\displaystyle \begin{aligned} W_1(P,Q) &=0{,}5|1-0|+0{,}5|1-2| \\ &=0{,}5+0{,}5=1. \end{aligned}[/math]

La differenza tra le medie è nulla, mentre la distanza di Wasserstein-1 è pari a uno, perché le distribuzioni non sono identiche e la loro massa deve essere spostata per ottenere la stessa configurazione probabilistica. L’esempio mostra perché una misura basata esclusivamente sulle medie non possa descrivere tutte le differenze tra distribuzioni, senza implicare che la distanza di Wasserstein sia sempre la misura più adatta per qualsiasi confronto statistico.

Pubblicità

La geometria dei dati e il confronto con altre divergenze

La distanza di Wasserstein è particolarmente utile quando la distanza tra i valori ha un significato concreto, come accade con tempi di risposta, prezzi, misure fisiche o categorie ordinate rappresentate su una scala numerica. Le divergenze di Kullback-Leibler e Jensen-Shannon, invece, confrontano le distribuzioni attraverso le rispettive probabilità e non incorporano automaticamente una metrica che esprima quanto siano distanti le categorie tra loro.

Supponiamo di confrontare due distribuzioni discrete definite sulle categorie ordinate [math]0[/math], [math]1[/math], [math]2[/math] e [math]3[/math], con tutta la massa della prima distribuzione concentrata nella categoria [math]0[/math] e tutta la massa della seconda nella categoria [math]1[/math]. Se spostassimo la seconda massa dalla categoria [math]1[/math] alla categoria [math]3[/math], le distribuzioni continuerebbero a non avere sovrapposizione e alcune misure basate sulle probabilità potrebbero mantenere lo stesso valore, mentre la distanza di Wasserstein cambierebbe perché il costo necessario per trasferire la massa dipende dalla distanza tra le categorie.

Occorre tuttavia prestare attenzione alla rappresentazione dei dati, poiché la distanza numerica tra le categorie è significativa soltanto quando l’ordinamento e la metrica scelta hanno un’interpretazione giustificata. Per categorie nominali, come colori o tipologie di prodotto senza un ordinamento naturale, assegnare arbitrariamente i numeri [math]0[/math], [math]1[/math], [math]2[/math] e [math]3[/math] può introdurre una geometria artificiale; in questi casi il costo di trasporto deve essere definito sulla base del significato delle categorie e non soltanto della loro codifica.

Il calcolo unidimensionale attraverso le distribuzioni cumulative

Nel caso di distribuzioni unidimensionali, la distanza di Wasserstein-1 possiede una rappresentazione particolarmente utile, perché può essere calcolata integrando il valore assoluto della differenza tra le rispettive funzioni di distribuzione cumulativa:

[math]\displaystyle \begin{aligned} W_1(P,Q)=\int_{-\infty}^{+\infty}|F_P(x)-F_Q(x)|\,dx \end{aligned}[/math]

Le funzioni cumulative [math]F_P[/math] e [math]F_Q[/math] indicano, per ogni soglia [math]x[/math], la probabilità che la variabile assuma un valore minore o uguale a quella soglia. L’integrale dell’area compresa tra le due curve misura quindi la distanza di Wasserstein-1 e consente di interpretare il confronto tra distribuzioni anche attraverso una rappresentazione grafica, nella quale una separazione maggiore tra le cumulative contribuisce a un valore più elevato della distanza.

Quando si confrontano due campioni empirici non pesati con la stessa numerosità, [math]W_1[/math] può essere calcolata ordinando entrambi i campioni e facendo la media delle differenze assolute tra gli elementi che occupano la stessa posizione nell’ordinamento. Questa proprietà rende il calcolo particolarmente semplice in una dimensione, mentre per campioni di numerosità differenti o per distribuzioni con pesi diversi è opportuno utilizzare una procedura che consideri esplicitamente le masse probabilistiche.

Calcolare la distanza di Wasserstein con Python e SciPy

La libreria SciPy mette a disposizione la funzione wasserstein_distance nel modulo scipy.stats, che permette di calcolare [math]W_1[/math] tra due distribuzioni unidimensionali rappresentate attraverso campioni empirici oppure valori discreti accompagnati dai rispettivi pesi. Gli esempi seguenti utilizzano dati semplici, così da rendere possibile il controllo manuale dei risultati e il confronto tra la definizione matematica e l’output prodotto dal codice.

Confronto tra due campioni empirici

Supponiamo di voler confrontare i tempi di risposta registrati in due periodi distinti, con il primo campione pari a [math][20,21,22,23][/math] e il secondo pari a [math][22,23,24,25][/math]. I valori del secondo campione risultano traslati di due unità rispetto a quelli del primo e, poiché i campioni hanno la stessa numerosità e sono già ordinati, la distanza Wasserstein-1 coincide con la media delle differenze assolute tra le coppie ordinate.

from scipy.stats import wasserstein_distance

# Campioni empirici dei tempi di risposta, espressi in millisecondi
periodo_a = [20, 21, 22, 23]
periodo_b = [22, 23, 24, 25]

distanza = wasserstein_distance(periodo_a, periodo_b)
print(f"Distanza Wasserstein-1: {distanza:.1f}")
# Output: Distanza Wasserstein-1: 2.0

Il risultato è pari a [math]2{,}0[/math], perché ciascun valore del secondo campione è superiore di due unità rispetto al valore corrispondente del primo campione ordinato. Se i dati rappresentano millisecondi, la distanza è interpretabile come due millisecondi; il valore descrive però lo scostamento tra le distribuzioni empiriche e non dimostra, in generale, che ogni singola richiesta osservata nel secondo periodo sia la prosecuzione della richiesta corrispondente nel primo.

Utilizzare pesi e frequenze per distribuzioni discrete

Quando i dati sono già aggregati in una tabella di frequenza oppure sono descritti da masse di probabilità, è possibile indicare alla funzione i pesi associati ai valori attraverso i parametri u_weights e v_weights. Consideriamo una prima distribuzione che assegna il 75% della massa al valore [math]0[/math] e il 25% al valore [math]4[/math], mentre la seconda assegna il 25% al valore [math]1[/math] e il 75% al valore [math]3[/math].

from scipy.stats import wasserstein_distance

valori_a = [0, 4]
pesi_a = [0.75, 0.25]

valori_b = [1, 3]
pesi_b = [0.25, 0.75]

distanza = wasserstein_distance(
    u_values=valori_a,
    v_values=valori_b,
    u_weights=pesi_a,
    v_weights=pesi_b
)

print(f"Distanza con frequenze: {distanza:.1f}")
# Output: Distanza con frequenze: 2.0

Il risultato pari a [math]2{,}0[/math] deriva dal trasporto di [math]0{,}25[/math] unità di massa dal valore [math]0[/math] al valore [math]1[/math], di [math]0{,}50[/math] unità di massa dal valore [math]0[/math] al valore [math]3[/math] e di [math]0{,}25[/math] unità di massa dal valore [math]4[/math] al valore [math]3[/math]. I pesi devono essere non negativi e avere somma positiva per ciascuna distribuzione, mentre la funzione normalizza i pesi per ottenere masse probabilistiche confrontabili.

Forse potrebbe interessarti anche:  Modello di Leslie in Python: Guida ed Esercizi per l'Analisi delle Popolazioni

La funzione wasserstein_distance è destinata a distribuzioni unidimensionali, perciò non deve essere applicata separatamente a ogni colonna di un dataset multidimensionale se l’obiettivo è misurare la distanza congiunta tra le distribuzioni. Un approccio colonna per colonna può essere utile per il monitoraggio delle singole caratteristiche, ma non conserva la struttura delle dipendenze e delle correlazioni tra variabili.

Pubblicità

Il trasporto ottimo in più dimensioni

Quando le osservazioni sono vettori di caratteristiche, il problema diventa più complesso perché ogni trasferimento deve essere valutato attraverso una metrica definita nello spazio multidimensionale. Nel caso discreto, il piano di trasporto può essere rappresentato da una matrice i cui elementi indicano quanta massa viene trasferita da ciascun punto della distribuzione di partenza a ciascun punto della distribuzione di destinazione, rispettando i vincoli imposti dalle masse marginali.

Il calcolo esatto può richiedere risorse computazionali considerevoli al crescere del numero di osservazioni, poiché il problema deve considerare i trasferimenti ammissibili tra i punti delle due distribuzioni. La complessità effettiva dipende dalla formulazione matematica, dalla struttura dei dati e dall’algoritmo impiegato, quindi non è corretto attribuire al trasporto ottimo una singola complessità computazionale valida in ogni situazione.

Per ridurre il costo di calcolo, in numerose applicazioni si utilizzano metodi di regolarizzazione entropica, tra cui l’algoritmo di Sinkhorn, che permette di calcolare piani di trasporto regolarizzati con procedure iterative spesso più gestibili rispetto alla soluzione esatta del problema originale. La regolarizzazione modifica tuttavia il problema ottimizzato e il risultato ottenuto non deve essere identificato automaticamente con la distanza Wasserstein esatta; occorre considerare il parametro di regolarizzazione e, quando necessario, distinguere il costo regolarizzato dalle correzioni utilizzate per approssimare la distanza originaria.

Applicazioni nell’ingegneria dei dati e nel machine learning

Monitoraggio del Data Drift

Nelle pipeline di machine learning utilizzate in produzione, la distribuzione delle caratteristiche in ingresso può cambiare nel tempo a causa della stagionalità, delle modifiche nei comportamenti degli utenti, dell’evoluzione del mercato o di variazioni nei sistemi che raccolgono i dati. Il confronto tra la distribuzione osservata durante l’addestramento e quella rilevata in produzione permette di individuare alcuni cambiamenti che meritano un approfondimento, soprattutto quando riguardano caratteristiche rilevanti per il modello.

La distanza di Wasserstein può essere utilizzata per misurare lo scostamento tra queste distribuzioni, a condizione che la metrica scelta sia coerente con il significato delle variabili e che il confronto tenga conto della variabilità campionaria. Per una caratteristica unidimensionale, ad esempio, si può calcolare [math]W_1[/math] tra i valori osservati nel periodo di riferimento e quelli registrati nel periodo corrente, monitorando nel tempo l’evoluzione dell’indice e confrontandola con una soglia definita sulla base dei dati storici e delle esigenze operative.

Un aumento della distanza segnala una modifica distributiva, ma non dimostra da solo che le prestazioni predittive siano peggiorate, perché una caratteristica può cambiare distribuzione senza compromettere le previsioni e, viceversa, il modello può perdere accuratezza anche quando le distribuzioni marginali delle caratteristiche rimangono relativamente stabili. Per distinguere questi fenomeni occorre affiancare al monitoraggio del data drift l’analisi della relazione tra caratteristiche e variabile obiettivo, quando le etichette sono disponibili, e la verifica periodica delle metriche di performance.

Generazione di dati e Wasserstein GAN

Nelle Wasserstein GAN, la formulazione duale della distanza [math]W_1[/math] viene utilizzata per costruire un obiettivo di addestramento basato sulla differenza tra la distribuzione dei dati reali e quella dei dati generati. Il critico approssima una funzione 1-Lipschitz e fornisce un segnale che orienta l’aggiornamento del generatore, mentre specifiche tecniche di regolarizzazione contribuiscono a rispettare il vincolo richiesto dalla formulazione matematica.

Rispetto alla formulazione originale delle GAN, questo approccio può rendere più informativo il segnale di ottimizzazione in determinate condizioni e facilitare l’analisi dell’andamento dell’addestramento. Non garantisce tuttavia che la distribuzione generata coincida con quella reale, che tutte le modalità siano rappresentate correttamente o che la loss costituisca una misura completa della qualità percettiva dei risultati, perché tali aspetti dipendono anche dall’architettura, dalla regolarizzazione e dalla procedura di addestramento.

Esercizi svolti

Esercizio 1 — Due distribuzioni concentrate in singoli punti

La distribuzione [math]P[/math] concentra tutta la propria massa nel valore [math]3[/math], mentre la distribuzione [math]Q[/math] concentra tutta la massa nel valore [math]8[/math]. Calcolare la distanza Wasserstein-1.

Soluzione

Poiché entrambe le distribuzioni sono concentrate in un unico punto, tutta la massa deve essere trasferita dal valore [math]3[/math] al valore [math]8[/math], senza che esistano alternative per il piano di trasporto. La distanza coincide quindi con il valore assoluto della differenza tra i due punti:

[math]\displaystyle \begin{aligned} W_1(P,Q)=1\cdot|8-3|=5 \end{aligned}[/math]

Il risultato è pari a cinque unità della variabile osservata, con un’unità di misura che dipende dal contesto applicativo.

Esercizio 2 — Distribuzione bilanciata e massa concentrata

La distribuzione [math]P[/math] assegna probabilità [math]0{,}5[/math] al valore [math]0[/math] e probabilità [math]0{,}5[/math] al valore [math]4[/math], mentre la distribuzione [math]Q[/math] concentra tutta la probabilità nel valore [math]2[/math]. Calcolare [math]W_1(P,Q)[/math].

Soluzione

Per ottenere la distribuzione [math]Q[/math], occorre trasferire metà della massa dal valore [math]0[/math] al valore [math]2[/math] e l’altra metà dal valore [math]4[/math] al valore [math]2[/math], con uno spostamento di due unità in entrambi i casi. Il costo complessivo è pertanto

[math]\displaystyle \begin{aligned} W_1(P,Q) &=0{,}5|2-0|+0{,}5|2-4| \\ &=0{,}5\cdot2+0{,}5\cdot2 \\ &=2. \end{aligned}[/math]

La distanza Wasserstein-1 è pari a [math]2[/math], benché le due distribuzioni abbiano la stessa media aritmetica, uguale a [math]2[/math]. La differenza tra le distribuzioni dipende infatti dalla diversa collocazione della massa probabilistica, che non viene descritta dalla sola media.

Esercizio 3 — Piano di trasporto con masse asimmetriche

La distribuzione [math]P[/math] assegna massa [math]0{,}75[/math] al punto [math]0[/math] e massa [math]0{,}25[/math] al punto [math]4[/math], mentre la distribuzione [math]Q[/math] assegna massa [math]0{,}25[/math] al punto [math]1[/math] e massa [math]0{,}75[/math] al punto [math]3[/math]. Determinare il costo del piano di trasporto ottimo [math]W_1(P,Q)[/math].

Soluzione

Un piano di trasporto ottimo può essere costruito trasferendo [math]0{,}25[/math] unità di massa dal punto [math]0[/math] al punto [math]1[/math], [math]0{,}50[/math] unità dal punto [math]0[/math] al punto [math]3[/math] e [math]0{,}25[/math] unità dal punto [math]4[/math] al punto [math]3[/math]. Questa configurazione rispetta tutti i vincoli, perché dal punto [math]0[/math] partono complessivamente [math]0{,}75[/math] unità di massa, dal punto [math]4[/math] partono [math]0{,}25[/math] unità e le destinazioni ricevono esattamente le quantità richieste dalla distribuzione [math]Q[/math].

Forse potrebbe interessarti anche:  Marketing e Digital Analytics: 6 esercizi progressivi su proporzioni, conversioni, A/B test e funnel

Il costo totale è dato dalla somma dei prodotti tra le masse trasferite e le rispettive distanze:

[math]\displaystyle \begin{aligned} W_1(P,Q) &=0{,}25\cdot1+0{,}50\cdot3+0{,}25\cdot1 \\ &=0{,}25+1{,}50+0{,}25 \\ &=2. \end{aligned}[/math]

Il costo del piano è pari a [math]2[/math], e la configurazione descritta è ottima perché, in una dimensione, il trasporto che rispetta l’ordinamento dei valori minimizza il costo lineare complessivo.

Esercizio 4 — Calcolo su campioni empirici ordinati

Si considerino i campioni empirici non pesati [math]A=(1,2,3)[/math] e [math]B=(2,3,5)[/math], nei quali ciascuna osservazione contribuisce con un peso pari a [math]1/3[/math]. Calcolare la distanza Wasserstein-1.

Soluzione

I due campioni sono già ordinati in senso crescente e hanno la stessa numerosità, quindi è possibile calcolare [math]W_1[/math] come media delle differenze assolute tra gli elementi che occupano la stessa posizione nell’ordinamento. Le differenze sono pari a [math]1[/math] per la prima coppia, [math]1[/math] per la seconda e [math]2[/math] per la terza, da cui si ottiene

[math]\displaystyle \begin{aligned} W_1(A,B) &=\frac{|1-2|+|2-3|+|3-5|}{3} \\ &=\frac{1+1+2}{3} \\ &=\frac{4}{3}\approx1{,}333. \end{aligned}[/math]

Il risultato può essere verificato direttamente con SciPy:

from scipy.stats import wasserstein_distance

risultato = wasserstein_distance([1, 2, 3], [2, 3, 5])
print(risultato)
# Output: 1.3333333333333333

La distanza Wasserstein-1 tra i due campioni è quindi pari a circa [math]1{,}333[/math] unità della variabile analizzata.

Esercizio 5 — Valutazione di uno scostamento operativo

I tempi di risposta di un’infrastruttura web sono rilevati in due periodi distinti: nel primo periodo si osservano [math]A=(100,110,120)[/math] millisecondi, mentre nel secondo si registrano [math]B=(110,120,130)[/math] millisecondi. Calcolare la distanza Wasserstein-1 e interpretarne il significato operativo.

Soluzione

I campioni sono ordinati e hanno la stessa numerosità, perciò il calcolo può essere eseguito attraverso la media delle differenze assolute tra le rispettive osservazioni ordinate. In questo caso ogni valore del secondo campione è superiore di [math]10[/math] millisecondi rispetto al valore nella stessa posizione del primo campione:

[math]\displaystyle \begin{aligned} W_1(A,B) &=\frac{|100-110|+|110-120|+|120-130|}{3} \\ &=\frac{10+10+10}{3} \\ &=10\text{ ms}. \end{aligned}[/math]

La distanza Wasserstein-1 è pari a [math]10[/math] millisecondi e indica che, secondo la metrica adottata, il costo medio di trasporto tra le due distribuzioni empiriche corrisponde a uno spostamento di dieci millisecondi. In un contesto operativo, questo risultato segnala uno spostamento della distribuzione dei tempi di risposta che merita di essere confrontato con gli SLA, con la variabilità storica e con l’impatto percepito dagli utenti; da solo, tuttavia, non stabilisce se il cambiamento sia statisticamente significativo né se rappresenti una violazione dei requisiti di servizio.

Considerazioni conclusive

La distanza di Wasserstein offre un modo rigoroso per confrontare distribuzioni di probabilità tenendo conto della posizione della massa e della geometria dello spazio in cui sono definiti i dati. A differenza di una misura basata esclusivamente sulla differenza tra le medie, consente di rilevare anche cambiamenti nella dispersione e nella forma delle distribuzioni, mentre la sua interpretazione dipende dalla metrica scelta, dall’ordine [math]p[/math] e dalla natura del problema analizzato.

Nel caso unidimensionale, la distanza Wasserstein-1 può essere calcolata in modo diretto attraverso le funzioni di distribuzione cumulativa oppure, per campioni empirici non pesati con la stessa numerosità, mediante la media delle differenze assolute tra i valori ordinati. In Python, la funzione wasserstein_distance di SciPy permette di effettuare questo confronto con poche righe di codice, mentre i problemi multidimensionali possono richiedere algoritmi di trasporto ottimo più articolati e, in alcuni casi, tecniche di regolarizzazione come Sinkhorn.

Nell’analisi dei dati e nel machine learning, la distanza di Wasserstein è particolarmente utile quando si vuole quantificare lo scostamento tra distribuzioni, monitorare il data drift o costruire obiettivi di ottimizzazione per modelli generativi. Il valore ottenuto deve comunque essere interpretato insieme alle caratteristiche del campione, alla metrica utilizzata e agli obiettivi dell’analisi, perché una distanza elevata segnala una differenza distributiva ma non identifica automaticamente la causa del cambiamento né il suo impatto sulle prestazioni di un sistema.

Riferimenti e documentazione

 

📚 Wasserstein, Data Drift e confronto tra distribuzioni

La distanza di Wasserstein è uno strumento utile per misurare quanto cambiano le distribuzioni dei dati, ma non è l’unica metrica da considerare. Questi approfondimenti mettono a confronto indicatori statistici, test di distribuzione e tecniche di monitoraggio, con esempi pratici e codice Python.

Da ricordare: una variazione statistica segnala un possibile cambiamento nei dati, ma non dimostra da sola che le prestazioni del modello siano peggiorate. Per valutare il rischio servono anche verifiche operative e metriche di performance.

 

Pubblicità