Rozbieżność Kullbacka – Leiblera między dwoma rozkładami gamma


15

Wybór sparametryzowania rozkładu gamma Γ(b,c) według pdf g(x;b,c)=1Γ(c)xc1bcex/b Rozbieżność Kullbacka-Leiblera międzyΓ(bq,cq)iΓ(bp,cp)jest podana przez [1] as

KLGa(bq,cq;bp,cp)=(cq1)Ψ(cq)logbqcqlogΓ(cq)+logΓ(cp)+cplogbp(cp1)(Ψ(cq)+logbq)+bqcqbp

Zgaduję, że Ψ(x):=Γ(x)/Γ(x) jest funkcją digamma .

Jest to podawane bez pochodnej. Nie mogę znaleźć żadnego odniesienia, które by to wywodziło. Jakaś pomoc? Wystarczyłoby dobre odniesienie. Trudną częścią jest integracja logx przeciwko pdf gamma.

[1] WD Penny, KL-Dywergencje gęstości normalnej, gamma, Dirichleta i Wishart , dostępne na stronie: www.fil.ion.ucl.ac.uk/~wpenny/publications/densities.ps


2
Biorąc pochodną pdf względem wprowadza czynnik l O g ( x ) można szuka: Dlatego digamma pojawi. clog(x)
whuber

Jeśli natkniesz się na Pierre'a Baldiego i Laurenta Ittiego (2010) „O bitach i wadach: Bayesowska teoria zaskoczenia z aplikacjami na baczność”. Neural Networks 23: 649-666, zobaczysz, że równanie 73 daje rozbieżność KL między dwoma plikami pdf gamma. Uważaj jednak, wygląda na to, że formuła jest źle wydrukowana.
Mr Clarinet

Szukam rozwiązania tego samego problemu i znaleźć ten jeden jest przydatna.
Yi Yang,

Odpowiedzi:


15

Rozbieżność KL jest różnicą całek formy

$$ \ eqalign {I (a, b, c, d) & = \ int_0 ^ {\ infty} \ log \ left (\ frac {e ^ {- x / a} x ^ {b-1}} {a ^ b \ Gamma (b)} \ right) \ frac {e ^ {- x / c} x ^ {d-1}} {c ^ d \ Gamma (d)} dx \

& = - \ frac {1} {a} \ int_0 ^ \ infty \ frac {x ^ de ^ {- x / c}} {c ^ d \ Gamma (d)} \, dx - \ log (a ^ b \ Gamma (b)) \ ​​int_0 ^ \ infty \ frac {e ^ {- x / c} x ^ {d-1}} {c ^ d \ Gamma (d)} \, dx \ & \ quad + (b- 1) \ int_0 ^ \ infty \ log (x) \ frac {e ^ {- x / c} x ^ {d-1}} {c ^ d \ Gamma (d)} \, dx \

& = - \ frac {cd} {a} - \ log (a ^ b \ Gamma (b)) + (b-1) \ int_0 ^ \ infty \ log (x) \ frac {e ^ {- x / c } x ^ {d-1}} {c ^ d \ Gamma (d)} \, dx} $$

Musimy tylko poradzić sobie z całką prawej ręki, którą uzyskuje się przez obserwację

dΓ(d)=d0ex/cxd1cddx=d0ex/c(x/c)d1cdx=0ex/cxd1cdlogxcdx=0log(x)ex/cxd1cddxlog(c)Γ(d).

Skąd

b1Γ(d)0log(x)ex/c(x/c)d1dx=(b1)Γ(d)Γ(d)+(b1)log(c).

Podłączenie do poprzednich zbiorów

I(a,b,c,d)=cdalog(abΓ(b))+(b1)Γ(d)Γ(d)+(b1)log(c).

Rozbieżność KL pomiędzy i Γ ( a , b ) jest równa I ( c , d , c , d ) - I ( a , b , c , d ) , co jest łatwe do złożenia.Γ(c,d)Γ(a,b)I(c,d,c,d)I(a,b,c,d)


Szczegóły dotyczące wdrożenia

Funkcje gamma rosną szybko, więc aby uniknąć przepełnienia, nie obliczaj gamma i przyjmuj jej logarytm: zamiast tego użyj funkcji log-gamma, która znajdzie się na dowolnej platformie obliczeń statystycznych (w tym Excelu).

Stosunek jest pochodną logarytmiczną y , ogólnie nazywane ψ , digamma funkcję. Jeśli nie jest on dostępny, istnieją stosunkowo proste sposoby jego przybliżenia, jak opisano w artykule w WikipediiΓ(d)/Γ(d)Γ,ψ, .

Tutaj, aby zilustrować, jest bezpośrednim Rwdrożenie wzoru pod względem . Nie wykorzystuje to okazji do algebraicznego uproszczenia wyniku, co uczyniłoby go nieco bardziej wydajnym (poprzez wyeliminowanie zbędnego obliczania ψ ).Iψ

#
# `b` and `d` are Gamma shape parameters and
# `a` and `c` are scale parameters.
# (All, therefore, must be positive.)
#
KL.gamma <- function(a,b,c,d) {
  i <- function(a,b,c,d)
    - c * d / a - b * log(a) - lgamma(b) + (b-1)*(psigamma(d) + log(c))
  i(c,d,c,d) - i(a,b,c,d)
}
print(KL.gamma(1/114186.3, 202, 1/119237.3, 195), digits=12)

2
Dobra odpowiedź. Dzięki! Uważam jednak, że w czwartej równości jest błąd znaku. Ponadto plik pdf gamma powinien mieć dodatkowy mianownik „c” w mianowniku. Czy chciałbyś, żebym go edytować?
Ian Langmore,

dx/xc

2
Dokonałem poprawek.
Ian Langmore,

10

Rozkład gamma należy do rodziny wykładniczej, ponieważ jego gęstość można wyrazić jako:

fa(xθ)=exp(η(θ)T.(x)-sol(θ)+h(x))

sol(θ)=log(Γ(do))+dolog(b)
θ=[do-1-1b]

Wszystkie rozkłady w rodzinie wykładniczej mają rozbieżność KL:

KL(q;p)=g(θp)g(θq)(θpθq)g(θq).

There's a really nice proof of that in:

Frank Nielsen, École Polytechnique, and Richard Nock, Entropies and cross-entropies of exponential families.


Didn't know this. Just a quick question - the g(.) function, does it have to be the same for θp as for θq? So for example, would the above formula be valid for KL divergence of normal pdf from gamma pdf?
probabilityislogic

1
Yes, this formula is for two distributions in the same exponential family.
Neil G
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.