Kullback – Leibler divergencia entre dos distribuciones gamma


15

Optar por parametrizar la distribución gamma Γ(si,C) por el pdf g(x;b,c)=1Γ(c)Xc-1siCmi-X/ /si La divergencia Kullback-Leibler entreΓ(bq,cq)yΓ(bp,cp)viene dada por [1] como

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

Supongo que Ψ(x):=Γ(x)/Γ(x) es la función digamma .

Esto se da sin derivación. No puedo encontrar ninguna referencia que derive esto. ¿Alguna ayuda? Una buena referencia sería suficiente. La parte difícil es integrar contra un gamma pdf.logx

[1] WD Penny, KL-Divergencias de densidades normales, gamma, Dirichlet y Wishart , disponibles en: www.fil.ion.ucl.ac.uk/~wpenny/publications/densities.ps


2
Tomar la derivada del pdf con respecto a introduce el factor de l o g ( x ) que está buscando: es por eso que aparece digamma. clog(x)
whuber

Si se encuentra con Pierre Baldi y Laurent Itti (2010) "De bits y wow: una teoría bayesiana de la sorpresa con aplicaciones a la atención" Neural Networks 23: 649-666, encontrará que la Ecuación 73 ofrece una divergencia KL entre dos pdf gamma. Sin embargo, tenga cuidado, parece que la fórmula está mal impresa.
Sr. Clarinete

Busco a una solución al mismo problema y parece que este uno es útil.
Yi Yang

Respuestas:


15

La divergencia KL es una diferencia de integrales de la forma

$$ \ 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} $$

Solo tenemos que tratar con la integral de la mano derecha, que se obtiene observando

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

De dónde

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

Conectando con los rendimientos anteriores

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

La divergencia KL entre y Γ ( a , b ) es igual a I ( c , d , c , d ) - I ( a , b , c , d ) , que es fácil de ensamblar.Γ(c,d)Γ(a,b)I(c,d,c,d)I(a,b,c,d)


Detalles de implementacion

Las funciones gamma crecen rápidamente, por lo que para evitar el desbordamiento no calcule Gamma y tome su logaritmo: en su lugar, use la función log-Gamma que se encontrará en cualquier plataforma de computación estadística (incluido Excel, para el caso).

Γ(d)/Γ(d)Γ,ψ,

RIψ

#
# `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
Buena respuesta. ¡Gracias! Sin embargo, creo que hay un error de signo en la cuarta igualdad. Además, su gamma pdf debe tener un factor adicional de 'c' en el denominador. ¿Quieres que lo edite?
Ian Langmore

@ Ian tienes razón; Normalmente escribo la medida comoreX/ /X y al no hacerlo omití ese factor adicional de C. Buena captura en el error de signo. Si desea realizar las ediciones, ¡siéntase libre!
whuber

2
Hice las correcciones.
Ian Langmore

10

La distribución Gamma está en la familia exponencial porque su densidad se puede expresar como:

F(Xθ)=Exp(η(θ)T(X)-sol(θ)+h(X))

Mirando la función de densidad Gamma, su log-normalizador es

sol(θ)=Iniciar sesión(Γ(C))+CIniciar sesión(si)
con parámetros naturales
θ=[C-1-1si]

Todas las distribuciones en la familia exponencial tienen divergencia KL:

KL(q;pag)=sol(θpag)-sol(θq)-(θpag-θq)sol(θq).

Hay una muy buena prueba de eso en:

Frank Nielsen, École Polytechnique y Richard Nock, Entropías y entropías cruzadas de familias exponenciales.


No sabia esto. Solo una pregunta rápida: elsol(.) función, ¿tiene que ser igual para θpag como para θq? Entonces, por ejemplo, ¿sería válida la fórmula anterior para la divergencia KL del pdf normal del pdf gamma?
probabilityislogic

1
Sí, esta fórmula es para dos distribuciones en la misma familia exponencial.
Neil G
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.