BivKLD estimates directed Kullback-Leibler (KL)
divergence between bivariate distributions. Its kernel estimator follows
Chackochan, Sankaran, and Unnikrishnan Nair (2026) and uses bivariate
Gaussian kernel densities from the ks package.
Install the submitted source archive with:
install.packages("BivKLD_0.1.0.tar.gz", repos = NULL, type = "source")library(BivKLD)
set.seed(2026)
x <- cbind(rnorm(100), rnorm(100))
y <- cbind(rnorm(100, 0.5), rnorm(100, -0.25))
biv_kld(x, y, bandwidth = "normal")
biv_kld(y, x, bandwidth = "normal")KL divergence is directed, so the two results need not be equal. The
default bandwidth selector is unconstrained smoothed cross-validation
("scv"), as in the reference paper. The normal-scale
selector above is useful for quick exploration.
measurements <- iris[, c("Sepal.Length", "Sepal.Width")]
biv_kld_matrix(measurements, iris$Species, bandwidth = "normal")Rows are source distributions and columns are comparison
distributions, so entry [i, j] estimates
D(group_i || group_j).
biv_kld_discrete(c(0.2, 0.3, 0.1, 0.4),
c(0.1, 0.4, 0.2, 0.3))
biv_kld_normal(c(-2, 2), matrix(c(1, 1, 1, 2), 2),
c(-2, 2), matrix(c(3, 3, 3, 6), 2))Chackochan, R., Sankaran, P. G., & Unnikrishnan Nair, N. (2026). Bivariate Kullback-Leibler divergence. Communications in Statistics - Theory and Methods, 55(1), 292-312. doi:10.1080/03610926.2025.2496687
Need a high-speed mirror for your open-source project?
Contact our mirror admin team at info@clientvps.com.
This archive is provided as a free public service to the community.
Proudly supported by infrastructure from VPSPulse , RxServers , BuyNumber , UnitVPS , OffshoreName and secure payment technology by ArionPay.