Detector clusters and separate density estimates across clusters

91 views
Skip to first unread message

Laura Keating

unread,
Sep 12, 2017, 8:12:01 PM9/12/17
to secr

Hello,

I have mark-recapture data for a rare canid species. The traps are organized across the landscape in clusters of 6 traps and are far enough apart that we don’t capture the same individuals between clusters. Each cluster of traps has similar geometry in terms of the trap lay-out. We only have a few captures and re-captures in each cluster since this is a wide-ranging and rare species. We are hoping to use density estimates from secr to help us estimate total abundance of this species.

I originally considered treating each cluster as a separate session since they are spatially independent but I no longer think that will work because the data is so sparse (and therefore it won’t be possible to parameterize the detection function for each session). However, in reading through the secr-overview it seems that using a detector cluster approach might be appropriate.

With that in mind, I’m hoping someone can help shed some light on the following:

  • Firstly, does using a detector cluster approach for this make sense (rather than separate sessions)?

 

  • I tried the detector cluster approach using a modified version of the example snowshoe hare data and noticed that it results in only one overall density output rather than a separate density estimate for each cluster. Is there any way to extract density estimates for each cluster? I see from the derived.cluster() help file that each cluster is interpreted as a replicate sample, and am hoping that there is some way to pull out the results for each of those replicates.

 

  • If the program doesn’t produce individual density estimates for each cluster, would it be appropriate to compile all capture/re-capture data and pretend like they are all from one detector cluster for the purposes of generating an ‘general esa’ and then subsequently calculating density for each cluster by dividing the # of different individuals captured by the general esa?

 

  • If I should have been able to extract separate density estimates for each cluster, perhaps I added the cluster attribute incorrectly. If this is the case, any insights or examples on how to add the cluster attribute to traps data would be much appreciated. At the moment I am adding the ClusterID attribute after the traps object is created by assigning a vector to clusterID(traps).

Many thanks in advance for your help!

Much appreciated,

Laura

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

Murray Efford

unread,
Sep 12, 2017, 10:12:54 PM9/12/17
to secr
Hi Laura

I assume you are using mash(). If not then check the help and example at ?mash.


  • Firstly, does using a detector cluster approach for this make sense (rather than separate sessions)?

 Yes, if you are looking for one overall estimate of density, without any grid-level covariates. _However_ treating grids as sessions is OK, too: you don't need to estimate session-specific detection parameters.


  • I tried the detector cluster approach using a modified version of the example snowshoe hare data and noticed that it results in only one overall density output rather than a separate density estimate for each cluster. Is there any way to extract density estimates for each cluster? I see from the derived.cluster() help file that each cluster is interpreted as a replicate sample, and am hoping that there is some way to pull out the results for each of those replicates.

No, there is no way to do that.


  • If the program doesn’t produce individual density estimates for each cluster, would it be appropriate to compile all capture/re-capture data and pretend like they are all from one detector cluster for the purposes of generating an ‘general esa’ and then subsequently calculating density for each cluster by dividing the # of different individuals captured by the general esa?

 Yes, that does make sense to me. It's almost exactly what 'secr' does if you use derived() with a (conditional likelihood, CL = TRUE) model fitted to a multi-session dataset.


  • If I should have been able to extract separate density estimates for each cluster, perhaps I added the cluster attribute incorrectly. If this is the case, any insights or examples on how to add the cluster attribute to traps data would be much appreciated. At the moment I am adding the ClusterID attribute after the traps object is created by assigning a vector to clusterID(traps).

I'm a bit rusty on this, and maybe you won't now need it. See ?mash.

Murray

Laura Keating

unread,
Sep 13, 2017, 11:32:03 AM9/13/17
to Murray Efford, secr

Hi Murray,

Many thanks for the very helpful and prompt response! I will try both the manual way of calculating cluster-specific density estimates and the multi-session approach to see if I can get similar outputs.

You mentioned that the manual way of calculating cluster-specific density estimates that I described is ‘almost exactly what 'secr' does if you use derived() with a (conditional likelihood, CL = TRUE) model fitted to a multi-session dataset’. Out of curiosity, what is the difference between the two approaches?

Thanks again!

Much appreciated,

Laura

 

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

--
You received this message because you are subscribed to the Google Groups "secr" group.
To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Murray Efford

unread,
Sep 13, 2017, 4:43:01 PM9/13/17
to secr
To be clear, derived() works with any of the usual models (CL or not CL) and doesn't require mashing. It does the full Horvitz-Thompson thing, summing reciprocals of individual-specific esa (useful if there are individual covariates), and provides SE and confidence intervals. Your n/esa gives the same result when all individuals have the same esa.
Murray


On Thursday, September 14, 2017 at 3:32:03 AM UTC+12, laurak wrote:

Hi Murray,

Many thanks for the very helpful and prompt response! I will try both the manual way of calculating cluster-specific density estimates and the multi-session approach to see if I can get similar outputs.

You mentioned that the manual way of calculating cluster-specific density estimates that I described is ‘almost exactly what 'secr' does if you use derived() with a (conditional likelihood, CL = TRUE) model fitted to a multi-session dataset’. Out of curiosity, what is the difference between the two approaches?

Thanks again!

Much appreciated,

Laura

 

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+unsubscribe@googlegroups.com.

Laura Keating

unread,
Sep 14, 2017, 11:24:43 AM9/14/17
to Murray Efford, secr

Hi Murray,

 

Thanks so much for the clarification!

 

Much appreciated,

 

Laura

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

From: secr...@googlegroups.com [mailto:secr...@googlegroups.com] On Behalf Of Murray Efford
Sent: Wednesday, September 13, 2017 2:43 PM
To: secr <secr...@googlegroups.com>
Subject: Re: Detector clusters and separate density estimates across clusters

 

To be clear, derived() works with any of the usual models (CL or not CL) and doesn't require mashing. It does the full Horvitz-Thompson thing, summing reciprocals of individual-specific esa (useful if there are individual covariates), and provides SE and confidence intervals. Your n/esa gives the same result when all individuals have the same esa.


Murray

On Thursday, September 14, 2017 at 3:32:03 AM UTC+12, laurak wrote:

Hi Murray,

Many thanks for the very helpful and prompt response! I will try both the manual way of calculating cluster-specific density estimates and the multi-session approach to see if I can get similar outputs.

You mentioned that the manual way of calculating cluster-specific density estimates that I described is ‘almost exactly what 'secr' does if you use derived() with a (conditional likelihood, CL = TRUE) model fitted to a multi-session dataset’. Out of curiosity, what is the difference between the two approaches?

Thanks again!

Much appreciated,

Laura

 

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--

You received this message because you are subscribed to the Google Groups "secr" group.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+...@googlegroups.com.

Laura Keating

unread,
Sep 14, 2017, 6:45:26 PM9/14/17
to Murray Efford, secr

Hi Murray,

 

I’ve tried the two approaches (i.e. 1) collapsing data collected over multiple sessions and 2) using a multi-session dataset) on an adapted version of the example hare dataset. Based on our earlier correspondence, I was expecting both methods to give me the same esa but it seems not to be so! I’ve attached the R script and data that I’m using. Would it be possible for you to take a look and let me know what I am doing wrong, and/or help me understand why the esa is different depending on if I collapse the data into one session or spread it out over multiple session? In the multi-session approach, is the esa determined using the captures from each individual session?

 

Much appreciated and looking forward to hearing from you,

 

Laura

 

 

 

 

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

hareCH6trap.txt
hareCH6capt.txt
secr_single_vs_multisession_comparison.R

Murray Efford

unread,
Sep 14, 2017, 7:45:14 PM9/14/17
to secr
Hi
The detection parameter estimates differ subtly between your single and mult-session model fits, hence the difference in esa. This is something to do with your trapping restriction, but I haven't dug into it. I cleaner comparison can be got by just collapsing two sessions (below) but maybe you have something else in mind?
Murray

grid <- make.grid(8,8)
CH
<- sim.capthist(grid, popn=list(D = 5, buffer = 100), nsessions = 2, noccasions = 5, seed = 321)
summary
(CH)
fit
.multisession <- secr.fit(CH, trace = FALSE)
fit
.singlesession <- secr.fit(rbind(CH), trace = FALSE)  # assumes latest secr, otherwise rbind.capthist(CH)
derived
(fit.singlesession)
derived
(fit.multisession)

> derived(fit.singlesession)
    estimate SE.estimate      lcl      ucl   CVn        CVa      CVD
esa  
4.83883          NA       NA       NA    NA         NA       NA
D  
13.22634    1.777937 10.17489 17.19292 0.125 0.04944496 0.134424

> derived(fit.multisession)
$`1`
    estimate SE
.estimate      lcl      ucl       CVn        CVa       CVD
esa
4.838831          NA       NA       NA        NA         NA        NA
D  
6.406507    1.193449 4.460709 9.201077 0.1796053 0.04944496 0.1862871

$
`2`
    estimate SE
.estimate      lcl      ucl       CVn        CVa       CVD
esa
4.838831          NA       NA       NA        NA         NA        NA
D  
6.819830    1.234141 4.797072 9.695514 0.1740777 0.04944496 0.1809636



On Friday, September 15, 2017 at 10:45:26 AM UTC+12, laurak wrote:

Hi Murray,

 

I’ve tried the two approaches (i.e. 1) collapsing data collected over multiple sessions and 2) using a multi-session dataset) on an adapted version of the example hare dataset. Based on our earlier correspondence, I was expecting both methods to give me the same esa but it seems not to be so! I’ve attached the R script and data that I’m using. Would it be possible for you to take a look and let me know what I am doing wrong, and/or help me understand why the esa is different depending on if I collapse the data into one session or spread it out over multiple session? In the multi-session approach, is the esa determined using the captures from each individual session?

From: secr...@googlegroups.com [mailto:secrgroup@googlegroups.com] On Behalf Of Murray Efford
Sent: Wednesday, September 13, 2017 2:43 PM
To: secr <secr...@googlegroups.com>
Subject: Re: Detector clusters and separate density estimates across clusters

 

To be clear, derived() works with any of the usual models (CL or not CL) and doesn't require mashing. It does the full Horvitz-Thompson thing, summing reciprocals of individual-specific esa (useful if there are individual covariates), and provides SE and confidence intervals. Your n/esa gives the same result when all individuals have the same esa.
Murray

On Thursday, September 14, 2017 at 3:32:03 AM UTC+12, laurak wrote:

Hi Murray,

Many thanks for the very helpful and prompt response! I will try both the manual way of calculating cluster-specific density estimates and the multi-session approach to see if I can get similar outputs.

You mentioned that the manual way of calculating cluster-specific density estimates that I described is ‘almost exactly what 'secr' does if you use derived() with a (conditional likelihood, CL = TRUE) model fitted to a multi-session dataset’. Out of curiosity, what is the difference between the two approaches?

Thanks again!

Much appreciated,

Laura

 

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+unsubscribe@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "secr" group.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+unsubscribe@googlegroups.com.

Laura Keating

unread,
Sep 15, 2017, 6:49:45 PM9/15/17
to Murray Efford, secr

Thank you so much Murray! That is a much cleaner comparison, and I also see what you mean about different results due to different trapping restrictions. I really appreciate you sending the code snippet.

 

Much appreciated,

 

Laura

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

From: secr...@googlegroups.com [mailto:secr...@googlegroups.com] On Behalf Of Murray Efford
Sent: Thursday, September 14, 2017 5:45 PM
To: secr <secr...@googlegroups.com>
Subject: Re: Detector clusters and separate density estimates across clusters

 

Hi

From: secr...@googlegroups.com [mailto:secr...@googlegroups.com] On Behalf Of Murray Efford
Sent: Wednesday, September 13, 2017 2:43 PM
To: secr <secr...@googlegroups.com>
Subject: Re: Detector clusters and separate density estimates across clusters

 

To be clear, derived() works with any of the usual models (CL or not CL) and doesn't require mashing. It does the full Horvitz-Thompson thing, summing reciprocals of individual-specific esa (useful if there are individual covariates), and provides SE and confidence intervals. Your n/esa gives the same result when all individuals have the same esa.
Murray

On Thursday, September 14, 2017 at 3:32:03 AM UTC+12, laurak wrote:

Hi Murray,

Many thanks for the very helpful and prompt response! I will try both the manual way of calculating cluster-specific density estimates and the multi-session approach to see if I can get similar outputs.

You mentioned that the manual way of calculating cluster-specific density estimates that I described is ‘almost exactly what 'secr' does if you use derived() with a (conditional likelihood, CL = TRUE) model fitted to a multi-session dataset’. Out of curiosity, what is the difference between the two approaches?

Thanks again!

Much appreciated,

Laura

 

 

Thank you for supporting wildlife conservation,

Laura Keating
Conservation Research Analyst

T 403-232-9379

1300 Zoo Road NE
Calgary, AB T2E 7V6
calgaryzoo.com

As a not-for-profit charitable institution, the Calgary Zoo is a conservation leader whose mission is to take and inspire action to sustain wildlife and wild places.

Please think of the environment before printing this e-mail.
This email may contain confidential and/or privileged information for the sole use of the intended recipient. Any review or distribution by others is strictly prohibited. If you have received this email in error, please contact the sender immediately and delete all copies.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "secr" group.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "secr" group.

To unsubscribe from this group and stop receiving emails from it, send an email to secrgroup+...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages