Missing occasions on per-individual basis

Forum for discussion of general questions related to study design and/or analysis of existing data - software neutral.

Missing occasions on per-individual basis

Postby bmerriell » Sat Nov 16, 2019 6:52 pm

Hello,

I’m working with a colleague who has some unusual mark-recapture data. What makes the data ‘unusual’ is that their data has missing sampling occasions on a per-individual basis. The sampling protocol wasn’t designed with a mark-recapture analysis in mind, but now they would like to get a survival estimate if at all possible, so I’m trying to determine if any modeling framework could accomplish this. More on the sampling protocol below.

My colleague is working with a species of tree frog in the Amazon. The biology of the frog in question is such that it is only found to occur on a single species of tree, and dispersal from one tree to another is extremely low. My colleague conducted field surveys over the course of 4 seasons (2018 dry, 2018 wet, 2019 dry, and 2019 wet). During each season, he surveyed individual trees for the frog species in question and collected samples of their toxic secretion. However, in each season, he surveyed a different number of trees:

2018 dry: 15 trees
2018 wet: 8 trees (no new trees surveyed, only returned to trees previously surveyed in 2018 dry)
2019 dry: 38 trees (returned to the 15 trees previously surveyed, plus 23 new trees surveyed)
2019 wet: 37 trees (returned to all but 1 tree surveyed in 2019 dry)

This sampling procedure resulted in individual frogs having missing encounter data depending on which tree they resided on. Below is a subset of the encounter histories:

Code: Select all
1100
1110
..11
0.1.
0.10


Any thoughts on how to approach this analysis would be appreciated!

~Brandon
bmerriell
 
Posts: 2
Joined: Fri Nov 15, 2019 4:13 pm
Location: University of Florida

Re: Missing occasions on per-individual basis

Postby murray.efford » Sun Nov 17, 2019 12:00 am

This can be handled as a spatial capture-recapture problem with detector- (tree-) specific effort. In openCR one sets the usage (effort) matrix to zero for tree x occasion combinations that were not sampled. As there are no movement data to estimate the spatial scale of detection (sigma) this is fixed at some arbitrary value (check that changing sigma does not affect estimates).

It can be fiddly, especially if you're not familiar with the spatial software. Is there a non-spatial alternative, anyone?

I mocked up some data with phi = 0.8 and f = 0.2 (lambda=1) and got these results

Code: Select all
library(openCR)
[...input data as ch1]
[... set usage(traps(ch1))]

summary(ch1)
Object class       capthist
Detector type      proximity (4)
Detector number    38
Average spacing    20 m
x-range            0 360 m
y-range            0 20 m

 Usage range by occasion
    1 2 3 4
min 0 0 1 0
max 1 1 1 1

Counts by occasion
                    1  2   3   4 Total
n                  42 21 107  74   244
u                  42 19  98  58   217
f                 193 21   3   0   217
M(t+1)             42 61 159 217   217
losses              0  0   0   0     0
detections         42 21 108  74   245
detectors visited  14  8  35  31    88
detectors used     15  8  38  37    98

Individual covariates
 sex   
 F:108 
 M:109 

fit <- openCR.fit(ch1, mask = mask, type = 'JSSAsecrfCL', fixed = list(sigma=2))
fit

openCR.fit( capthist = ch1, type = JSSAsecrfCL, mask = mask, fixed = list(sigma
  = 2) )
openCR 1.4.1, 16:55:10 17 Nov 2019
elapsed time 0.011 minutes

N animals       :  217 
N detections    :  245
N sessions      :  4
Intervals       :  1 1 1

Analysis type   :  JSSAsecrfCL
Model           :  lambda0~1 phi~1 f~1
Fixed (real)    :  sigma = 2
Movement model  :  static
N parameters    :  3
Log likelihood  :  -1051.815
AIC             :  2109.63
AICc            :  2109.742

Parameter Link
lambda0   log
phi       logit
f         log
sigma     log

Beta parameters (coefficients)
             beta   SE.beta        lcl       ucl
lambda0 -1.958125 0.3564835 -2.6568195 -1.259430
phi      1.455107 0.9822366 -0.4700412  3.380256
f       -2.464729 1.8132903 -6.0187126  1.089255

Eigenvalues :  1 0.47021 0.00985
Numerical rank of Hessian : 3  ( svtol = 1e-05 )

Variance-covariance matrix of beta parameters
           lambda0        phi          f
lambda0  0.1270805 -0.2802836  0.5137023
phi     -0.2802836  0.9647888 -1.6764352
f        0.5137023 -1.6764352  3.2880219

Fitted (real) parameters evaluated at base levels of covariates

 lambda0
 session  estimate SE.estimate        lcl       ucl
       1 0.1411228  0.05030794 0.07017104 0.2838157
       2 0.1411228  0.05030794 0.07017104 0.2838157
       3 0.1411228  0.05030794 0.07017104 0.2838157
       4 0.1411228  0.05030794 0.07017104 0.2838157

 phi
 session  estimate SE.estimate       lcl       ucl
       1 0.8107832   0.1506887 0.3846065 0.9670817
       2 0.8107832   0.1506887 0.3846065 0.9670817
       3 0.8107832   0.1506887 0.3846065 0.9670817
       4        NA          NA        NA        NA

 f
 session  estimate SE.estimate       lcl      ucl
       1 0.0850319   0.1541875 0.0024328 2.972059
       2 0.0850319   0.1541875 0.0024328 2.972059
       3 0.0850319   0.1541875 0.0024328 2.972059
       4        NA          NA        NA       NA
murray.efford
 
Posts: 582
Joined: Mon Sep 29, 2008 7:11 pm
Location: Dunedin, New Zealand

Re: Missing occasions on per-individual basis

Postby simone77 » Sun Nov 17, 2019 4:00 am

I like very much the approach suggested by Murray Efford, In your place, I would probably take the opportunity to learn something about SECR, it's worth it!

However, I wonder what happens if you analyze your dataset (like you built it) in MARK. I'm not very used to using the dot notation of MARK for missing values, but doesn't it work for this case? Another way, that I suspect to be completely equivalent to using dots for missing values (in MARK), would be to define 11 groups according to the sessions when they have missing values. I say 11 groups because I would keep in the dataset only those individuals that have been sampled (I do not mean detected/captured – I mean they have been given the possibility of being detected/captured) at least twice. So, these would be the groups:

G1 = no missing values
G2 = ses1 (missing value in session 1)
G3 = ses2
G4 = ses3
G5 = ses4
G6 = ses1 & ses2
G7 = ses1 & ses3
G8 = ses1 & ses4
G9 = ses2 & ses3
G10 = ses2 & ses4
G11 = ses3 & ses4

Then, in MARK or E-SURGE, or whatever other programs you are familiar with, I would set the corresponding detection probabilities to zero.
simone77
 
Posts: 160
Joined: Mon Aug 10, 2009 2:52 pm

Re: Missing occasions on per-individual basis

Postby bmerriell » Sun Nov 17, 2019 9:36 pm

Thank you Murray and Simone for the suggestions! I'll spend some time learning about spatial capture-recapture.

simone77 wrote:However, I wonder what happens if you analyze your dataset (like you built it) in MARK. I'm not very used to using the dot notation of MARK for missing values, but doesn't it work for this case? Another way, that I suspect to be completely equivalent to using dots for missing values (in MARK), would be to define 11 groups according to the sessions when they have missing values.


Based on my understanding, I believe MARK should be able to accommodate the missing values in the sense that it will run the analysis. My concern is how that will effect the robustness of the parameter estimates - to be clear, I'm not sure that it does, but I'm also not sure that it doesn't. That bit of uncertainty makes me hesitant.

Defining 11 groups and fixing the appropriate detection probabilities to zero would be straightforward enough - and has the added benefit that I understand how MARK would handle such a scenario. I'll give this a shot as well, although with only 160 individuals in the dataset, the estimated parameters will probably have rather large standard errors...
bmerriell
 
Posts: 2
Joined: Fri Nov 15, 2019 4:13 pm
Location: University of Florida

Re: Missing occasions on per-individual basis

Postby cooch » Mon Nov 18, 2019 9:04 am

simone77 wrote:I like very much the approach suggested by Murray Efford, In your place, I would probably take the opportunity to learn something about SECR, it's worth it!

However, I wonder what happens if you analyze your dataset (like you built it) in MARK. I'm not very used to using the dot notation of MARK for missing values, but doesn't it work for this case?


Yes, it does. The 'dot' notation works for a fair number of the data types in MARK, including simple CJS and other open models. Simply open up MARK, and access 'Help | Data Types'. The various MARK data types that can handle 'dots' in the encounter histories are indicated.

Having said that, I rather like Murray's suggestion. Might be overkill (to some degree)_ for these data, but in the long(er) run...
cooch
 
Posts: 1441
Joined: Thu May 15, 2003 4:11 pm
Location: Cornell University


Return to analysis & design questions

Who is online

Users browsing this forum: No registered users and 1 guest