Calculate the overlap between two stationary distributions
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,...)
object |
A |
level |
The confidence level desired for the output. |
debias |
Approximate debiasing of the overlap. |
... |
Not currently used. |
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.
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).
C. H. Fleming and K. Winner
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.
# 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) # AKDE overlap between these two buffalo # create aligned UDs UDS <- akde(buffalo[1:2],FITS) # evaluate overlap overlap(UDS)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.