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


15

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

KLGa(bq,cq;bp,cp)=(cq−1)Ψ(cq)−log⁡bq−cq−log⁡Γ(cq)+log⁡Γ(cp)+cplog⁡bp−(cp−1)(Ψ(cq)+log⁡bq)+bqcqbp

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

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

[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)=∂∂d∫0∞e−x/cxd−1cddx=∂∂d∫0∞e−x/c(x/c)d−1cdx=∫0∞e−x/cxd−1cdlog⁡xcdx=∫0∞log⁡(x)e−x/cxd−1cddx−log⁡(c)Γ(d).

Откуда

b−1Γ(d)∫0∞log⁡(x)e−x/c(x/c)d−1dx=(b−1)Γ′(d)Γ(d)+(b−1)log⁡(c).

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

I(a,b,c,d)=−cda−log⁡(abΓ(b))+(b−1)Γ′(d)Γ(d)+(b−1)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)
θ=[c−1−1b]

Все распределения в семействе экспонент имеют дивергенцию 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.