energy_distance#
- energy_distance(x, y, *, average=None, exponent=1, estimation_stat=EstimationStatistic.V_STATISTIC)[source]#
Estimator for energy distance.
Computes the estimator for the energy distance of the random vectors corresponding to \(x\) and \(y\). Both random vectors must have the same number of components.
- Parameters
x (Array) – First random vector. The columns correspond with the individual random variables while the rows are individual instances of the random vector.
y (Array) – Second random vector. The columns correspond with the individual random variables while the rows are individual instances of the random vector.
exponent (float) – Exponent of the Euclidean distance, in the range \((0, 2)\).
average (Optional[Callable[[Array], Array]]) – A function that will be used to calculate an average of distances. This defaults to the mean.
estimation_stat (Union[EstimationStatistic, Literal['U', 'V', 'u_statistic', 'v_statistic']]) – If EstimationStatistic.U_STATISTIC, calculate energy distance using Hoeffding’s unbiased U-statistics. Otherwise, use von Mises’s biased V-statistics. If this is provided as a string, it will first be converted to an EstimationStatistic enum instance.
- Returns
Value of the estimator of the energy distance.
- Return type
Array
Examples
>>> import numpy as np >>> import dcor >>> a = np.array([[1, 2, 3, 4], ... [5, 6, 7, 8], ... [9, 10, 11, 12], ... [13, 14, 15, 16]]) >>> b = np.array([[1, 0, 0, 1], ... [0, 1, 1, 1], ... [1, 1, 1, 1]]) >>> dcor.energy_distance(a, a) 0.0 >>> dcor.energy_distance(a, b) 20.5780594... >>> dcor.energy_distance(b, b) 0.0
A different exponent for the Euclidean distance in the range \((0, 2)\) can be used:
>>> dcor.energy_distance(a, a, exponent=1.5) 0.0 >>> dcor.energy_distance(a, b, exponent=1.5) ... 99.7863955... >>> dcor.energy_distance(b, b, exponent=1.5) 0.0