I'm fitting detection functions on whale data using the ds function in Distance package in R. I am having difficulty choosing the best detection function to then use in a density surface model. I first fit three simple models: Hazard Rate (no adjustment terms), Half Normal (no adjustments) and Uniform (cosine adjustment). The uniform and half normal both give similar estimates of abundance in the 150 mark, compared to hazard rate which estimates at the 250 mark. Hazard rate comes out with the lowest AIC value, indicating best model fit.

However, once i start adding covariates (for example seastate or cluster size), the hazard rate model starts predicting much higher values (some reaching abundance of 1,000) again, also showing a lower AIC, and therefore indicating best model. However, when plotted, they just don't look right. Example below:

This graph shows Hazard rate model with a covariate - which came out as lowest AIC by at least 10

This is the same covariate but fit with a half normal - this "looks" better, but AIC is indicating worse model fit

Whilst I know this particular example, the CV surrounding Hazard rate with area as covariate is particularly high (~50%, therefore best not to use it even with a lower AIC), I am having similar issues with other detection functions for different years. When fitting covariates with hazard rate, I get lower AIC but graphs looking much worse (like the one attached here) than half normal, and an average PA of 0.2 (surely that's not great?)

One other thing I have noticed is that my data has evidence of spiked data towards zero. One way around this is fitting the detection function to distinct bin widths. For example, specifiyng unequal bins, 0-100, 100-200, 200-300, 300-600, 600-900, etc. This gives me a lower AIC but is this good practice?

I hope this makes sense, Thanks for your help

  • 1
    $\begingroup$ You should make this question in the Distance Google groups. $\endgroup$
    – Antonela
    Mar 5, 2021 at 15:19

1 Answer 1


This is actually a common situation encountered in distance sampling data.

If you have too many distances near 0 you can actually get an HR to fit much better than a half normal, leading to unrealistically large values for abundance. This happens because, coupled with the assumption that you detect everything on the trackline, a spiked detection function means you estimate that you have missed lots of animals far from the transect line. So you get a very low detection probability estimate, which goes in the denominator and then leads to a really high abundance estimate.

One thing to ask yourself is whether the spiked detection is sensible at all? Most often than not, it is not - it is unlikely you detect all, lets say, whales at distance 0, but only 0.5 of the animals at 10 meters away. Hence the true detection function is very likely a much smoother process, and it was either rounding to 0 or reactive animal movement that led to the near zero spike.

Which situation is occurring is relevant to know for figuring out the best way to go from there. A possible approach might be to "force" the half normal any way. Of course, what that means is that you are imposing on the data a parametric form that is more sensible than the HR, but there is no way to choose which is the optimal model then since there are no goodness of fit tools available to choose from competing models then. So I would call that "data salvaging", more than "data analysis". You can't really beat having sound field methods to ensure heaping at 0 does not occur, since then, as noted, you are really dependent on relatively arbitrary choices for data salvaging.

For more on distance sampling stuff, do visit the site http://distancesampling.org/ and in particular the useful online and free course https://workshops.distancesampling.org/online-course/ and the distance sampling list server at http://distancesampling.org/distancelist.html and google group at https://groups.google.com/g/distance-sampling


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.