Programma
Stimare i parametri è un passaggio fondamentale nell'analisi statistica e nel machine learning. Tra i vari metodi disponibili, la stima di massima verosimiglianza (MLE) è uno degli approcci più utilizzati per la sua natura intuitiva, il rigore matematico e l'ampia applicabilità a diversi tipi di dati e modelli.
In questo articolo imparerai cos'è l'MLE, ne esplorerai le basi matematiche con derivazioni ed esempi dettagliati e scoprirai metodi computazionali pratici per implementarla in modo efficace.
Cos'è la stima di massima verosimiglianza (MLE)?
La stima di massima verosimiglianza (MLE) è un importante metodo statistico usato per stimare i parametri di una distribuzione di probabilità massimizzando la funzione di verosimiglianza.

Per capire dove si colloca l'MLE nell'ambito dell'inferenza statistica, è uno dei metodi più comuni che abbiamo per stimare i parametri.
Tuttavia, a questo punto potresti avere un'altra domanda. Cos'è una funzione di verosimiglianza? Approfondiamo.
Cos'è la funzione di verosimiglianza?
Possiamo pensare alla funzione di verosimiglianza come a un modo per misurare quanto bene un particolare insieme di parametri spiega i dati che hai osservato.
In altre parole, risponde alla domanda: «Dati questi valori dei parametri, quanto è probabile osservare questi dati?». Ma qui c'è un equivoco comune tra Probabilità e Verosimiglianza:
- La probabilità riguarda il prevedere i dati a partire dai parametri
- La verosimiglianza misura quanto sono plausibili diversi valori dei parametri, dati i dati osservati. È una funzione dei parametri per dati fissati. Al contrario, la probabilità è una funzione dei dati per parametri fissati.
Riassumendo, la funzione di verosimiglianza prende in input i parametri del tuo modello e restituisce un numero che rappresenta quanto siano plausibili quei parametri, dati i tuoi dati.
Più alto è il valore della funzione di verosimiglianza, meglio quei parametri spiegano i tuoi dati.
Detto ancora più semplicemente, la funzione di verosimiglianza ci aiuta a «valutare» diverse scelte di parametri, così da poter scegliere quelle che rendono i nostri dati osservati più probabili.
Ora che abbiamo capito la differenza tra Probabilità e Verosimiglianza, e a cosa serve l'MLE, passiamo alla matematica di base. 
Come derivare la formula dell'MLE
Prima di passare a esempi specifici, vediamo in generale come si deriva lo stimatore di massima verosimiglianza (MLE). Percorreremo ogni passaggio spiegandone anche la logica.
Passo 1: Definire il modello di probabilità
Supponiamo di avere un dataset: x₁, x₂, ..., xₙ. Riteniamo che questi punti dati siano generati da una distribuzione di probabilità che dipende da un parametro ignoto θ (theta). Il nostro obiettivo principale è stimare θ.
Per esempio, se il nostro dataset riguardasse i lanci di una moneta, θ potrebbe essere la probabilità di testa. Se il dataset fosse continuo, come le altezze degli studenti in classe, θ potrebbe essere la media di una distribuzione normale.
Passo 2: Scrivere la funzione di verosimiglianza
La funzione di verosimiglianza misura quanto è probabile osservare i tuoi dati per diversi valori di θ. È definita come:
![]()
Intuitivamente, ci chiediamo: dato che il parametro θ assume un valore specifico, qual è la probabilità di osservare questo particolare dataset?
Questo dataset è rappresentato come la probabilità congiunta di osservare i singoli punti dati (x₁, x₂, ..., xₙ), assumendo che siano stati generati sotto il modello parametrizzato da θ.
Usando la regola della catena della probabilità, possiamo espandere l'equazione precedente in questa:
![]()
Tuttavia, questa è un'equazione piuttosto complicata! Quindi facciamo l'assunzione che i punti dati siano indipendenti - più precisamente, condizionalmente indipendenti.
Così facendo, possiamo esprimere la probabilità congiunta come il prodotto delle probabilità individuali:

Dal momento che i nostri punti dati osservati sono condizionalmente indipendenti dato θ, sappiamo che la seguente equazione è vera:
![]()
Questo perché abbiamo assunto che, una volta noto il valore di θ, i punti dati x₁ e x₂ siano condizionalmente indipendenti.
Passo 3: Trovare il valore di θ che massimizza la verosimiglianza
Siamo nella situazione in cui dobbiamo trovare i valori di θ che massimizzano la funzione di verosimiglianza (cioè rendono i dati osservati i più probabili):

Ricorda però che la nostra funzione di verosimiglianza contiene un prodotto. Lavorare con i prodotti può essere complicato, soprattutto con molti punti dati. Per semplificare, prendiamo il logaritmo della funzione di verosimiglianza poiché converte il prodotto in una sommatoria.

Questo ci dà la log-verosimiglianza, che ha alcune proprietà utili:
- Il log trasforma i prodotti in somme, molto più semplici da trattare, soprattutto quando si derivano.
- La funzione log è monotona, quindi massimizzare la log-verosimiglianza restituisce lo stesso θ che massimizza la verosimiglianza.

Passo 4: Trovare il valore ottimale
Ora possiamo derivare, tuttavia nel machine learning tendiamo a voler minimizzare le funzioni di perdita. Per fortuna, la soluzione è semplice.
Inserendo un segno meno (cioè moltiplicando per -1) all'inizio della nostra funzione, ora dobbiamo minimizzare la nostra funzione di perdita, che ora si chiama funzione di perdita della log-verosimiglianza negativa.

Ora possiamo usare il calcolo differenziale per ottenere il valore di θ. Prendiamo la derivata della log-verosimiglianza rispetto a θ, la poniamo uguale a zero e risolviamo per θ. Questo perché il minimo di una funzione si trova dove la sua derivata è zero (e la seconda derivata è positiva).
Pertanto, l'equazione finale per l'MLE è:

Esempi svolti di MLE
Poiché abbiamo derivato con successo l'equazione dell'MLE, vediamo alcuni esempi svolti per consolidare la comprensione.
Esempio dei lanci di dado
Iniziamo con un semplice esempio discreto: stimare la probabilità di ottenere un sei con un dado possibilmente truccato.
Supponiamo di lanciare un dado 12 volte e di registrare i risultati. Vogliamo modellare questi dati usando una distribuzione categoriale, ma concentriamoci sulla stima della probabilità θ (theta) di ottenere un sei. In questo esempio:
- Parametro (θ): Il valore che vuoi stimare - probabilità di ottenere un sei
- Dati (x): I risultati osservati - 4 sei su 12 lanci
Ora calcoliamo la funzione di verosimiglianza che, dato che abbiamo ottenuto 4 sei su 12 lanci, risulta:

L'abbiamo ottenuta perché su 12 lanci abbiamo ottenuto il sei 4 volte - quindi abbiamo θ⁴ - e non-sei 8 volte - quindi compare il termine (1 - θ)⁸.
Ricorda, li abbiamo moltiplicati perché abbiamo assunto che siano condizionalmente indipendenti.
Ora prendiamo la log-verosimiglianza negativa come discusso in precedenza, ottenendo questa equazione:

Infine, deriviamo l'equazione rispetto a θ e la poniamo uguale a 0 (poiché vogliamo trovare il punto di minimo):

E tramite questa equazione, possiamo concludere che θ è uguale a ⅓.
Nota: se avessimo ottenuto più soluzioni per θ, allora dovremmo anche calcolare la seconda derivata e vedere quali valori di θ restituiscono un risultato positivo (per confermare di aver trovato un punto di minimo). Ciò può essere confermato tramite una funzione di esempio nell'immagine seguente:

Esempio delle altezze
Vediamo ora un esempio continuo: stimare la media di una distribuzione normale (gaussiana).
Supponiamo di avere un dataset con le altezze di 5 persone: 160, 165, 170, 175, 180 (in cm). Assumiamo anche che siano estratte da una distribuzione normale con media μ sconosciuta (mu) e varianza nota σ² (poniamo σ² = 25 per semplicità).
- Parametro (μ): Il valore che vuoi stimare (l'altezza media)
- Dati (x₁, x₂, ..., x₅): Le altezze osservate
La funzione di verosimiglianza per la distribuzione normale (con varianza nota) è.

È molto complicata, ma prendere il log negativo semplifica le cose. Ora dovresti percepire la potenza dell'uso del log nella nostra equazione. L'equazione che otteniamo è questa:

Otteniamo due termini, ma nota come il secondo si possa trascurare quando procediamo con la derivazione, poiché stiamo derivando rispetto a μ e il secondo termine non contiene μ.

Ci siamo quasi, ma guarda μ tra parentesi.
Poiché è una costante, possiamo semplicemente moltiplicarla per n, dato che sommare μ n volte equivale a n*μ.

La risposta finale ottenuta dovrebbe avere senso in modo intuitivo, poiché è espresso matematicamente come sommare tutti i valori di x e dividere per n (il numero di osservazioni), che è anche la definizione di media!
Inserendo i nostri valori di dati in questa equazione, possiamo ottenere una media pari a 170 cm.
Per renderlo più visivo, ecco un'animazione che mostra come cambia la verosimiglianza al variare di μ:

In entrambi gli esempi, usando l'MLE abbiamo ottenuto il valore del parametro che rende i nostri dati osservati più probabili sotto il modello scelto. Ovviamente, l'MLE può funzionare anche con più parametri, anche se il calcolo sarebbe un po' più lungo!
Codificare l'MLE
Ora che abbiamo compreso la struttura di base dell'MLE, vediamo come codificarla in Python. Implementeremo la soluzione dell'esempio precedente (altezze).
# Importing libraries
import numpy as np # used for handling arrays and mathematical operations.
from scipy.optimize import minimize # function that minimizes another function
# This is our sample data
data = np.array([160, 165, 170, 175, 180])
# This was the variance we had assumed before
sigma_squared = 25
# Negative Log-Likelihood function
def negative_log_likelihood(mu):
n = len(data) # Number of data points
return 0.5 * n * np.log(2 * np.pi * sigma_squared) + \
np.sum((data - mu)**2) / (2 * sigma_squared) # The NLL is for the Univariate Gaussian Distribution
# Optimizing the NLL
result = minimize(negative_log_likelihood, x0=170) # initial guess
# Our final estimated mean
estimated_mu = result.x[0]
print(f"MLE estimate of mu: {estimated_mu}")
Strategie e algoritmi computazionali
Nota che, quando abbiamo codificato l'esempio precedente, abbiamo creato una funzione negative_log_likelihood() che conteneva la logica principale per calcolare l'MLE di una distribuzione gaussiana univariata.
Da un lato, si potrebbe sostenere che in definitiva abbiamo codificato in modo esplicito questa equazione e abbiamo usato scipy.optimize per minimizzarla. Naturalmente, è comunque una soluzione completamente valida, dato che la distribuzione gaussiana ha una soluzione in forma chiusa.
Esploriamo altri metodi per calcolare soluzioni di MLE.
Soluzioni in forma chiusa e quando si applicano
Come discusso sopra, in alcuni casi fortunati possiamo risolvere le equazioni MLE analiticamente, il che significa che possiamo derivare una formula esatta per le stime dei parametri. Queste sono note come soluzioni in forma chiusa, e spesso sono semplici, intuitive e veloci da implementare e calcolare.
Una domanda importante ora è: quando esistono soluzioni in forma chiusa?
- Quando la log-verosimiglianza è derivabile, concava e trattabile algebricamente.
- Quando il modello è sufficientemente semplice; in genere coinvolge uno o due parametri e nessuna variabile nascosta.
|
Distribuzione |
Parametro stimato |
Soluzione MLE in forma chiusa |
|---|---|---|
|
Bernoulli |
p |
\hat{p} = #numero di successi/n |
|
Binomiale |
p |
\hat{p} = x/n |
|
Poisson |
λ |
λ = 1/n*Σx_i |
|
Gaussiana/Normale |
μ |
μ = 1/n*Σx_i |
Tecniche di ottimizzazione numerica
Per modelli più complessi, le soluzioni analitiche non esistono o sono troppo complicate da derivare. In questi casi, usiamo metodi di ottimizzazione numerica - algoritmi iterativi che cercano i parametri che massimizzano la log-verosimiglianza. Spieghiamoli brevemente:
- Metodo di Newton-Raphson: Questo metodo usa sia:
- La prima derivata (gradiente) per determinare la pendenza, e
- la seconda derivata (Hessiano) per valutare la curvatura e regolare di conseguenza l'ampiezza del passo.
- La regola di aggiornamento è la seguente:
- Il suo principale vantaggio è la convergenza rapida vicino all'ottimo.
- Tuttavia richiede di calcolare le seconde derivate, che possono essere instabili o costose in alta dimensione.
- Metodi quasi-Newton (ad es. BFGS):
- Approssimano la matrice hessiana usando solo le derivate di primo ordine
- Usati in librerie popolari come scipy.optimize.minimize in Python (con BFGS come predefinito).
- Più stabili numericamente e più ampiamente applicabili del metodo di Newton-Raphson.
- Algoritmo EM (Expectation-Maximization):
- Tecnica di ottimizzazione specializzata usata quando i dati coinvolgono variabili latenti (nascoste) — valori che non osserviamo direttamente ma che influenzano i dati.
- L'algoritmo prevede due passaggi:
- Fase E (Expectation): Calcolare il valore atteso della log-verosimiglianza usando le stime correnti dei parametri e i dati osservati.
- Fase M (Maximization): Massimizzare questa log-verosimiglianza attesa per aggiornare le stime dei parametri.
Proprietà dell'MLE
Dai nostri esempi e calcoli è chiaro che l'MLE è utile. Più formalmente, l'MLE ha le seguenti proprietà:
- Consistenza: All'aumentare della dimensione del campione, l'MLE converge al vero valore del parametro.
- Normalità asintotica: Per campioni grandi, la distribuzione dell'MLE diventa approssimativamente normale (a campana) attorno al vero valore del parametro. Questa è la base per costruire intervalli di confidenza.
- Efficienza: Tra tutti gli stimatori non distorti, l'MLE raggiunge la varianza minima possibile (raggiunge il limite di Cramér-Rao, almeno asintoticamente).
- Invarianza: Se θ̂ è l'MLE per θ, allora per qualsiasi funzione g, g(θ̂) è l'MLE per g(θ). In altre parole, gli MLE sono preservati sotto trasformazioni.
Tuttavia, ci sono scenari in cui usare l'MLE potrebbe non essere l'opzione migliore:
- Campioni piccoli: l'MLE può essere distorto quando la dimensione del campione è piccola. Per esempio, l'MLE per la varianza (σ̂²) tende a sottostimare la vera varianza (σ²).
- Robustezza: l'MLE è sensibile agli outlier e alla specificazione errata del modello. Alternative come gli M-stimatori possono fornire stime più robuste.
- Alternativa bayesiana: la stima del massimo a posteriori (MAP) combina l'informazione a priori con la verosimiglianza, offrendo una prospettiva bayesiana e talvolta stime più stabili, specialmente con dati limitati.
Applicazioni nella modellazione statistica
In questa sezione esploriamo dove l'MLE viene effettivamente usata nel Machine Learning e nell'AI.
Regressione e classificazione
Uno dei luoghi più importanti in cui compare l'MLE è nella regressione logistica. Qui stimiamo la probabilità che un esito appartenga a una certa classe (come il churn dei clienti) e lo facciamo adattando i parametri per massimizzare la verosimiglianza degli esiti osservati.
Anche nella regressione lineare, se assumiamo errori distribuiti normalmente, allora la soluzione ai minimi quadrati risulta essere anch'essa l'MLE.
Test d'ipotesi e selezione del modello
L'MLE può essere usata anche per confrontare modelli.
Per esempio, il test del rapporto di verosimiglianza (LRT) ci aiuta a verificare se aggiungere variabili extra a un modello ne migliora significativamente le prestazioni. Funziona confrontando le verosimiglianze di due modelli: uno più semplice (nullo) e uno più complesso (alternativo).
Abbiamo anche l'Akaike Information Criterion (AIC), che penalizza la complessità per evitare l'overfitting. Questi strumenti sono ampiamente usati in campi come finanza, medicina e marketing.
Se vuoi esplorare ulteriormente modi per misurare le differenze tra distribuzioni di probabilità oltre alla sola verosimiglianza, dai un'occhiata al mio tutorial: KL-Divergence Explained.
Limitazioni e alternative all'MLE
Sebbene sia potente, ha i suoi limiti. Rivediamo rapidamente dove incontra difficoltà e cosa possiamo usare al suo posto.
Principali limitazioni dell'MLE
- Sensibile a specificazioni errate del modello: se il nostro modello è sbagliato (ad es., usare una normale per dati asimmetrici), l'MLE darà risultati fuorvianti.
- Sensibilità agli outlier: pochi punti anomali possono compromettere completamente le stime.
- Costo computazionale: per modelli grandi, specialmente con molti parametri o vincoli, ottimizzare la verosimiglianza può essere lento o instabile.
- Soluzioni multiple: a volte la superficie di verosimiglianza ha più picchi (massimi locali), rendendo difficile trovare la soluzione migliore.
Alternative alla stima di massima verosimiglianza
Quando l'MLE non funziona bene, ecco alcune opzioni:
- MAP (Maximum a Posteriori): simile all'MLE, ma aggiunge una credenza a priori. Questo può aiutare a stabilizzare le stime quando i dati sono limitati.
- Metodo dei momenti: abbina i momenti campionari (come media o varianza) a quelli teorici. È meno preciso dell'MLE ma molto facile da calcolare.
- Minimi quadrati: in casi come la regressione lineare con errori gaussiani, minimi quadrati e MLE coincidono. Ma i minimi quadrati possono essere utili anche quando l'MLE è troppo complessa.
Metodi diversi funzionano meglio in situazioni diverse. L'MLE potrebbe non essere sempre la risposta, ma spesso è un ottimo punto di partenza.
Conclusione
La stima di massima verosimiglianza è uno dei metodi più naturali e diffusi per la stima dei parametri. L'idea è rendere i dati osservati il più probabili possibile, e quindi può essere usata in molti scenari diversi, come i lanci di moneta, le altezze gaussiane, ecc.
L'MLE si adatta ai modelli e scala con i dati, offrendo sia eleganza matematica che potenza pratica. Sebbene abbia i suoi svantaggi, soprattutto con dataset piccoli o disordinati, rimane uno strumento fondamentale quando si studiano Machine Learning e AI.
Se sei nel tuo percorso di machine learning, dai un'occhiata alla nostra carriera Machine Learning Scientist in Python, che esplora apprendimento supervisionato, non supervisionato e deep learning.
Pronto ad approfondire la stima di massima verosimiglianza con esercizi pratici? Queste risorse possono aiutarti ad applicare le tue conoscenze e fare esperienza pratica:
- Massimizzare la verosimiglianza, Parte 1 (Python): calcola e visualizza le log-verosimiglianze per vedere chiaramente come si determinano le stime dei parametri nella pratica.
- Regressione OLS: le idee chiave spiegate: esplora il legame tra la regressione ai minimi quadrati ordinari e l'MLE quando si assumono errori gaussiani, rinforzando i concetti statistici di base.
- Capire la regressione logistica in Python: scopri come la regressione logistica sfrutta l'MLE per una classificazione efficace e la stima dei parametri.
Domande frequenti sulla stima di massima verosimiglianza
In cosa la verosimiglianza è diversa dalla probabilità?
La probabilità parte da un parametro e si chiede: «Che dati dovrei aspettarmi?» La verosimiglianza parte dai dati e si chiede: «Quale parametro rende questi dati più credibili?»
Perché prendiamo il log della verosimiglianza?
Il log trasforma un lungo prodotto in una somma semplice, rendendo i calcoli più puliti e mantenendo il massimo nello stesso punto.
L'MLE trova sempre il vero parametro?
Con molti dati puliti e indipendenti converge alla verità. Tuttavia, con campioni piccolissimi o disordinati può deviare o restare leggermente distorta.
E se i miei punti dati non sono indipendenti?
L'MLE standard assume indipendenza, quindi per dati di serie temporali o spaziali servirà un altro modello che catturi quei legami.
Come è collegata l'MLE ai minimi quadrati?
Quando gli errori della regressione sono assunti normali, minimizzare gli errori quadrati (minimi quadrati) equivale a massimizzare la verosimiglianza (MLE).


