Расходимость Кульбака-Лейблера определяется как
так что для вычисления (оценки) этого по эмпирическим данным нам понадобятся, может быть, некоторые оценки функций плотности p ( x ) , q ( x ) . Таким образом, естественной отправной точкой может быть оценка плотности (а после этого просто численное интегрирование). Насколько хорошим или стабильным был бы такой метод, я не знаю.
KL( P| | Q)= ∫∞- ∞p ( x ) logр ( х )Q( х )dИкс
p ( x ) , q( х )
Но сначала ваш второй вопрос, потом я вернусь к первому. Допустим, и q - однородные плотности на [ 0 , 1 ] и [ 0 , 10 ] соответственно. Тогда KL ( p | | q ) = log 10, в то время как KL ( q | | p ) определить сложнее, но единственное разумное значение, которое я могу дать, это ∞ , насколько я могу видеть, поскольку оно включает интегрирование log ( 1). /пQ[ 0 , 1 ][ 0 , 10 ]KL( p | | q) = журнал10KL( д| | р)∞ которую мы можем интерпретировать как log ∞ . Эти результаты обоснованы из интерпретации, которую я даю в «Интуиции» о расхождении Кульбака-Лейблера (КЛ)журнал( 1 / 0 )журнал∞
Возвращаясь к основному вопросу. Это задается очень непараметрическим способом, и не делается никаких предположений о плотности. Вероятно, необходимы некоторые предположения. Но если предположить, что две плотности предложены в качестве конкурирующих моделей для одного и того же явления, мы, вероятно, можем предположить, что они имеют одну и ту же доминирующую меру: расхождение KL между непрерывным и дискретным распределением вероятности всегда будет, например, бесконечностью. Один документ, посвященный этому вопросу, следующий: https://pdfs.semanticscholar.org/1fbd/31b690e078ce938f73f14462fceadc2748bf.pdf Они предлагают метод, который не требует предварительной оценки плотности, и анализируют его свойства.
(Есть много других работ). Я вернусь и опубликую некоторые детали из этой газеты, идеи.
EDIT
Некоторые идеи из этой статьи, которые касаются оценки расходимости KL с помощью образцов из абсолютно непрерывных распределений. Я показываю их предложение для одномерных распределений, но они дают решение и для векторов (с использованием оценки плотности ближайших соседей). Для доказательства читайте газету!
Они предлагают использовать версию эмпирической функции распределения, но линейно интерполировать между точками выборки, чтобы получить непрерывную версию. Они определяют
гдеU- шаговая функция Хевисайда, но определенная так, чтоU(0)=0,5. Тогда эта функция, интерполированная линейно (и вытянутая горизонтально за пределы диапазона), равнаPc(cдля непрерывного). Затем они предлагают оценить дивергенцию Кульбака-Либлер от
D (Р| |Q)=1
пе( х ) = 1NΣя = 1NU( х - хя)
UU( 0 ) = 0,5псс
где
δPc=Pc(xi)-Pc(xi-ϵ)и
ϵявляется числом, меньшим, чем наименьшее расстояние между выборками.
D^( P∥ Q ) = 1NΣя = 1Nжурнал( δпс( хя)δQс( хя))
δпс= Pс( хя) - Пс( хя- ϵ )ε
R-код для версии эмпирической функции распределения, которая нам нужна
my.ecdf <- function(x) {
x <- sort(x)
x.u <- unique(x)
n <- length(x)
x.rle <- rle(x)$lengths
y <- (cumsum(x.rle)-0.5) / n
FUN <- approxfun(x.u, y, method="linear", yleft=0, yright=1,
rule=2)
FUN
}
обратите внимание, что rle
используется, чтобы заботиться о случае с дубликатами в x
.
Тогда оценка дивергенции KL дается
KL_est <- function(x, y) {
dx <- diff(sort(unique(x)))
dy <- diff(sort(unique(y)))
ex <- min(dx) ; ey <- min(dy)
e <- min(ex, ey)/2
n <- length(x)
P <- my.ecdf(x) ; Q <- my.ecdf(y)
KL <- sum( log( (P(x)-P(x-e))/(Q(x)-Q(x-e)))) / n
KL
}
Затем я покажу небольшую симуляцию:
KL <- replicate(1000, {x <- rnorm(100)
y <- rt(100, df=5)
KL_est(x, y)})
hist(KL, prob=TRUE)
которая дает следующую гистограмму, показывающую (оценку) выборочного распределения этой оценки:
Для сравнения мы вычислим расхождение KL в этом примере путем численного интегрирования:
LR <- function(x) dnorm(x,log=TRUE)-dt(x,5,log=TRUE)
100*integrate(function(x) dnorm(x)*LR(x),lower=-Inf,upper=Inf)$value
[1] 3.337668
хм ... разница настолько велика, что здесь есть, что исследовать!