distl2dnorm: L^2 distance between L^2-normed probability densities

View source: R/distl2dnorm.R

distl2dnormR Documentation

L^2 distance between L^2-normed probability densities

Description

L^2 distance between two multivariate (p > 1) or univariate (dimension: p = 1) L^2-normed probability densities, estimated from samples, where a L^2-normed probability density is the original probability density function divided by its L^2-norm.

Usage

distl2dnorm(x1, x2, method = "gaussiand", check = FALSE, varw1 = NULL, varw2 = NULL)

Arguments

x1, x2

the samples from the probability densities (see l2d.

method

string. It can be:

  • "gaussiand" if the densities are considered to be Gaussian.

  • "kern" if they are estimated using the Gaussian kernel method.

check

logical. When TRUE (the default is FALSE) the function checks if the covariance matrices (if method = "gaussiand") or smoothing bandwidth matrices (if method = "kern") are not degenerate, before computing the inner product.

Notice that if p = 1, it checks if the variances or smoothing parameters are not zero.

varw1, varw2

the bandwidths when the densities are estimated by the kernel method (see l2d.

Details

Given densities f_1 and f_2, the function distl2dnormpar computes the distance between the L^2-normed densities f_1 / ||f_1|| and f_2 / ||f_2||:

2 - 2 <f_1, f_2> / (||f_1|| ||f_2||)

For some information about the method used to compute the L^2 inner product or about the arguments, see l2d.

Value

The L^2 distance between the two L^2-normed densities.

Be careful! If check = FALSE and one smoothing bandwidth matrix is degenerate, the result returned can not be considered.

Author(s)

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

See Also

distl2d for the distance between two probability densities.

matdistl2dnorm in order to compute pairwise distances between several L^2-normed densities.

Examples

require(MASS)
m1 <- c(0,0)
v1 <- matrix(c(1,0,0,1),ncol = 2) 
m2 <- c(0,1)
v2 <- matrix(c(4,1,1,9),ncol = 2)
x1 <- mvrnorm(n = 3,mu = m1,Sigma = v1)
x2 <- mvrnorm(n = 5, mu = m2, Sigma = v2)
distl2dnorm(x1, x2, method = "gaussiand")
distl2dnorm(x1, x2, method = "kern")
distl2dnorm(x1, x2, method = "kern", varw1 = v1, varw2 = v2)

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