Дивергенция Кульбака – Лейблера между двумя гамма-распределениями


15

Выбор параметризации гамма-распределения с помощью pdf Дивергенция Кульбака-Лейблера между и определяется как [1] ​​какΓ(b,c)g(x;b,c)=1Γ(c)xc1bcex/bΓ(bq,cq)Γ(bp,cp)

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

Я предполагаю, что - это функция дигаммы . Ψ(x):=Γ(x)/Γ(x)

Это дается без вывода. Я не могу найти никаких ссылок, которые выводят это. Любая помощь? Хорошей ссылки будет достаточно. Сложной частью является интеграция с гамма-pdf.logx

[1] WD Penny, KL-Расхождения нормальной плотности , гамма, дирихле и Вишарта, доступно по адресу: www.fil.ion.ucl.ac.uk/~wpenny/publications/densities.ps


2
Взятие производной от pdf по вводит коэффициент вы ищете: вот почему появляется дигамма. clog(x)
whuber

Если вы встретитесь с Пьером Бальди и Лораном Итти (2010). «Бит и вау: байесовская теория удивления с приложениями к вниманию». Нейронные сети 23: 649-666, вы обнаружите, что уравнение 73 дает KL-расхождение между двумя гамма-PDF-файлами. Будьте осторожны, хотя, похоже, что формула напечатана неправильно.
Мистер Кларнет

Ищу для решения той же проблемы и найти это один полезно.
И Ян

Ответы:


15

Дивергенция КЛ - это разность интегралов вида

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

Нам просто нужно иметь дело с правым интегралом, который получается путем наблюдения

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

Откуда

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

Подключение к предыдущим доходам

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

Расхождение KL между и Γ ( a , b ) равно I ( c , d , c , d ) - I ( a , b , c , d ) , что просто собрать.Γ(c,d)Γ(a,b)I(c,d,c,d)I(a,b,c,d)


Детали реализации

Гамма-функции быстро растут, поэтому, чтобы избежать переполнения, не вычисляйте Гамму и не используйте ее логарифм: вместо этого используйте функцию log-Гамма, которая будет найдена в любой платформе статистических вычислений (в том числе в Excel).

Отношение является логарифмическая производная Г , как правило , называют ψ , дигамма функция. Если он вам недоступен, есть сравнительно простые способы приблизить его, как описано в статье в Википедии .Γ(d)/Γ(d)Γ,ψ,

Здесь, чтобы проиллюстрировать, является прямой Rреализацией формулы в терминах . Это не дает возможности упростить результат алгебраически, что сделало бы его немного более эффективным (исключив избыточное вычисление ψ ).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
Хороший ответ. Благодарность! Я считаю, что в четвертом равенстве есть ошибка знака. Кроме того, ваш гамма-PDF должен иметь дополнительный коэффициент «с» в знаменателе. Вы хотите, чтобы я отредактировал это?
Ян Лэнгмор

@Ian Ты прав; Я обычно пишу меру как и, не делая этого, я опускаю этот дополнительный коэффициент c . Хороший улов на знак ошибки. Если вы хотите внести изменения, не стесняйтесь! dx/xc
whuber

2
Я внес исправления.
Ян Лэнгмор

10

Распределение гаммы находится в экспоненциальном семействе, потому что его плотность может быть выражена как:

f(xθ)=exp(η(θ)T(x)g(θ)+h(x))

Если посмотреть на функцию плотности гамма-излучения, то ее лог-нормализатор имеет вид с естественными параметрами θ = [ c - 1 - 1

g(θ)=log(Γ(c))+clog(b)
θ=[c11b]

Все распределения в семействе экспонент имеют дивергенцию KL:

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

Это действительно хорошее доказательство:

Фрэнк Нильсен, Политехническая школа и Ричард Нок, Энтропии и кросс-энтропии экспоненциальных семейств.


g(.)θpθq

1
Да, эта формула для двух распределений в одном семействе экспонент.
Нил Г
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.