multi species line-transect model with landcover types as detectability covariates

161 views
Skip to first unread message

Margaret Swift

unread,
Mar 24, 2021, 11:24:04 AM3/24/21
to distance-sampling
Hello! Thanks in advance for any responses that can help me out. In a nutshell, I have line transect Distance counts for an annual multispecies survey. These transects cover 7 different landcover types. I would like to come up with abundance estimates for species counts observed over the years, and I would think the detectability would change for the various landcover zones. Here's a picture example of my study area. My shapefile has about 89 different regions, but each can be put into one of the 7 landcover 'bins' (yellow and blue here):

Screen Shot 2021-03-24 at 11.12.15 AM.png

My flatfile looks like this, where CODE is the code for each species, and Region.Label is each of the 7 landcover types.

Screen Shot 2021-03-24 at 11.19.18 AM.png

Currently, I'm running ds() with formula = ~CODE, but is this right? Or should I be running ~CODE + Region.Label? I'm not quite sure how to combine regional stratification with species stratification. 

I'm also not sure how to then actually get the abundance estimates--do I just use the shape/scale parameters, or can I still use dht2() for abundance estimates? For the latter, I'm getting an error when I run it so I'm not sure if I've set up my flatfile/formula correctly.

Thanks in advance!

Eric Rexstad

unread,
Mar 24, 2021, 12:00:14 PM3/24/21
to Margaret Swift, distance-sampling

Margaret

A few more questions before getting to the answers.

Is it true that the transects were placed without regard to the landcover regions?  In other words, did you have a map of your landcover and say: place 30km of transects into cover type 1, 25km of transects into cover type 2, ...  I suspect you probably didn't do that, based on your figure.  Do you seek estimates that are species and landcover specific?  Or is your mention of landcover only because you want it taken into account in the detection function model?  I will assume you do not want landcover-specific abundance estimates.  I doubt you could get the landcover-specific estimates because of the design.

If my guesses are correct (no landcover-specific estimates), then do not use landcover as the region.  Landcover would appear at the observation-level; associated with each detection (just like species).  Region is used for features that were considered in the design (e.g., my study area consists of three management units, I want abundance estimates not only for the study area but also for each management unit--hence management unit is a "region").

Moving on to the treatment of species.  If you have sufficient detections per species, then simply subset your data by species to produce species-specific detection functions.  If, on the other hand, you have rare species that are poorly represented in your data set by few (<50) detections, then you'll include species as a covariate in the detection function (as you indicated).  There is an example of this type of analysis on our examples website:

http://examples.distancesampling.org/Distance-spec-covar/species-covariate-distill.html

Note the use of "object" as the stratification type indicating that species was not a feature of the study that was taken into account during the design of the survey.

If what I'm saying is still making sense, then I'd incorporate cover type and species as covariates in your detection function (when using `ds()`), then use species as the stratification characteristic (merely to get the software to generate species-specific estimates) with "object" type stratification using a call to `dht2` (as with the example I cited above).

You note your study is multi-year, but you've not mentioned how you wish to treat year in your analysis: source of differences in detectability?  need for year-specific as well as species-specific estimates?  Possibly more to discuss in this area.

If I have misinterpreted your intention, we may need another iteration perhaps off the list.

--
You received this message because you are subscribed to the Google Groups "distance-sampling" group.
To unsubscribe from this group and stop receiving emails from it, send an email to distance-sampl...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/distance-sampling/0ccdd875-d957-46ad-b27e-3ed47f50dff6n%40googlegroups.com.
-- 
Eric Rexstad
Centre for Ecological and Environmental Modelling
University of St Andrews
St Andrews is a charity registered in Scotland SC013532

Margaret Swift

unread,
Mar 24, 2021, 1:11:47 PM3/24/21
to distance-sampling

Hi Eric, thanks for your reply!

1. Your guesses are correct, I only wanted to account for landcover in the detection function model. The transects were created without regard to region, just coverage of the whole area. Thanks for the explanations of "region", I really struggled with interpreting this column but that's pretty clear to me now that I shouldn't use it as a dividing factor in the data, since it wasn't included in the design.

2. Okay, I do have a few species that are pretty rare, so I will keep species in my formula as a covariate, and just add "landcover" as a second one as you suggest. Yes this is all making sense to me now!

3. As for year, yes I do need by-year and by-species estimates. I am not sure if much will change from year to year, though; what reasons might one have for including 'year' as a covariate or calculating separate detection functions for each year? As a sub-question, the spacing of these transect lines did change over time (from 1997-2000 is one spacing, 2001+ is another); would this affect the detection functions?

Thank you, this has been super helpful in clearing up my confusions on how to use Distance sampling!

Margaret Swift

unread,
Mar 24, 2021, 3:42:12 PM3/24/21
to distance-sampling
4. I think I should add that I'm looking to use these estimates in a further analysis using species counts in these regions. So I want to translate each point count to a point estimate; I think the output from dht2() is just an overall estimate, in looking at the species-covariate tutorial you linked. How do I get from the ds() output to individual estimates for each point count? Or is that not feasible given this type of analysis?

Thanks.

Eric Rexstad

unread,
Mar 25, 2021, 4:04:11 AM3/25/21
to Margaret Swift, distance-sampling

Margaret

Regarding your #2: don't be overly enthusiastic about including landcover as a covariate in your detection function model.  Recognise that circumstances associated with each detection will differ; no two locations have exactly the same habitat characteristics.  In reality, you have many more than 7 types of habitats.  The pooling robustness property of distance sampling argues that you get unbiased estimates of abundance even if you do not consider all possible factors that affect detectability.  Hence, without landcover as a covariate, you will still produce unbiased estimates.  Expect some challenges when fitting a detection function with a seven-level covariate.  If you expect differences in detectability to be extreme, consider perhaps two or three landcover classes.

Regarding #3: I'm guessing this is an avian study, although you don't explicitly state that is the case.  If you are studying birds, it is plausible that bird behaviour might differ between years, influencing the detection function.  But pooling robustness again will be your friend.  The simplest analysis would be to analyse each year of data separately.  No reason to think transect spacing would have an influence on detectability.

Eric Rexstad

unread,
Mar 25, 2021, 4:30:32 AM3/25/21
to Margaret Swift, distance-sampling

Margaret

I misunderstood your earlier message, where I thought you were conducting line transect surveys.  Nevertheless, you can get sampler-specific estimates (point-specific), but not in conjunction with the use of object-type stratification, which you might be using for your rare species.

For species that have their own detection functions, hence do not need the use of `dht2`, you will find sampler-specific estimates in the output produced by `ds` thus:

Assume the output from the `ds` function resides in an object `myoutput`, then

myoutput$dht$individuals$bysample

contain sampler-specific estimates.  Consult ?mrds::dht for more details.

Reply all
Reply to author
Forward
0 new messages