Blog
Ricerca Applicata

Wasserstein barycenter per l'analisi congiunta di mercati energetici: teoria e applicazioni

Il baricentro di Wasserstein è la media ottimale tra distribuzioni di prezzo. Applicazioni al clustering e all'analisi della convergenza nei mercati elettrici europei.

9 minTeam Sydus24 febbraio 2026

Il mercato elettrico europeo non è un unico mercato omogeneo, ma un insieme di mercati nazionali e zonali interconnessi attraverso capacità di interconnessione limitate. Il PUN italiano, l'EPEX tedesco, il MIBEL spagnolo-portoghese, il Nord Pool scandinavo hanno strutture di prezzo diverse, livelli di volatilità diversi e reagiscono in modo diverso agli stessi shock di sistema.

Confrontare questi mercati, capire quanto siano simili, quanto stiano convergendo nel tempo, come si trasmettano i segnali di prezzo tra zone, è un problema con applicazioni pratiche rilevanti: costruzione di portafogli energetici diversificati, arbitraggio cross-border, gestione del rischio di prezzo in aziende con consumi in più paesi europei.

Il problema è che il confronto tra distribuzioni di prezzo con strumenti statistici classici, differenza delle medie, test del chi-quadro, correlazione di Pearson, perde molte informazioni strutturali. La teoria dell'Optimal Transport e in particolare la distanza di Wasserstein offrono una soluzione più ricca.

La distanza di Wasserstein

Immagina di avere due distribuzioni di probabilità, la distribuzione dei prezzi energetici italiani e quella tedesca in un dato mese. La distanza di Wasserstein misura il costo minimo per "trasportare" la massa di probabilità da una distribuzione all'altra, dove il costo è proporzionale alla distanza nello spazio dei prezzi.

Formalmente, la distanza di Wasserstein-p tra due distribuzioni μ e ν è:

W_p(μ, ν) = [ inf_{γ ∈ Γ(μ,ν)} ∫ |x-y|^p dγ(x,y) ]^(1/p)

dove Γ(μ,ν) è l'insieme di tutti i "piani di trasporto" (distribuzioni congiunte con marginali μ e ν).

Per distribuzioni 1D, il calcolo è semplice e intuitivo: è la differenza L^p tra le funzioni di distribuzione cumulativa inverse (quantile functions). Per p=1 (Wasserstein-1, o Earth Mover's Distance), la distanza corrisponde letteralmente all'area tra le due curve CDF.

Il vantaggio rispetto alla KL divergence o alla distanza di Hellinger è che la Wasserstein tiene conto della geometria dello spazio. Se i prezzi italiani sono sistematicamente 10€/MWh sopra quelli tedeschi, la Wasserstein riflette questa traslazione; la KL divergence invece tratta le due distribuzioni come incomparabili se non si sovrappongono.

Il baricentro di Wasserstein

Dati K mercati con distribuzioni di prezzo μ₁, ..., μ_K, il baricentro di Wasserstein con pesi w₁, ..., w_K è la distribuzione ν* che minimizza la somma pesata delle distanze di Wasserstein:

ν* = argmin_ν Σ w_k · W_2²(ν, μ_k)

Intuitivamente, è la "media" delle distribuzioni nello spazio di Wasserstein. A differenza della media aritmetica delle distribuzioni (che produce miscele non rappresentative), il baricentro di Wasserstein conserva la forma delle distribuzioni originali interpolando le loro caratteristiche geometriche.

Se μ₁ è una distribuzione normale centrata a 50€ e μ₂ è una normale centrata a 70€, il baricentro di Wasserstein con pesi uguali è una normale centrata a 60€, esattamente come ci si aspetterebbe. Ma se le distribuzioni hanno forme diverse, il baricentro di Wasserstein interpola anche le forme, non solo i centri.

Applicazioni ai mercati energetici

1. Clustering di mercati simili

La distanza di Wasserstein tra le distribuzioni di prezzo mensili di diversi mercati europei può essere usata come metrica di distanza per il clustering. Due mercati con distribuzione simile sono "vicini" nello spazio di Wasserstein. Il clustering nel tempo rivela come cambino le relazioni tra mercati in risposta a eventi sistemici (crisi del gas russo del 2022, espansione delle rinnovabili).

Nel nostro studio su 6 mercati europei (2019-2024), il clustering basato su distanza di Wasserstein ha identificato tre gruppi stabili nel periodo pre-crisi (continentale, nordico, iberico) che si sono parzialmente mescolati durante il 2022-2023, segnalando una riduzione temporanea dell'efficienza di mercato.

2. Analisi della convergenza post-accoppiamento

Il market coupling europeo (PCR, MRC) ha l'obiettivo di convergere i prezzi nelle zone interconnesse. Misurare la convergenza con la distanza di Wasserstein invece che con la semplice correlazione o differenza di medie è più informativo: cattura sia la convergenza del livello medio sia l'allineamento della forma della distribuzione.

Il baricentro di Wasserstein dei mercati accoppiati può essere usato come distribuzione di riferimento per misurare quanto ciascun mercato si sia avvicinato all'equilibrio di accoppiamento nel tempo.

3. Costruzione di portafogli energetici diversificati

Un'azienda con consumi energetici in più paesi europei può usare la distanza di Wasserstein per costruire un portafoglio di contratti che minimizza la correlazione di rischio tra mercati. Paesi con alta distanza di Wasserstein (distribuzioni molto diverse) offrono maggiore diversificazione del rischio di prezzo.

Implementazione con POT

import numpy as np
import ot  # pip install POT

# Distribuzioni di prezzo (campioni)
prices_it = np.array([...])  # prezzi italiani
prices_de = np.array([...])  # prezzi tedeschi

# Distanza Wasserstein-1 (1D)
W1 = ot.wasserstein_1d(prices_it, prices_de, p=1)

# Baricentro di Wasserstein (distribuzioni discrete su griglia)
# Normalizza come istogrammi su griglia comune
grid = np.linspace(0, 200, 200)
hist_it, _ = np.histogram(prices_it, bins=grid, density=True)
hist_de, _ = np.histogram(prices_de, bins=grid, density=True)

histograms = np.column_stack([hist_it, hist_de])
weights = np.array([0.5, 0.5])

# Matrice costi (distanza quadratica tra bin)
M = ot.utils.dist(grid[:-1].reshape(-1, 1))

# Baricentro
barycenter = ot.bregman.barycenter(
    histograms, M, reg=0.01, weights=weights
)

La regolarizzazione di Sinkhorn (parametro reg) è necessaria per rendere il problema computazionalmente trattabile; valori troppo bassi aumentano la precisione ma possono causare instabilità numerica.

Limiti e direzioni future

Il principale limite operativo dell'Optimal Transport rimane la scalabilità: per distribuzioni multidimensionali (es. distribuzione congiunta di prezzo e volume), il calcolo esatto è proibitivo. Le approssimazioni come il Sliced Wasserstein, che proietta le distribuzioni su direzioni casuali 1D e media le distanze 1D risultanti, riducono drasticamente il costo computazionale a scapito di qualche precisione.

La ricerca attiva include l'integrazione di distanze di Wasserstein in modelli di deep learning (Wasserstein GAN, distributional reinforcement learning) e lo sviluppo di algoritmi online per il calcolo incrementale della distanza su stream di dati in tempo reale, particolarmente rilevante per applicazioni di trading intraday.

Per chi lavora su problemi di analisi e confronto di distribuzioni finanziarie o energetiche, la distanza di Wasserstein è oggi uno strumento maturo, con librerie stabili e una letteratura applicata in rapida crescita.

Tag

Wassersteinoptimal-transportmercati-energeticiricerca-applicata

Domande frequenti

Hai ancora dubbi?

Qual è la differenza tra Wasserstein e KL divergence?

La KL divergence (e più in generale le f-divergenze) misura quanto una distribuzione è 'sorprendente' rispetto a un'altra, ma non tiene conto della geometria dello spazio. Se due distribuzioni non si sovrappongono, come spesso accade con distribuzioni di prezzo in regimi diversi, la KL divergence è infinita, anche se le distribuzioni sono 'vicine' nella realtà. La distanza di Wasserstein invece misura il costo minimo di trasporto della massa da una distribuzione all'altra, tenendo conto delle distanze nello spazio. Per distribuzioni di prezzi su scala diversa o con supporto disgiunto, la Wasserstein produce risultati molto più sensati.

Il baricentro di Wasserstein è computazionalmente costoso?

Sì, il calcolo esatto del baricentro di Wasserstein per distribuzioni continue è computazionalmente intensivo (problema di ottimizzazione convessa su spazio infinito-dimensionale). In pratica si lavora con distribuzioni discrete (istogrammi) e si usa il baricentro di Wasserstein libero o vincolato su griglia, che ha complessità O(n² log n) per n campioni. Per distribuzioni 1D il calcolo è esatto e molto efficiente. Per distribuzioni multidimensionali si ricorre a approssimazioni come il Sliced Wasserstein barycenter, molto più veloce.

Ci sono implementazioni pronte in Python?

Sì. La libreria POT (Python Optimal Transport), disponibile su PyPI come pot, è la più completa. Implementa la distanza di Wasserstein 1D e 2D, il baricentro di Wasserstein (libero e su griglia), lo Sliced Wasserstein, e varianti regolarizzate (Sinkhorn). È compatibile con NumPy e PyTorch e supporta il calcolo su GPU. Un'alternativa per il Wasserstein 1D è scipy.stats.wasserstein_distance, molto semplice ma limitata a distribuzioni scalari.