We illustrate mark-resighting with a simple example (built into RMark) in which there are 2 groups and a single resighting occasion. There are 60 known marks in the first group but no known marks in the second (e.g., possibly some marked animals were able to wander into this area from either the known group or other areas). The capture histories for the first 10 marked individuals resighted in group 1 look likt this:
>data(Poisson_twoMR)
>Poisson_twoMR
ch pg
1 02 group1
2 03 group1
3 03 group1
4 01 group1
5 01 group1
6 01 group1
7 02 group1
8 09 group1
9 05 group1
10 01 group1
indicating that for example animal 3 was seen 3 times. Occasionally "+0" appears in the capture history, which simply indicates that the indicated animal was known to be available but was not seen on either occasoin, for example:
46 03 group1
47 +0 group1
48 06 group1
Two additional pieces of information are needed: the number of detections of unmarked animals in each group, and the number of detections of marked animals that could not be indentified. Since in neither case are these identifiable to individual, these are simply summary counts. These data along with the resighting histories are read into RMark and the PoissonMR model is specified, with pg as the group indicator (group1 or group2)
>pois.proc=process.data(Poisson_twoMR,model="PoissonMR",groups="pg",
counts=list("Unmarked Seen"=matrix(c(1237,588),nrow=2,ncol=1),
"Marked Unidentified"=matrix(c(10,5),nrow=2,ncol=1),
"Known Marks"=matrix(c(60,0),nrow=2,ncol=1)))
>pois.ddl=make.design.data(pois.proc)
Models are constructed by first building design matrix (line above) and then specifying how the parameters U, alpha, and sigma vary; in this case the only possibly source of variation is with respect to groups. Since there is no sensible a priori reason why numbers of animals (and thus U) would be the same between groups (these could be portions of the study area, or males and females), I constructed 4 models allowing for variation (or not) in alpha and sigma but keeping U always group specific. For example, the model allowing all 3 parameter to vary is built by:
> mod4=mark(pois.proc,pois.ddl,
+ model.parameters=list(alpha=list(formula=~1+group),
+ U=list(formula=~-1+group),
+ sigma=list(formula=~1+group)),
+ initial=mod1,threads=2)
In the attached code I build and compare all 4 models using the collect.models() function that will construct an AIC summary table:
> collect.models()
model npar AICc DeltaAICc weight Deviance
1 alpha(~1)sigma(~1)U(~-1 + group) 4 374.3612 0.000000 0.51731422 365.9167
2 alpha(~1 + group)sigma(~1)U(~-1 + group) 5 376.0682 1.707073 0.22032727 365.3941
3 alpha(~1)sigma(~1 + group)U(~-1 + group) 5 376.3533 1.992163 0.19105647 365.6792
4 alpha(~1 + group)sigma(~1 + group)U(~-1 + group) 6 378.3246 3.963451 0.07130204 365.3701
The table indicates that the simplest model of the 4 performs best based on AIC. Examing the estimates under this model we have:
> summary(mod1)
Output summary for PoissonMR model
Name : alpha(~1)sigma(~1)U(~-1 + group)
Npar : 4
-2lnL: 365.9167
AICc : 374.3612
Beta
estimate se lcl ucl
alpha:(Intercept) 0.9341174 0.0800723 0.7771756 1.0910592
sigma:(Intercept) -1.3204936 0.4674497 -2.2366951 -0.4042921
U:groupgroup1 6.0889243 0.0739096 5.9440615 6.2337870
U:groupgroup2 5.3539907 0.0818934 5.1934797 5.5145017
Real Parameter alpha
1
Group:pggroup1 2.544966
Group:pggroup2 2.544966
Real Parameter sigma
1
Group:pggroup1 0.2670035
Group:pggroup2 0.2670035
Real Parameter U
1
Group:pggroup1 440.9468
Group:pggroup2 211.4504
>
Notice that we can get a somewhat more verbose output from MARK by the command
mod1
which produced a notepad file containing detailed output, in particular, SEs and confidence intervals for N and other "derived" parameters:
Estimates of Derived Parameters
Population Estimates of { alpha(~1)sigma(~1)U(~-1 + group) }
95% Confidence Interval
Grp. Occ. N-hat Standard Error Lower Upper
---- ---- -------------- -------------- -------------- --------------
1 1 500.94681 32.590259 441.03410 568.99843
2 1 246.99367 17.749865 214.58186 284.30116
Mean Resighting Rate Estimates of { alpha(~1)sigma(~1)U(~-1 + group) }
95% Confidence Interval
Grp. Occ. Lambda-hat Standard Error Lower Upper
---- ---- -------------- -------------- -------------- --------------
1 1 2.8039855 0.1882162 2.4586822 3.1977839
2 1 2.7779926 0.1902567 2.4294158 3.1765838
The R script containing this example is here.
Some noteworthy points
Notice that in the first model I specified initial values for the parameters (these are on the log scale) but the other models use the results of this model as initial values. This is important because the PoissonMR model (and other mark-resight models) tend to be sensitive to initial values and sometimes will not converge to sensible results if these values are too far off.
In practice it often requires an initial run using MARK directly (in the GUI) to get good model results, that can then be used as initial values in RMark. Running RMark always generates *.inp files that can be used directly in MARK to run some models for comparison, or to get good starting values.
Immigration-emigration logit-normal estimator (IELNE)
Under this data structure and model, one of the differences with the zPNE is that the number of marks have to be known, and animals have to be sampled without replacement (counted only once per occasion). For more differences between the data structures refer to (McClintock and White 2012)
We will use an example in RMark, where population is closed within primary periods, in this case there are 3 primary periods, of 4 secondary each.
In addition to the encounter history, we need to indicate the number of individuals marked in each occasion (Marked superpopulation), the number of unmarked individuals in each occasion, and we can also incorporate the number on marked individuals that couldn’t be identified.
Here, the parameters are:
• Nj *= Superpopulation size during primary period j
• N̄j = Mean population size within the study area during primary period j
• αij = the difference between the population size within the study area during secondary occasion i of primary interval j and the mean population size during primary interval j (Nij - N̄j)
• pij = Intercept (on the logit scale) for mean resighting probability of secondary occasion i during primary period j
• σj = Individual heterogeneity (on the log-logit scale) in resighting probabilities during primary period j.
R script to access example data and run a "global" model (all parameters vary between primary sessions).