# ddjensenpar: Divergence between discrete probability distributions given... In dad: Three-Way / Multigroup Data Analysis Through Densities

 ddjensenpar R Documentation

## Divergence between discrete probability distributions given the probabilities on their common support

### Description

Jensen-Shannon divergence between two discrete probability distributions on the same support (which can be a Cartesian product of q sets), given the probabilities of the states (which are q-tuples) of the support.

### Usage

ddjensenpar(p1, p2)


### Arguments

 p1 array (or table) the dimension of which is q. The first probability distribution on the support. p2 array (or table) the dimension of which is q. The second probability distribution on the support.

### Details

The Jensen-Shannon divergence ||p_1 - p_2|| between two discrete distributions p_1 and p_2 is given by the formula:

||p_1 - p_2|| = \sum_x{(p_1(x) log(2 p_1(x) / (p_1(x)+p_2(x)))) + (p_2(x) log(2 p_2(x) / (p_1(x)+p_2(x))))}

### Author(s)

Rachid Boumaza, Pierre Santagostini, Smail Yousfi, Sabine Demotes-Mainard

### References

Deza, M.M. and Deza E. (2013). Encyclopedia of distances. Springer.

ddjensen: Jensen-Shannon distance between two estimated discrete distributions, given samples.

Other distances: ddchisqsympar, ddhellingerpar, ddjeffreyspar, ddlppar.

### Examples

# Example 1
p1 <- array(c(1/2, 1/2), dimnames = list(c("a", "b")))
p2 <- array(c(1/4, 3/4), dimnames = list(c("a", "b")))
ddjensenpar(p1, p2)

# Example 2
x1 <- data.frame(x = factor(c("A", "A", "A", "B", "B", "B")),
y = factor(c("a", "a", "a", "b", "b", "b")))
x2 <- data.frame(x = factor(c("A", "A", "A", "B", "B")),
y = factor(c("a", "a", "b", "a", "b")))
p1 <- table(x1)/nrow(x1)
p2 <- table(x2)/nrow(x2)
ddjensenpar(p1, p2)


dad documentation built on Aug. 30, 2023, 5:06 p.m.