Stima della massima verosimiglianza (MLE) in termini di laici


92

Qualcuno potrebbe spiegarmi in dettaglio sulla stima della massima verosimiglianza (MLE) in parole povere? Vorrei conoscere il concetto di base prima di entrare in derivazione o equazione matematica.


9
Non è chiaro quale tipo di risposta cerchi. Sai qual è la probabilità, ad esempio? In caso contrario, è meglio scoprirlo prima.
Glen_b,

4
Inoltre, penso che qualsiasi risposta che non coinvolga la matematica ad un certo livello sarà inadeguata.
gregmacfarlane,

1
Prova questo link . Ha una spiegazione piuttosto chiara su MLE, MAP, EM. Penso che copra l'idea di base di MLE in termini semplici.
Nimish Kulkarni

2
Penso che ciò fornisca una spiegazione molto intuitiva di MLE. Direi che se i concetti non sono ancora chiari, sarebbe l'ideale ripassare alcune statistiche di base.
KartikKannapur,

Risposte:


76

Supponi di avere dei dati. Supponi che sei disposto ad assumere che i dati provengano da una certa distribuzione, forse gaussiana. Esiste un numero infinito di gaussiani diversi da cui potrebbero derivare i dati (che corrispondono alla combinazione del numero infinito di mezzi e varianze che può avere una distribuzione gaussiana). MLE sceglierà il gaussiano (cioè la media e la varianza) che è "più coerente" con i tuoi dati (il significato preciso di coerente è spiegato di seguito).

Quindi, supponiamo di avere un set di dati di . Il gaussiano più coerente da cui potrebbero derivare quei dati ha una media di 3 e una varianza di 16. Potrebbe essere stato campionato da qualche altro gaussiano. Ma uno con una media di 3 e una varianza di 16 è più coerente con i dati nel senso seguente: la probabilità di ottenere i valori particolari osservati è maggiore con questa scelta di media e varianza, rispetto a qualsiasi altra scelta.y={-1,3,7}y

Passare alla regressione: invece che la media è una costante, la media è una funzione lineare dei dati, come specificato dall'equazione di regressione. Quindi, avere dati come insieme a di prima. La media di quel gaussiano è ora il modello di regressione adattato , doveX={2,4,10}y ß X'β^ß = [ - 1,9 , 0,9 ]β^=[-1.9,.9]

Passando ai GLM: sostituisci Gaussian con qualche altra distribuzione (della famiglia esponenziale). La media ora è una funzione lineare dei dati, come specificato dall'equazione di regressione, trasformata dalla funzione di collegamento. Quindi, è , dove per logit (con dati binomiali).g(X'β)g(X)=eX/(1+eX)


28
" MLE sceglierà il gaussiano che è il più probabile, dati i tuoi dati. " Hmmm, non è in realtà: MLE sceglierà il gaussiano in base al quale i tuoi dati sono più probabili? Che è leggermente diverso dalla scelta del "più probabile gaussiano" ... la scelta del più probabile gaussiano richiederebbe una considerazione delle credenze precedenti ?
Jake Westfall,

9
@ACD Non penso che questo sia solo incompleto ma fornisce l'intuizione corretta. Ad esempio, non vedo alcun problema nel non discutere di casi speciali come la funzione di probabilità ha più di un massimo. Ma la differenza tra la distribuzione che più probabilmente produce i dati osservati e la distribuzione più probabile dati i dati è la differenza fondamentale tra l'inferenza frequentista e bayesiana. Quindi, se lo spieghi in questo modo, stai solo creando un ostacolo per il futuro.
Erik,

6
Va bene, ma la spiegazione concettuale più corretta è più difficile da comprendere di quella che hai scritto? Io non la penso così. Penso che la maggior parte della tua risposta vada bene, ma ti esorto, per il bene dei posteri, a modificare leggermente alcune delle frasi per evitare di discutere "il più probabile gaussiano" e invece sottolineare che la cosa che vogliamo essere "probabili" (in termini colloquiali ) in ML non è l'ipotesi ma i dati. Penso che questa possa essere una modifica minore ma importante per la tua bella risposta.
Jake Westfall,

7
@Max: grazie mille per essere finalmente andato avanti e aver risolto questa risposta! Penso che potrebbe avere senso scrivere esplicitamente qui per i futuri lettori: la critica espressa nei commenti sopra citati di Erik e Jake non si applica più, dopo che la risposta è stata modificata.
amoeba,

7
Solo per entrare: apprezzo tutta l'attenzione e i miglioramenti dati alla mia risposta. Ci scusiamo per essere inizialmente titubante nei confronti delle modifiche (che sono buone) - ero riluttante a vedere la semplicità della mia risposta erosa. Questo in gran parte non è successo.
generic_user

67

La stima della massima verosimiglianza (MLE) è una tecnica per trovare la funzione più probabile che spiega i dati osservati. Penso che la matematica sia necessaria, ma non lasciarti spaventare!

Diciamo che abbiamo un insieme di punti nel piano e vogliamo conoscere i parametri della funzione β e σ che molto probabilmente si adattano ai dati (in questo caso conosciamo la funzione perché l'ho specificata per creare questo esempio, ma abbi pazienza).x,yβσ

data   <- data.frame(x = runif(200, 1, 10))
data$y <- 0 + beta*data$x + rnorm(200, 0, sigma)
plot(data$x, data$y)

punti dati

Per fare un MLE, dobbiamo fare delle ipotesi sulla forma della funzione. In un modello lineare, assumiamo che i punti seguano una distribuzione di probabilità normale (gaussiana), con media e varianza σ 2 : y = N ( x β , σ 2 ) . L'equazione di questa funzione di densità di probabilità è: 1xβσ2y=N(xβ,σ2)

12πσ2exp((yixiβ)22σ2)

Quello che vogliamo trovare sono i parametri e σ che massimizzano questa probabilità per tutti i punti ( x i , y i ) . Questa è la funzione "verosimiglianza", Lβσ(xi,yi)L

Per vari motivi, è più semplice utilizzare il registro della funzione di verosimiglianza: log(L)=ni=1-n

L=Πio=1nyio=Πio=1n12πσ2exp(-(yio-Xioβ)22σ2)
ceppo(L)=Σio=1n-n2ceppo(2π)-n2ceppo(σ2)-12σ2(yio-Xioβ)2

Possiamo codificare questo come una funzione in R con .θ=(β,σ)

linear.lik <- function(theta, y, X){
  n      <- nrow(X)
  k      <- ncol(X)
  beta   <- theta[1:k]
  sigma2 <- theta[k+1]^2
  e      <- y - X%*%beta
  logl   <- -.5*n*log(2*pi)-.5*n*log(sigma2) - ( (t(e) %*% e)/ (2*sigma2) )
  return(-logl)
}

Questa funzione, a diversi valori di e σ , crea una superficie.βσ

surface <- list()
k <- 0
for(beta in seq(0, 5, 0.1)){
  for(sigma in seq(0.1, 5, 0.1)){
    k <- k + 1
    logL <- linear.lik(theta = c(0, beta, sigma), y = data$y, X = cbind(1, data$x))
    surface[[k]] <- data.frame(beta = beta, sigma = sigma, logL = -logL)
  }
}
surface <- do.call(rbind, surface)
library(lattice)
wireframe(logL ~ beta*sigma, surface, shade = TRUE)

superficie di probabilità

Come puoi vedere, c'è un punto massimo da qualche parte su questa superficie. Possiamo trovare parametri che specificano questo punto con i comandi di ottimizzazione integrati di R. Ciò si avvicina ragionevolmente alla scoperta dei parametri reali 0,β=2.7,σ=1.3

linear.MLE <- optim(fn=linear.lik, par=c(1,1,1), lower = c(-Inf, -Inf, 1e-8), 
                    upper = c(Inf, Inf, Inf), hessian=TRUE, 
                    y=data$y, X=cbind(1, data$x), method = "L-BFGS-B")
linear.MLE$par


## [1] -0.1303868  2.7286616  1.3446534

I minimi quadrati ordinari sono la massima probabilità per un modello lineare, quindi ha senso che lmci darebbe le stesse risposte. (Si noti che viene utilizzato per determinare gli errori standard).σ2

summary(lm(y ~ x, data))

## 
## Call:
## lm(formula = y ~ x, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.3616 -0.9898  0.1345  0.9967  3.8364 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.13038    0.21298  -0.612    0.541    
## x            2.72866    0.03621  75.363   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.351 on 198 degrees of freedom
## Multiple R-squared:  0.9663, Adjusted R-squared:  0.9661 
## F-statistic:  5680 on 1 and 198 DF,  p-value: < 2.2e-16

Grazie @gregmacfarlane per questa bella e utile risposta. Un punto minore: non dovremmo prima definire beta e sigma2 nel codice della riga R data$y <- 0 + beta*data$x + rnorm(200, 0, sigma2) ? Ed è 0 +utile?
emeryville,

1
betae sigma2dovrebbe essere definito per l'esecuzione di questo codice. Li ho nascosti in modo da poter "scoprire" i parametri, che sono quasi sempre sconosciuti quando si esegue MLE.
gregmacfarlane,

Hai anche ragione sul fatto che 0 +nulla in realtà non fa nulla; L'ho semplicemente incluso perché i modelli di regressione di solito hanno un'intercettazione. E se il MLE stesse cercando di ottimizzare beta, sigma2 e alpha , non potrei mostrare la trama piuttosto superficiale (a meno che tu non conosca un pacchetto R che verrà tracciato in quattro dimensioni!)
gregmacfarlane,

2
@gregmacfarlane ottima risposta e mi ha aiutato molto. Ma ci sono alcuni errori sulla varianza rispetto alla deviazione standard. Vedi qui stats.stackexchange.com/questions/267534/…
Haitao Du

2
@ hxd1011 Grazie per aver segnalato questo errore; Ho corretto l'errore.
gregmacfarlane,

29

La stima della massima verosimiglianza (ML) di un parametro è il valore di quel parametro in base al quale i dati osservati effettivi sono più probabili, rispetto a qualsiasi altro possibile valore del parametro.

L'idea è che ci sono un numero qualsiasi di valori di parametro "veri" che potrebbero aver portato ai dati effettivamente osservati con una probabilità diversa da zero (anche se forse piccola). Ma la stima ML fornisce il valore del parametro che avrebbe portato ai dati osservati con la massima probabilità.

Questo non deve essere confuso con il valore del parametro che molto probabilmente ha prodotto i tuoi dati!

OH

Devi ricordare che "verosimiglianza" è un termine tecnico. La probabilità di H, Pr (O | H) e la probabilità posteriore di H, Pr (H | O), sono quantità diverse e possono avere valori diversi. La probabilità di H è la probabilità che H conferisca a O, non la probabilità che O conferisca a H. Supponi di sentire un rumore proveniente dalla soffitta di casa tua. Consideri l'ipotesi che ci siano gremlin lassù da bowling. La probabilità di questa ipotesi è molto alta, dal momento che se ci sono gremlin che si lanciano in soffitta, probabilmente ci sarà rumore. Ma sicuramente non pensi che il rumore renda molto probabile che ci siano gremlins lassù a bowling. In questo esempio, Pr (O | H) è alto e Pr (H | O) è basso. L'ipotesi del gremlin ha un'alta probabilità (in senso tecnico) ma una bassa probabilità.

In termini dell'esempio sopra, ML favorirebbe l'ipotesi del gremlin. In questo particolare esempio comico, questa è chiaramente una cattiva scelta. Ma in molti altri casi più realistici, la stima ML potrebbe essere molto ragionevole.

Riferimento

Sober, E. (2008). Evidenza ed evoluzione: la logica dietro la scienza. Cambridge University Press.


8
Questa mi sembra la prima risposta che rende questo punto cruciale chiaro e semplice. Nota, tuttavia, che "avrebbe portato ai tuoi dati osservati con la massima probabilità " se i tuoi dati fossero discreti (come i dati binomiali), ma "avrebbe portato ai tuoi dati osservati con la più alta densità articolare " se i tuoi dati fossero continui (come i dati normali).
gung - Ripristina Monica

6
Grazie @gung. Sono consapevole del tecnicismo che lei menziona, ma ero leggermente preoccupato che qualsiasi discussione sulle "densità articolari" sarebbe stata un po 'allungata per i "termini del laico" ...
Jake Westfall,

Sono d'accordo con te e ho pensato che tu lo sapessi. Ho pensato di menzionarlo da quando è venuto su questo thread altrove.
gung - Ripristina Monica

17

Il MLE è il valore del parametro di interesse che massimizza la probabilità di osservare i dati osservati. In altre parole, è il valore del parametro che rende più probabile che i dati osservati siano stati osservati.


2
E se la funzione di verosimiglianza così massimizzata fosse, al contrario, la funzione di densità di probabilità da una variabile casuale continua? Il MLE massimizza ancora una probabilità? E se no, cosa fa?
Alecos Papadopoulos,

@AlecosPapadopoulos È mia comprensione che la funzione di probabilità può essere considerata una funzione di probabilità del parametro e MLE è il valore del parametro che massimizza quella funzione di probabilità. Tuttavia la tua domanda suggerisce che ci sono più sfumature?
Heisenberg,

4
@Heisenberg La risposta ha trattato la funzione di verosimiglianza come la funzione di probabilità congiunta del campione (per la quale ML fornisce i parametri massimi e quindi massimizza la probabilità per qualsiasi campione). E questo è corretto quando i camper sono discreti, ma non quando sono continui, poiché la densità articolare, per costruzione, non è una probabilità comune. Non lo definirei una "sfumatura", è una differenza fondamentale tra il mondo discreto e quello continuo.
Alecos Papadopoulos,

@AlecosPapadopoulos vedo. Quindi si mette in discussione l'uso della parola "funzione di probabilità" vs "funzione di densità". È corretto.
Heisenberg,

εεε

10

Si è possibile dire qualcosa senza l'utilizzo di (molto) la matematica, ma per applicazioni statistiche reali di massima verosimiglianza è necessario matematica.

La stima della massima verosimiglianza è correlata a ciò che i filosofi chiamano inferenza alla migliore spiegazione , o rapimento . Lo usiamo sempre! Nota, non dico che la massima verosimiglianza sia il rapimento, quel termine è molto più ampio e alcuni casi di stima bayesiana (con un precedente empirico) possono probabilmente essere visti anche come rapimento. Alcuni esempi presi da http://plato.stanford.edu/entries/abduction/#Aca Vedi anche https://en.wikipedia.org/wiki/Abductive_reasoning (Nell'informatica il "rapimento" è usato anche nel contesto di non -modelli probabilistici.)

  1. "Ti capita di sapere che Tim e Harry hanno recentemente avuto una terribile discussione che ha posto fine alla loro amicizia. Ora qualcuno ti dice che ha appena visto Tim e Harry fare jogging insieme. La migliore spiegazione per questo a cui puoi pensare è che hanno inventato. Concludete che sono di nuovo amici ". Questo perché quella conclusione rende l'osservazione che si tenta di spiegare più probabile che sotto l'alternativa, che non stanno ancora parlando.

Un altro esempio: lavori in una scuola materna e un giorno un bambino inizia a camminare in modo strano, dicendo che si è rotto le gambe. Esamini e trovi nulla di sbagliato. Quindi puoi ragionevolmente dedurre che uno dei suoi genitori si è rotto le gambe, poiché i bambini spesso agiscono come descritto, quindi questa è una "inferenza alla migliore spiegazione" e un'istanza di (informale) massima probabilità. (e, naturalmente, tale spiegazione potrebbe essere errata, è probabile, non sicuro. Il rapimento / la massima verosimiglianza non possono dare conclusioni certe).

Il rapimento riguarda la ricerca di modelli nei dati e quindi la ricerca di possibili teorie che possano eventualmente rendere probabili tali modelli. Quindi scegliere la possibile spiegazione, che rende il modello osservato al massimo probabile, è solo la massima probabilità!

Il primo esempio di rapimento nella scienza è l'evoluzione . Non esiste un'unica osservazione che implichi l'evoluzione, ma l'evoluzione rende i modelli osservati più probabili di altre spiegazioni.

Un altro esempio tipico è la diagnosi medica? Quali possibili condizioni mediche rendono più probabile il modello osservato di sintomi? Ancora una volta, questa è anche la massima probabilità! (O, in questo caso, forse la stima bayesiana si adatta meglio, dobbiamo tenere conto della probabilità precedente delle varie possibili spiegazioni). Ma questo è un tecnicismo, in questo caso possiamo avere priori empirici che possono essere visti come una parte naturale del modello statistico, e quello che chiamiamo modello , ciò che chiamiamo precedente è una convenzione statistica arbitraria (*).

Per tornare alla domanda originale sulla spiegazione del termine laico di MLE, ecco un semplice esempio: quando le mie figlie avevano 6 e 7 anni, ho chiesto loro questo. Abbiamo creato due urne (due scatole da scarpe), in una abbiamo messo 2 palline nere, 8 rosse, nell'altra i numeri dove sono stati scambiati. Quindi abbiamo mescolato le urne e disegniamo un'urna a caso. Quindi abbiamo preso a caso una palla da quell'urna. Era rosso.

Poi ho chiesto: da quale urna pensi che sia stata estratta la palla rossa? Dopo circa un secondo pensando, hanno risposto (nel coro): da quello con 8 palline rosse!

Poi ho chiesto: perché la pensi così? E di nuovo, dopo circa un secondo (di nuovo pollici): "Perché allora è più facile disegnare una palla rossa!". Cioè, più facile = più probabile . Quella era la massima probabilità (è un esercizio facile scrivere il modello di probabilità), ed è "inferenza alla migliore spiegazione", cioè il rapimento.

(*) Perché dico "arbitrario?" Per continuare il problema di diagnosi medica, supponiamo che il paziente sia un uomo con qualche difficoltà a diagnosticare una condizione che il medico non ha visto prima. Quindi, diciamo, nel discorso con il paziente emerge che ha visitato qualche parte dell'Africa tropicale poco tempo fa. Questo è un nuovo dato, ma il suo effetto nei modelli tipici (usati in questo tipo di situazione, sia formale che informale) sarà quello di cambiare il precedente delle difficili spiegazioni possibili, poiché le malattie tropicali come la malaria ora aumenteranno probabilità precedente. Quindi i nuovi dati entrano nell'analisi in precedenza .


googling per "ragionamento abduttivo e stima della massima verosimiglianza" dà molti successi rilevanti.
kjetil b halvorsen,

1
(1/2) Ciao kjetil, questa è una risposta fantastica, e lo apprezzo. (Anche il frastuono delle tue figlie è carino. :)) In ogni caso, sto lottando per costruire la mia solida conoscenza di "La probabilità", e ho formalizzato la mia domanda qui .
Creatron,

1
L(θ|X)=P(X|θ)

9

θθ

θθθ

(Se i dati sono continui, leggere "densità di probabilità" per "probabilità". Quindi, se vengono misurati in pollici, la densità verrebbe misurata in probabilità per pollice.)


3
y

@ DimitriyV.Masterov In effetti, non lo sono. Anche quando puoi, se ricordo bene, la probabilità è stata definita (da Fisher, penso) "fino a una costante moltiplicativa".
Glen_b,

@Dimitriy, buon punto; L'ho aggiunto.
Scortchi

1
@Glen, per la maggior parte degli scopi - test del rapporto di verosimiglianza, stima della massima verosimiglianza - è possibile eliminare la costante. Non è possibile confrontare AIC tra modelli non nidificati. Non pensare comunque che debba entrare nella definizione di un laico.
Scortchi

1
Finché si rilascia la stessa costante, è ancora possibile.
Glen_b,

6

Facciamo una partita: sono in una stanza buia, nessuno può vedere cosa faccio ma sai che (a) lancio un dado e conto il numero di "1" come "successo" o (b) lancio una moneta e conto il numero di teste come "successo".

Come ho detto, non puoi vedere quale delle due cose faccio, ma ti do solo un singolo pezzo di informazione: ti dico che ho lanciato un dado 100 volte o che ho lanciato la moneta 100 volte e che ho avuto 17 successi .

La domanda è indovinare se ho lanciato un dado o lanciato una moneta.

Probabilmente risponderai che ho lanciato un dado.

Se lo fai, allora probabilmente hai "fatto un'ipotesi massimizzando la probabilità" perché se osservo 17 successi su 100 esperimenti, è più probabile che io abbia lanciato un dado piuttosto che ho lanciato una moneta.

Quindi quello che hai fatto è prendere quel valore della "probabilità di successo" (1/6 per un dado e 1/2 per una moneta) che rende più probabile l'osservazione di 17 successi su 100. "Più probabile" significa che il la possibilità di avere 17 volte un "1" su 100 tiri di dado è maggiore della possibilità di avere 17 teste su 100 lanci di monete.


Come ho detto nella mia risposta, "rapimento" o "inferenza alla migliore spiegazione".
kjetil b halvorsen,

@kjetil b halvorsen: non capisco cosa vuoi dire?

Cerco solo di confrontare con la mia risposta sopra. Questi termini sono usati in altri campi (filosofia, CS) per più o meno la stessa idea: scegli la spiegazione che nel complesso si adatta meglio ai fatti, con un modello probabilistico che porta alla massima probabilità.
kjetil b halvorsen,

@kjetil b halvorsen: posso quindi concludere che il mio esempio è ok? Per dire lo stesso in parole povere :-)?

1

XμμμLμfμ

L(μ|X)=Πio=1Nf(Xio,μ)

o verosimiglianza:

lnL(μ|X)=Σio=1Nlnf(Xio,μ)

μf

μ

Esempio

Innanzitutto, generiamo alcuni dati falsi:

set.seed(123)
x <- rnorm(1000, 1.78)

μX

llik <- function(mu) sum(log(dnorm(x, mu)))

μ

ll <- vapply(seq(-6, 6, by=0.001), llik, numeric(1))

plot(seq(-6, 6, by=0.001), ll, type="l", ylab="Log-Likelihood", xlab=expression(mu))
abline(v=mean(x), col="red")

Lo stesso potrebbe essere ottenuto più velocemente con un algoritmo di ottimizzazione che cerca il valore massimo di una funzione in un modo più intelligente della forza bruta . Esistono molti esempi simili, ad esempio uno dei più basilari in R è optimize:

optimize(llik, interval=c(-6, 6), maximum=TRUE)$maximum

inserisci qui la descrizione dell'immagine

μ1.78μoptimize

Questo esempio mostra come è possibile utilizzare più approcci per trovare il valore che massimizza la funzione di probabilità per trovare il valore "migliore" del parametro.


0

{y1,y2,...,yn}θ={μ,σ2}{y1,y2,...,yn}θ={μ,σ2}p(y1,y2,...,yn|θ)

L(θ|y1,y2,...,yn)θL(θ)θ{μ,σ2}L{μ,σ2}L(θ)


0

Supponi di avere una moneta. Lanciarlo può dare testa o croce. Ma non sai se è una moneta giusta. Quindi lo lanci 1000 volte. Si presenta come teste 1000 volte e mai come code.

0.52000

Il MLE cerca di aiutarti a trovare la migliore spiegazione in una situazione come questa - quando hai qualche risultato e vuoi capire quale sia il valore del parametro che è più probabile che dia quel risultato. Qui, abbiamo 2000 teste su 2000 tiri - quindi useremmo un MLE per scoprire quale probabilità di ottenere una testa meglio spiega come ottenere 2000 teste su 2000 tiri.

È lo stimatore della massima verosimiglianza . Stima il parametro (qui, è una funzione di distribuzione di probabilità) che molto probabilmente ha prodotto il risultato che stai guardando.

1


-1

Il modo in cui capisco MLE è questo: puoi solo vedere ciò che la natura vuole che tu veda. Le cose che vedi sono fatti. Questi fatti hanno un processo sottostante che l'ha generato. Questi processi sono nascosti, sconosciuti, devono essere scoperti. Quindi la domanda è: dato il fatto osservato, qual è la probabilità che il processo P1 l'abbia generato? Qual è la probabilità che il processo P2 l'abbia generato? E così via ... Una di queste probabilità sarà massima di tutte. MLE è una funzione che estrae quella massima probabilità.

Pensa a un lancio di monete; la moneta è di parte. Nessuno conosce il grado di pregiudizio. Potrebbe variare da o (tutte le code) a 1 (tutte le teste). Una moneta giusta sarà 0,5 (testa / coda ugualmente probabili). Quando esegui 10 lanci e osservi 7 teste, allora l'MLE è quel grado di pregiudizio che ha maggiori probabilità di produrre il fatto osservato di 7 teste in 10 tiri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.