Como calcular a divergência / distância Kullback-Leibler?


10

Eu tenho três conjuntos de dados X, Y e Z. Cada conjunto de dados define a frequência de ocorrência de um evento. Por exemplo:

Conjunto de dados X: E1: 4, E2: 0, E3: 10, E4: 5, E5: 0, E6: 0 e assim por diante ..
Conjunto de dados Y: E1: 2, E2: 3, E3: 7, E4: 6, E5: 0, E6: 0 e assim por diante ..
Conjunto de Dados Z: E1: 0, E2: 4, E3: 8, E4: 4, E5: 1, E6: 0 e assim por diante ..

Eu tenho que encontrar divergência KL entre X e Y; e entre X e Z. Como você pode ver em alguns eventos, haverá valores 0 e diferentes de zero. Para alguns dos eventos, os três conjuntos de dados são 0.

Eu apreciaria se alguém pudesse me ajudar a encontrar a divergência KL para isso. Eu não sou muito estatístico, então não tenho muita ideia. Os tutoriais que eu estava vendo on-line eram um pouco complexos para minha compreensão.

Respostas:


11

Para responder sua pergunta, devemos lembrar a definição de divergência KL :

DKL(Y||X)=i=1Nln(YiXi)Yi

Antes de tudo, você precisa ir do que tem para distribuições de probabilidade. Para isso, você deve normalizar seus dados de forma que eles sintetizem um:

Xi:=Xii=1NXi ; ; Yi:=Yii=1NYiZi:=Zii=1NZi

Então, para valores discretos, temos uma suposição muito importante que é necessária para avaliar a divergência de KL e que é frequentemente violada:

Xi=0 deve implicar .Yi=0

No caso em que e iguais a zero, será assumido como zero (como o valor limite).XiYiln(Yi/Xi)Yi

No seu conjunto de dados, significa que você pode encontrar , mas não por exemplo (devido à segunda entrada).DKL(X||Y)DKL(Y||X)

O que eu poderia aconselhar do ponto de vista prático é:

ou torne seus eventos "maiores" para que você tenha menos zeros

ou obtenha mais dados, de forma que você cubra eventos raros com pelo menos uma entrada.

Se você não pode usar nenhum dos conselhos acima, provavelmente precisará encontrar outra métrica entre as distribuições. Por exemplo,

Informações mútuas , definidas como . Onde é uma probabilidade conjunta de dois eventos.p(Xi,Yi)I(X,Y)=i=1Nj=1Np(Xi,Yj)ln(p(Xi,Yj)p(Xi)p(Yj))p(Xi,Yi)

Espero que ajude.


0

insira a descrição da imagem aqui

Você pode definir \ epsilon com um valor muito pequeno 0,00001 (por exemplo) e prosseguir com valores diferentes de zero para todas as Probabilidades e calcular pontuações em KL.

Por favor, deixe-me saber se isso funciona.


2
Você poderia adicionar a citação apropriada para a imagem anexada, se essa não for sua (caso contrário, você pode usar para digitá-la) e também indicar como ela se aplica ao problema específico em questão? (O OP claramente que ele não está muito versado em estatística matemática.)euUMATEX
chl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.