This function calculates a useful measure of similarity between distributions known as the Bhattacharyya coefficient in statistics and simply the fidelity or overlap in quantum and statistical mechanics. It is roughly speaking the ratio of the intersection area to the average individual area, but it is a direct comparison between the density functions and does not require an arbitrary quantile to be specified. When applied to ctmm objects, this function returns the overlap of the two Gaussian distributions. When applied to aligned UD objects with corresponding movement models, this function returns the overlap of their (autocorrelated) kernel density estimates.

overlap(object,level=0.95,debias=TRUE,...)

Arguments

object

A list of ctmm fit or aligned UD objects to compare.

level

The confidence level desired for the output.

debias

Approximate debiasing of the overlap.

...

Not currently used.

Value

A table of confidence intervals on the overlap estimate. A value of 1 implies that the two distributions are identical, while a value of 0 implies that the two distributions share no area in common.

References

K. Winner, M. J. Noonan, C. H. Fleming, K. Olson, T. Mueller, D. Sheldon, J. M. Calabrese. ``Statistical inference for home range overlap'', Methods in Ecology and Evolution, 9:7, 1679-1691 (2018) doi: 10.1111/2041-210X.13027 .

Author

C. H. Fleming and K. Winner

Note

In ctmm v0.5.2, direct support for telemetry objects was dropped and the CTMM argument was depreciated for UD objects, simplifying usage.

Uncertainties in the model fits are propagated into the overlap estimate under the approximation that the Bhattacharyya distance is a chi-square random variable. Debiasing makes further approximations noted in Winner & Noonan et al (2018).

See also

Examples

# \donttest{ # Load package and data library(ctmm) data(buffalo) # fit models for first two buffalo GUESS <- lapply(buffalo[1:2], function(b) ctmm.guess(b,interactive=FALSE) ) # using ctmm.fit here for speed, but you should almost always use ctmm.select FITS <- lapply(1:2, function(i) ctmm.fit(buffalo[[i]],GUESS[[i]]) ) names(FITS) <- names(buffalo[1:2]) # Gaussian overlap between these two buffalo overlap(FITS)
#> , , low #> #> Cilla Gabs #> Cilla 1.000000 0.898462 #> Gabs 0.898462 1.000000 #> #> , , est #> #> Cilla Gabs #> Cilla 1.0000000 0.9987807 #> Gabs 0.9987807 1.0000000 #> #> , , high #> #> Cilla Gabs #> Cilla 1 1 #> Gabs 1 1 #>
# AKDE overlap between these two buffalo # create aligned UDs UDS <- akde(buffalo[1:2],FITS) # evaluate overlap overlap(UDS)
#> , , low #> #> Cilla Gabs #> Cilla 1.0000000 0.8957911 #> Gabs 0.8957911 1.0000000 #> #> , , est #> #> Cilla Gabs #> Cilla 1.0000000 0.9958115 #> Gabs 0.9958115 1.0000000 #> #> , , high #> #> Cilla Gabs #> Cilla 1 1 #> Gabs 1 1 #>
# }