Home > Stats Toolbox > Spatial and Species Distribution Toolboxes > Estimating survival from CMR data

Estimating survival from CMR data

SEEC Toolbox on estimating survival from CMR data

In this Toolbox Seminar, we are looking at how to estimate survival from capture-mark-recapture data (watch the seminar here). The survey design involved capturing a number of individuals, marking them so that they become uniquely identifyable and then release them again (unharmed!). At a later point in time, one captures another sample of individuals from the same population and checks them for marks. Unmarked individuals are marked and then all individuals (previously marked and newly marked) are released again. We do that a few times (at least 3 occasions are needed to get a survival estimate), each time leaving a time gap that corresponds to the interval over which we want to estimate survival. For example for annual survival, we would do one survey each year, ideally at about the same time (but the models can deal with unequal time intervals).

With this design, we end up with a capture history – the information on whether an individual was captured or not at each occasion – for each individual. So for example, one individual might have the capture history 1101000. That means, this individual was marked on the first occasion, recaptured on the second occasion, then not seen on the third occasion but recaptured again on the forth and then never seen again. If your study is long enough, all individuals will eventually disappear but you won’t know when each of them died. All you know is when it was last seen. That information gives us an indication of the individual’s life span but it is an underestimate. The challenge is therefore to estimate how long an individual lived after you last saw it. And that estimate depends on the recapture probability: always manage to capture all individuals that are alive and present in the population, then not seeing an individual means that it has died (or is no longer present in the population). On the other hand, if your recapture probability is low, individuals can go undetected for quite a long time. So estimating the recapture probability is key to obtaining an unbiased survival estimate.

The capture histories actually do contain information on the recapture probability: it is in these `internal’ zeros, i.e. when we miss an individual but recapture it again later. We then know that the individual must always have been alive but we failed to capture it. Getting capture histories with lot of internal zeros means that our recapture probability is relatively low, compare to the case where we rarely have internal zeros in our capture histories.

Capture-mark-recapture methods are designed to estimate survival while accounting for the recapture probability. Here, I will use a data set on hadedas (Bostrychia hagedash) to illustrate these methods and how they are implemented in program MARK. Click here for the slides and find the data for ringing here and resightings here. We will use MARK through the R package RMark. You can get program MARK from here. Make sure to read the detailed and excellent ‘Gentle Introduction to Program MARK’, also known as the ‘MARK book’. You also need to R package RMark, which you can install from CRAN. You need both to run the code below.

install.packages(RMark)

Data wrangling

The data are from a project that Doug Harebottle and I started in 2006. We went to every hadeda nest that we could find around Cape Town and ringed the nestlings (lots of tree climbing). We ringed them with a numbered SAFRING metal ring and a colour ring with a unique 2-character code. The colour ring can be read from a distance, e.g. with binoculars but also off photos, and sometimes the birds get close enough that their rings can be read by eye. So all our ‘recaptures’ are actually ‘re-sightings’. And all our birds were ringed as nestlings.

First load a few R packages that we are going to need:

library(R2ucare)
library(RMark)
library(tidyverse)
library(readxl)
library(lubridate)

Exploring the data

Our data are in two separate Excel tables: one called “ringingMay2017.xlsx” holds all the ringing data, i.e. the data we recorded each time we ringed a new individual; the other is called “resightingsMay2017.xlsx” and holds all the resightings that we collected or that were reported to us.

(As an aside, I don’t recommend storing your important data in Excel. Excel can do all sorts of damage to your data sets. But here we go…)

We first read the data in, check that evreything looks fine and then extract the year from the date variable.

ringing<-read_excel("ringingMay2017.xlsx")    # table with ringing data
ringing$type<-"r"
head(ringing); tail(ringing)
## # A tibble: 6 x 22
##   Ring_No cring `Colour of Colo… Capture_Date         nest brood   Age   Sex
##   <chr>   <chr> <lgl>            <dttm>              <dbl> <dbl> <dbl> <dbl>
## 1 878509  -     NA               2008-12-11 00:00:00    66   299     1     0
## 2 871551  AA    NA               2006-08-31 00:00:00     1     1     1     0
## 3 871552  AB    NA               2006-08-31 00:00:00     1     1     1     0
## 4 871553  AC    NA               2006-09-13 00:00:00     2     4     1     0
## 5 871554  AD    NA               2006-09-13 00:00:00     2     4     1     0
## 6 871555  AF    NA               2006-09-26 00:00:00     4    19     1     0
## # … with 14 more variables: Mass <dbl>, Wing <dbl>, Tail <dbl>, Tarsus <dbl>,
## #   Culmen <dbl>, Head <dbl>, `Parent Ring ID` <chr>, Notes <chr>,
## #   Canada_ring_leg <chr>, blood <chr>, number <dbl>, F1 <chr>, ringer <chr>,
## #   type <chr>
## # A tibble: 6 x 22
##   Ring_No cring `Colour of Colo… Capture_Date         nest brood   Age   Sex
##   <chr>   <chr> <lgl>            <dttm>              <dbl> <dbl> <dbl> <dbl>
## 1 878581  VN    NA               2009-11-02 00:00:00   187   384     1     0
## 2 878570  VP    NA               2009-10-21 00:00:00    NA    NA     1     0
## 3 878572  VS    NA               2009-11-13 00:00:00   188   386     1     0
## 4 878573  VT    NA               2009-11-25 00:00:00   189   388     1     0
## 5 878574  VU    NA               2009-11-25 00:00:00   121   387     1     0
## 6 878575  VV    NA               2009-11-25 00:00:00   121   387     1     0
## # … with 14 more variables: Mass <dbl>, Wing <dbl>, Tail <dbl>, Tarsus <dbl>,
## #   Culmen <dbl>, Head <dbl>, `Parent Ring ID` <chr>, Notes <chr>,
## #   Canada_ring_leg <chr>, blood <chr>, number <dbl>, F1 <chr>, ringer <chr>,
## #   type <chr>
ringing$year <- as.numeric(year(ringing$Capture_Date))

resight<-read_excel("resightingsMay2017.xlsx")      # table with resightings
head(resight); tail(resight)
## # A tibble: 6 x 20
##       ID date                time                locality south east  type 
##    <dbl> <dttm>              <dttm>              <chr>    <chr> <chr> <chr>
## 1 5.62e7 2017-04-27 00:00:00 NA                  61 Ring… <NA>  <NA>  l    
## 2 5.62e7 2017-04-25 00:00:00 1899-12-31 08:00:00 Constan… <NA>  <NA>  l    
## 3 5.62e7 2017-04-25 00:00:00 1899-12-31 08:00:00 Constan… <NA>  <NA>  l    
## 4 5.62e7 2017-04-25 00:00:00 1899-12-31 08:00:00 Constan… <NA>  <NA>  l    
## 5 5.62e7 2017-03-17 00:00:00 1899-12-31 16:00:00 lower C… <NA>  <NA>  l    
## 6 5.62e7 2017-03-05 00:00:00 NA                  61 Ring… <NA>  <NA>  l    
## # … with 13 more variables: cring <chr>, comments <chr>, observer <chr>,
## #   Field1 <chr>, Field2 <chr>, Tarsus <lgl>, Culmen <lgl>, Head <lgl>, `Parent
## #   Ring ID` <lgl>, Notes <chr>, Canada_ring_leg <lgl>, blood <lgl>,
## #   number <lgl>
## # A tibble: 6 x 20
##      ID date                time                locality south east  type  cring
##   <dbl> <dttm>              <dttm>              <chr>    <chr> <chr> <chr> <chr>
## 1     7 2006-10-07 00:00:00 NA                  2 Tanja… 3400… 1825… d     AH   
## 2     5 2006-09-30 00:00:00 NA                  2 Tanja… 3400… 1825… d     AF   
## 3     4 2006-09-22 00:00:00 NA                  Die Oog… 3402… 1826… l     AB   
## 4     3 2006-09-22 00:00:00 NA                  Die Oog… 3402… 1826… l     AA   
## 5     1 2006-09-11 00:00:00 NA                  Die Oog… 3402… 1826… l     AA   
## 6     2 2006-09-11 00:00:00 NA                  Die Oog… 3402… 1826… l     AB   
## # … with 12 more variables: comments <chr>, observer <chr>, Field1 <chr>,
## #   Field2 <chr>, Tarsus <lgl>, Culmen <lgl>, Head <lgl>, `Parent Ring
## #   ID` <lgl>, Notes <chr>, Canada_ring_leg <lgl>, blood <lgl>, number <lgl>
resight$year <- as.numeric(year(resight$date))

Most birds were seen alive but we had a few cases where hadedas died or were killed (mostly by cars) and then someone found the body and reported the ring, called ‘dead recoveries’. This info is stored in the variable ‘type’ (‘l’ for live and ‘d’ for dead). How many observations do we have of each type?

table(resight$type)
## 
##    *    d    l 
##    1   30 1418

So 1418 resightings of live birds (some individuals were seen many times) and 30 individuals were found dead. There was also one odd case where one of our birds was found living at a rehab place (’*’).

Clearly, the dead recoveries contain important information on survival and these data could be used in the analyses. But for now, we will concentrate on the live resighting data and ignore dead recoveries.

resight.l<-resight[resight$type=="l",]  # selects live resightings (as opposed to dead recoveries)

When were these resightings made?

table(resight.l$year)
## 
## 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 
##   43   78  154  451  282  134  102   77   45   31   11   10

We note that most resightings were made up to 2013 and relatively fewer after that. This gives us a rough idea of the effort but not of how many individuals were seen.

table(ringing$year)
## 
## 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 
##   27   65   47   75   26    3   10    4    1    2    1

Tabulating the number of birds ringed each year shows that we did most of our effort between 2006 and 2010 with a few more birds ringed up to 2016.

So, even though the data include observations up to 2017, we have relatively little data to estimate survival in the later years. Also, we need to keep in mind that we have very few new birds added after 2010 and so little information on survival of young birds after that.

Creating capture histories

Next, we need to turn these data into capture histories, which is the format we will need for the analysis. We want annual survival and want to record for each individual whether it was seen in a particular year or not.

We first put the two data sets together. We only really need the ring number (or the code on the colour ring ‘cring’) and the year in which each sighting was made. So we only retain those two columns of each data frame, row-bind them and then check that all looks good.

data.live<-rbind(ringing[,c("cring","year")],resight.l[,c("cring","year")])
head(data.live); tail(data.live)
## # A tibble: 6 x 2
##   cring  year
##   <chr> <dbl>
## 1 -      2008
## 2 AA     2006
## 3 AB     2006
## 4 AC     2006
## 5 AD     2006
## 6 AF     2006
## # A tibble: 6 x 2
##   cring  year
##   <chr> <dbl>
## 1 AJ     2006
## 2 AI     2006
## 3 AB     2006
## 4 AA     2006
## 5 AA     2006
## 6 AB     2006

A quick way of getting something that is close to a capture history is tabulating the number of observations we have for each individual by year. Then, we just turn all numbers greater than 1 into 1, i.e. we ignore multiple resightings of the same individual in a specific year and just record that the individual was seen that year.

ch <- table(data.live$cring,data.live$year)  # tabluate number of encounters per individual and year (this is close to the capture histories we need)
ch[ch>1] <- 1  # turn multiple resightings into '1'

Here we’ve got our capture history:

head(ch)
##     
##      2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017
##   -     0    0    1    0    0    0    0    0    0    0    0    0
##   AA    1    0    0    0    0    0    0    0    0    0    0    0
##   AB    1    0    0    0    0    0    0    0    0    0    0    0
##   AC    1    0    0    0    0    0    0    0    0    0    0    0
##   AD    1    0    0    0    0    0    0    0    0    0    0    0
##   AF    1    0    0    0    0    0    0    0    0    0    0    0
dim(ch)
## [1] 261  12

So we have data on 261 individuals for 12 years.

Input file for using MARK as standalone program

MARK has a user-friendly graphical user interface and I recommend that you use MARK via this interface until you are familiar with its main features. The downside of menu-driven software is of course reproducibility. Your final analysis should be code-driven, hence RMark.

To use MARK via the graphical user interface, you need to have your data in a certain format (see MARK book). The code below creates the .inp file you need:

write.table(cbind(ch," ",1,";"),"hadeda.inp",sep="",row.names=F,col.names=F,quote=F)        

The MARK GUI likes to live in a Windows environment. You can get it to work on other platforms. It works quite ok for me on Ubuntu using wine.

However, some tweaks are sometimes needed. E.g. I had to open the file created with the above command in a text editor and re-save, making sure it uses UTF-8 encoding and the line ending says ‘Windows’ (not Linux/Unix).

Analysis using RMark

From here on, we’ll use RMark to communicate with MARK. The main advantage is that you will have reproducible code and therefore a much better chance to redo your exact analysis at a future point in time, e.g. when you get comments from examiners or reviewers.

We first need a little more data wrangling to get the data into the format RMark wants:

ch1 <- apply(ch, 1 , paste , collapse = "" )  # capture history needs to be single text column
hade <- data.frame(ch=ch1, group = 1)
hade$ch <- as.character(hade$ch)  # the capture histories need to be a character and entitled 'ch'

Now, we are ready to run our first model. Let’s go with all the defaults and see what happens:

# run default model Phi()P()
model1 <- mark(hade)
## 
## Output summary for CJS model
## Name : Phi(~1)p(~1) 
## 
## Npar :  2
## -2lnL:  964.9276
## AICc :  968.9553
## 
## Beta
##                   estimate        se        lcl        ucl
## Phi:(Intercept)  0.5803299 0.1004607  0.3834269  0.7772329
## p:(Intercept)   -0.3789708 0.1363474 -0.6462117 -0.1117300
## 
## 
## Real Parameter Phi
##  
##            1         2         3         4         5         6         7
## 1  0.6411433 0.6411433 0.6411433 0.6411433 0.6411433 0.6411433 0.6411433
## 2            0.6411433 0.6411433 0.6411433 0.6411433 0.6411433 0.6411433
## 3                      0.6411433 0.6411433 0.6411433 0.6411433 0.6411433
## 4                                0.6411433 0.6411433 0.6411433 0.6411433
## 5                                          0.6411433 0.6411433 0.6411433
## 6                                                    0.6411433 0.6411433
## 7                                                              0.6411433
## 8                                                                       
## 9                                                                       
## 10                                                                      
## 11                                                                      
##            8         9        10        11
## 1  0.6411433 0.6411433 0.6411433 0.6411433
## 2  0.6411433 0.6411433 0.6411433 0.6411433
## 3  0.6411433 0.6411433 0.6411433 0.6411433
## 4  0.6411433 0.6411433 0.6411433 0.6411433
## 5  0.6411433 0.6411433 0.6411433 0.6411433
## 6  0.6411433 0.6411433 0.6411433 0.6411433
## 7  0.6411433 0.6411433 0.6411433 0.6411433
## 8  0.6411433 0.6411433 0.6411433 0.6411433
## 9            0.6411433 0.6411433 0.6411433
## 10                     0.6411433 0.6411433
## 11                               0.6411433
## 
## 
## Real Parameter p
##  
##            2         3         4         5         6         7         8
## 1  0.4063751 0.4063751 0.4063751 0.4063751 0.4063751 0.4063751 0.4063751
## 2            0.4063751 0.4063751 0.4063751 0.4063751 0.4063751 0.4063751
## 3                      0.4063751 0.4063751 0.4063751 0.4063751 0.4063751
## 4                                0.4063751 0.4063751 0.4063751 0.4063751
## 5                                          0.4063751 0.4063751 0.4063751
## 6                                                    0.4063751 0.4063751
## 7                                                              0.4063751
## 8                                                                       
## 9                                                                       
## 10                                                                      
## 11                                                                      
##            9        10        11        12
## 1  0.4063751 0.4063751 0.4063751 0.4063751
## 2  0.4063751 0.4063751 0.4063751 0.4063751
## 3  0.4063751 0.4063751 0.4063751 0.4063751
## 4  0.4063751 0.4063751 0.4063751 0.4063751
## 5  0.4063751 0.4063751 0.4063751 0.4063751
## 6  0.4063751 0.4063751 0.4063751 0.4063751
## 7  0.4063751 0.4063751 0.4063751 0.4063751
## 8  0.4063751 0.4063751 0.4063751 0.4063751
## 9            0.4063751 0.4063751 0.4063751
## 10                     0.4063751 0.4063751
## 11                               0.4063751

We can see that RMark has made MARK fit a Cormack-Jolly-Seber (CJS) model with constand survival (Phi) and recapture (p) probabilities.

For now, this isn’t such a useful model and we don’t need it yet. MARK creates a number of files in your working directory and so it is a good idea to properly remove models you don’t need any more. With the rm command, we remove the model from our work space and with the cleanup command, we remove the associated files (now ‘orphaned’) from our working directory.

rm(model1) # remove a model
cleanup(ask=FALSE)  # removes 'orphaned' files

To run the models we are interested in, we need to take a bit more control of the process, rather than going with all the defaults. It turns out that when we called the mark function above, it carried out a number of processing steps in the background. We now do these steps explicitly. The first step is to process the data and it is her that we can tell MARK what kind of analysis we want to do. In our case, we want to fit CJS-type of models. We can also tell MARK that our first occasion was the year 2006.

The next step is to create the design data, i.e. all the columns we might need for the design matrix of any of our models. The concept of design matrix is a bit special here and this is where it helps to first get to grips with how MARK works before trying to steer it via RMark. The concept is slightly different from what it is in linear models but the ideas are the same. In MARK, the design matrix maps an underlying flexible model structure (where every possible survival and recapture probability has its own parameter in the case of RMark) onto a more constrained model that follows linear model thinking. Essentially, we will constrain the underlying parameters to be a linear combination of a series of ‘beta’ parameters. This allows us to estimate survival and recapture probabilities as a function of covariates and to build additive models.

Let’s run these two steps and have a look at the design data for survival and recapture.

# take a bit more control
hade.process <- process.data(hade,model="CJS", begin.time=2006)
hade.ddl <- make.design.data(hade.process)
head(hade.ddl$Phi)
##   par.index model.index group cohort age time occ.cohort Cohort Age Time
## 1         1           1     1   2006   0 2006          1      0   0    0
## 2         2           2     1   2006   1 2007          1      0   1    1
## 3         3           3     1   2006   2 2008          1      0   2    2
## 4         4           4     1   2006   3 2009          1      0   3    3
## 5         5           5     1   2006   4 2010          1      0   4    4
## 6         6           6     1   2006   5 2011          1      0   5    5
head(hade.ddl$p)
##   par.index model.index group cohort age time occ.cohort Cohort Age Time
## 1         1          67     1   2006   1 2007          1      0   1    0
## 2         2          68     1   2006   2 2008          1      0   2    1
## 3         3          69     1   2006   3 2009          1      0   3    2
## 4         4          70     1   2006   4 2010          1      0   4    3
## 5         5          71     1   2006   5 2011          1      0   5    4
## 6         6          72     1   2006   6 2012          1      0   6    5

With the design data in place, we need to set up some model structures. Following standard notation, ‘dot’ refers to the constant model.

dot <- list(formula=~1)
time <- list(formula=~time)
age <- list(formula=~age)
timeage <- list(formula=~time + age)

Now, we are ready to run some models. Let’s first run the fully time-dependent model, i.e. survival and recapture probabilities are allowed to vary from year to year.

Phi.time.P.time <- mark(hade.process,hade.ddl,model.parameters=list(Phi=time, p=time))
## 
## Note: only 21 parameters counted of 22 specified parameters
## AICc and parameter count have been adjusted upward
## 
## Output summary for CJS model
## Name : Phi(~time)p(~time) 
## 
## Npar :  22  (unadjusted=21)
## -2lnL:  930.9508
## AICc :  977.4012  (unadjusted=975.18273)
## 
## Beta
##                   estimate          se          lcl         ucl
## Phi:(Intercept)  1.0822087   1.3641367   -1.5914993   3.7559168
## Phi:time2007    -1.6754363   1.5170495   -4.6488534   1.2979809
## Phi:time2008     0.3786464   1.6348750   -2.8257086   3.5830014
## Phi:time2009    -0.3607545   1.4596715   -3.2217107   2.5002016
## Phi:time2010    -1.2869290   1.4071798   -4.0450014   1.4711434
## Phi:time2011     1.0321527   2.4062831   -3.6841623   5.7484676
## Phi:time2012    -0.8350509   1.4660599   -3.7085285   2.0384266
## Phi:time2013     1.2778288   2.8638457   -4.3353087   6.8909664
## Phi:time2014    -0.9928638   1.4787792   -3.8912710   1.9055435
## Phi:time2015    -0.5416363   1.7369783   -3.9461139   2.8628413
## Phi:time2016    -0.1193493 310.6679600 -609.0285500 608.7898500
## p:(Intercept)   -0.4192546   0.7072455   -1.8054558   0.9669466
## p:time2008      -0.0033050   0.8439037   -1.6573562   1.6507463
## p:time2009      -0.3403823   0.7875442   -1.8839689   1.2032043
## p:time2010       0.0994832   0.7788217   -1.4270075   1.6259738
## p:time2011       0.3706798   0.7908849   -1.1794545   1.9208141
## p:time2012      -0.0777099   0.8165128   -1.6780750   1.5226553
## p:time2013      -0.1785822   0.8237765   -1.7931841   1.4360198
## p:time2014       0.6192760   0.8699408   -1.0858081   2.3243600
## p:time2015       1.5384861   1.0733044   -0.5651906   3.6421627
## p:time2016       0.2650998   1.0911840   -1.8736209   2.4038206
## p:time2017       0.7923174 210.4966800 -411.7811800 413.3658200
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.7469117 0.3558947 0.8116634 0.6729272 0.4489979 0.8922912 0.5614768
## 2007           0.3558947 0.8116634 0.6729272 0.4489979 0.8922912 0.5614768
## 2008                     0.8116634 0.6729272 0.4489979 0.8922912 0.5614768
## 2009                               0.6729272 0.4489979 0.8922912 0.5614768
## 2010                                         0.4489979 0.8922912 0.5614768
## 2011                                                   0.8922912 0.5614768
## 2012                                                             0.5614768
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013      2014      2015      2016
## 2006 0.9137288 0.5223214 0.6319456 0.7236939
## 2007 0.9137288 0.5223214 0.6319456 0.7236939
## 2008 0.9137288 0.5223214 0.6319456 0.7236939
## 2009 0.9137288 0.5223214 0.6319456 0.7236939
## 2010 0.9137288 0.5223214 0.6319456 0.7236939
## 2011 0.9137288 0.5223214 0.6319456 0.7236939
## 2012 0.9137288 0.5223214 0.6319456 0.7236939
## 2013 0.9137288 0.5223214 0.6319456 0.7236939
## 2014           0.5223214 0.6319456 0.7236939
## 2015                     0.6319456 0.7236939
## 2016                               0.7236939
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.3966951 0.3959044 0.3187251 0.4207315 0.4878587 0.3782543 0.3548388
## 2007           0.3959044 0.3187251 0.4207315 0.4878587 0.3782543 0.3548388
## 2008                     0.3187251 0.4207315 0.4878587 0.3782543 0.3548388
## 2009                               0.4207315 0.4878587 0.3782543 0.3548388
## 2010                                         0.4878587 0.3782543 0.3548388
## 2011                                                   0.3782543 0.3548388
## 2012                                                             0.3548388
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.5498393 0.7538461 0.4615374 0.5921988
## 2007 0.5498393 0.7538461 0.4615374 0.5921988
## 2008 0.5498393 0.7538461 0.4615374 0.5921988
## 2009 0.5498393 0.7538461 0.4615374 0.5921988
## 2010 0.5498393 0.7538461 0.4615374 0.5921988
## 2011 0.5498393 0.7538461 0.4615374 0.5921988
## 2012 0.5498393 0.7538461 0.4615374 0.5921988
## 2013 0.5498393 0.7538461 0.4615374 0.5921988
## 2014           0.7538461 0.4615374 0.5921988
## 2015                     0.4615374 0.5921988
## 2016                               0.5921988

Now have a look at the parameter estimates:

Phi.time.P.time$results$real   # parameter estimates     
##                         estimate         se           lcl       ucl fixed
## Phi g1 c2006 a0 t2006  0.7469117  0.2578690  1.691731e-01 0.9771551      
## Phi g1 c2006 a1 t2007  0.3558947  0.0828906  2.138351e-01 0.5288445      
## Phi g1 c2006 a2 t2008  0.8116634  0.1377444  4.242717e-01 0.9618368      
## Phi g1 c2006 a3 t2009  0.6729272  0.1143159  4.264007e-01 0.8506185      
## Phi g1 c2006 a4 t2010  0.4489979  0.0854461  2.928337e-01 0.6159092      
## Phi g1 c2006 a5 t2011  0.8922912  0.1905111  1.454322e-01 0.9975264      
## Phi g1 c2006 a6 t2012  0.5614768  0.1322385  3.088490e-01 0.7858049      
## Phi g1 c2006 a7 t2013  0.9137288  0.1984970  7.073770e-02 0.9993219      
## Phi g1 c2006 a8 t2014  0.5223214  0.1424394  2.631597e-01 0.7699980      
## Phi g1 c2006 a9 t2015  0.6319456  0.2500971  1.726511e-01 0.9338937      
## Phi g1 c2006 a10 t2016 0.7236939 62.1223730 9.299577e-265 1.0000000      
## p g1 c2006 a1 t2007    0.3966951  0.1692637  1.411882e-01 0.7245105      
## p g1 c2006 a2 t2008    0.3959044  0.1101137  2.099935e-01 0.6177114      
## p g1 c2006 a3 t2009    0.3187251  0.0752285  1.917492e-01 0.4798634      
## p g1 c2006 a4 t2010    0.4207315  0.0794853  2.770779e-01 0.5791927      
## p g1 c2006 a5 t2011    0.4878587  0.0884429  3.224847e-01 0.6559340      
## p g1 c2006 a6 t2012    0.3782543  0.0959629  2.147158e-01 0.5751272      
## p g1 c2006 a7 t2013    0.3548388  0.0966958  1.937679e-01 0.5572570      
## p g1 c2006 a8 t2014    0.5498393  0.1253811  3.115611e-01 0.7672546      
## p g1 c2006 a9 t2015    0.7538461  0.1498104  3.862410e-01 0.9371212      
## p g1 c2006 a10 t2016   0.4615374  0.2065083  1.439556e-01 0.8137416      
## p g1 c2006 a11 t2017   0.5921988 50.8352120 9.599050e-180 1.0000000      
##                           note
## Phi g1 c2006 a0 t2006         
## Phi g1 c2006 a1 t2007         
## Phi g1 c2006 a2 t2008         
## Phi g1 c2006 a3 t2009         
## Phi g1 c2006 a4 t2010         
## Phi g1 c2006 a5 t2011         
## Phi g1 c2006 a6 t2012         
## Phi g1 c2006 a7 t2013         
## Phi g1 c2006 a8 t2014         
## Phi g1 c2006 a9 t2015         
## Phi g1 c2006 a10 t2016        
## p g1 c2006 a1 t2007           
## p g1 c2006 a2 t2008           
## p g1 c2006 a3 t2009           
## p g1 c2006 a4 t2010           
## p g1 c2006 a5 t2011           
## p g1 c2006 a6 t2012           
## p g1 c2006 a7 t2013           
## p g1 c2006 a8 t2014           
## p g1 c2006 a9 t2015           
## p g1 c2006 a10 t2016          
## p g1 c2006 a11 t2017
Phi.time.P.time$results$beta   # parameter estimates on logit scale  
##                   estimate          se          lcl         ucl
## Phi:(Intercept)  1.0822087   1.3641367   -1.5914993   3.7559168
## Phi:time2007    -1.6754363   1.5170495   -4.6488534   1.2979809
## Phi:time2008     0.3786464   1.6348750   -2.8257086   3.5830014
## Phi:time2009    -0.3607545   1.4596715   -3.2217107   2.5002016
## Phi:time2010    -1.2869290   1.4071798   -4.0450014   1.4711434
## Phi:time2011     1.0321527   2.4062831   -3.6841623   5.7484676
## Phi:time2012    -0.8350509   1.4660599   -3.7085285   2.0384266
## Phi:time2013     1.2778288   2.8638457   -4.3353087   6.8909664
## Phi:time2014    -0.9928638   1.4787792   -3.8912710   1.9055435
## Phi:time2015    -0.5416363   1.7369783   -3.9461139   2.8628413
## Phi:time2016    -0.1193493 310.6679600 -609.0285500 608.7898500
## p:(Intercept)   -0.4192546   0.7072455   -1.8054558   0.9669466
## p:time2008      -0.0033050   0.8439037   -1.6573562   1.6507463
## p:time2009      -0.3403823   0.7875442   -1.8839689   1.2032043
## p:time2010       0.0994832   0.7788217   -1.4270075   1.6259738
## p:time2011       0.3706798   0.7908849   -1.1794545   1.9208141
## p:time2012      -0.0777099   0.8165128   -1.6780750   1.5226553
## p:time2013      -0.1785822   0.8237765   -1.7931841   1.4360198
## p:time2014       0.6192760   0.8699408   -1.0858081   2.3243600
## p:time2015       1.5384861   1.0733044   -0.5651906   3.6421627
## p:time2016       0.2650998   1.0911840   -1.8736209   2.4038206
## p:time2017       0.7923174 210.4966800 -411.7811800 413.3658200

The summary function is also useful here:

summary(Phi.time.P.time)
## Output summary for CJS model
## Name : Phi(~time)p(~time) 
## 
## Npar :  22  (unadjusted=21)
## -2lnL:  930.9508
## AICc :  977.4012  (unadjusted=975.18273)
## 
## Beta
##                   estimate          se          lcl         ucl
## Phi:(Intercept)  1.0822087   1.3641367   -1.5914993   3.7559168
## Phi:time2007    -1.6754363   1.5170495   -4.6488534   1.2979809
## Phi:time2008     0.3786464   1.6348750   -2.8257086   3.5830014
## Phi:time2009    -0.3607545   1.4596715   -3.2217107   2.5002016
## Phi:time2010    -1.2869290   1.4071798   -4.0450014   1.4711434
## Phi:time2011     1.0321527   2.4062831   -3.6841623   5.7484676
## Phi:time2012    -0.8350509   1.4660599   -3.7085285   2.0384266
## Phi:time2013     1.2778288   2.8638457   -4.3353087   6.8909664
## Phi:time2014    -0.9928638   1.4787792   -3.8912710   1.9055435
## Phi:time2015    -0.5416363   1.7369783   -3.9461139   2.8628413
## Phi:time2016    -0.1193493 310.6679600 -609.0285500 608.7898500
## p:(Intercept)   -0.4192546   0.7072455   -1.8054558   0.9669466
## p:time2008      -0.0033050   0.8439037   -1.6573562   1.6507463
## p:time2009      -0.3403823   0.7875442   -1.8839689   1.2032043
## p:time2010       0.0994832   0.7788217   -1.4270075   1.6259738
## p:time2011       0.3706798   0.7908849   -1.1794545   1.9208141
## p:time2012      -0.0777099   0.8165128   -1.6780750   1.5226553
## p:time2013      -0.1785822   0.8237765   -1.7931841   1.4360198
## p:time2014       0.6192760   0.8699408   -1.0858081   2.3243600
## p:time2015       1.5384861   1.0733044   -0.5651906   3.6421627
## p:time2016       0.2650998   1.0911840   -1.8736209   2.4038206
## p:time2017       0.7923174 210.4966800 -411.7811800 413.3658200
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.7469117 0.3558947 0.8116634 0.6729272 0.4489979 0.8922912 0.5614768
## 2007           0.3558947 0.8116634 0.6729272 0.4489979 0.8922912 0.5614768
## 2008                     0.8116634 0.6729272 0.4489979 0.8922912 0.5614768
## 2009                               0.6729272 0.4489979 0.8922912 0.5614768
## 2010                                         0.4489979 0.8922912 0.5614768
## 2011                                                   0.8922912 0.5614768
## 2012                                                             0.5614768
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013      2014      2015      2016
## 2006 0.9137288 0.5223214 0.6319456 0.7236939
## 2007 0.9137288 0.5223214 0.6319456 0.7236939
## 2008 0.9137288 0.5223214 0.6319456 0.7236939
## 2009 0.9137288 0.5223214 0.6319456 0.7236939
## 2010 0.9137288 0.5223214 0.6319456 0.7236939
## 2011 0.9137288 0.5223214 0.6319456 0.7236939
## 2012 0.9137288 0.5223214 0.6319456 0.7236939
## 2013 0.9137288 0.5223214 0.6319456 0.7236939
## 2014           0.5223214 0.6319456 0.7236939
## 2015                     0.6319456 0.7236939
## 2016                               0.7236939
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.3966951 0.3959044 0.3187251 0.4207315 0.4878587 0.3782543 0.3548388
## 2007           0.3959044 0.3187251 0.4207315 0.4878587 0.3782543 0.3548388
## 2008                     0.3187251 0.4207315 0.4878587 0.3782543 0.3548388
## 2009                               0.4207315 0.4878587 0.3782543 0.3548388
## 2010                                         0.4878587 0.3782543 0.3548388
## 2011                                                   0.3782543 0.3548388
## 2012                                                             0.3548388
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.5498393 0.7538461 0.4615374 0.5921988
## 2007 0.5498393 0.7538461 0.4615374 0.5921988
## 2008 0.5498393 0.7538461 0.4615374 0.5921988
## 2009 0.5498393 0.7538461 0.4615374 0.5921988
## 2010 0.5498393 0.7538461 0.4615374 0.5921988
## 2011 0.5498393 0.7538461 0.4615374 0.5921988
## 2012 0.5498393 0.7538461 0.4615374 0.5921988
## 2013 0.5498393 0.7538461 0.4615374 0.5921988
## 2014           0.7538461 0.4615374 0.5921988
## 2015                     0.4615374 0.5921988
## 2016                               0.5921988

We see that RMark thinks that our model should have 22 parameters. However, if you look at the output carefully, you’ll see that the last Phi and the last p parameters have a standard error of 0. Standard errors that are very large or 0 indicate a problem. Often, this is because the data are too sparse and that parameter has not been well estimated. MARK tends not to count such parameters. That’s why RMark tells us that the unadjusted parameter count is 21. It’s the number of parameters MARK thinks are estimable. Where parameters are poorly (or not) estimated because of data sparseness, it makes sens to still count those parameters because they are part of the model structure and contribute to model complexity. Therefore, RMark by default counts all parameters we have specified. However, in some cases, parameters are technically not estimable because they are confounded. In that case, they should not contribute to the parameter count. It turns out that in this case, MARK is right: with the fully time-dependent CJS model, the final Phi and p estimate are confounded. With no further data, there is no way to tell whether all individuals survived but we had a low recapture probability on the last occasion or whether they all died and we saw everyone who was still alive (or anything in between). In fact, only the product of those two parameters is estimable and we therefore should only count them as a single parameter.

So we need to tell RMark that we want to change the parameter count:

Phi.time.P.time <- adjust.parameter.count(Phi.time.P.time, 21)  # adjust parameter count because last Phi and P are confounded
## 
## Number of parameters adjusted from 22 to 21
## Adjusted AICc = 975.182724057971
## Unadjusted AICc = 975.18273

Now, we are ready to run a few more models:

Phi.dot.P.dot <- mark(hade.process,hade.ddl,model.parameters=list(Phi=dot, p=dot))
## 
## Output summary for CJS model
## Name : Phi(~1)p(~1) 
## 
## Npar :  2
## -2lnL:  964.9276
## AICc :  968.9553
## 
## Beta
##                   estimate        se        lcl        ucl
## Phi:(Intercept)  0.5803299 0.1004607  0.3834269  0.7772329
## p:(Intercept)   -0.3789708 0.1363474 -0.6462117 -0.1117300
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.6411433 0.6411433 0.6411433 0.6411433 0.6411433 0.6411433 0.6411433
## 2007           0.6411433 0.6411433 0.6411433 0.6411433 0.6411433 0.6411433
## 2008                     0.6411433 0.6411433 0.6411433 0.6411433 0.6411433
## 2009                               0.6411433 0.6411433 0.6411433 0.6411433
## 2010                                         0.6411433 0.6411433 0.6411433
## 2011                                                   0.6411433 0.6411433
## 2012                                                             0.6411433
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013      2014      2015      2016
## 2006 0.6411433 0.6411433 0.6411433 0.6411433
## 2007 0.6411433 0.6411433 0.6411433 0.6411433
## 2008 0.6411433 0.6411433 0.6411433 0.6411433
## 2009 0.6411433 0.6411433 0.6411433 0.6411433
## 2010 0.6411433 0.6411433 0.6411433 0.6411433
## 2011 0.6411433 0.6411433 0.6411433 0.6411433
## 2012 0.6411433 0.6411433 0.6411433 0.6411433
## 2013 0.6411433 0.6411433 0.6411433 0.6411433
## 2014           0.6411433 0.6411433 0.6411433
## 2015                     0.6411433 0.6411433
## 2016                               0.6411433
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.4063751 0.4063751 0.4063751 0.4063751 0.4063751 0.4063751 0.4063751
## 2007           0.4063751 0.4063751 0.4063751 0.4063751 0.4063751 0.4063751
## 2008                     0.4063751 0.4063751 0.4063751 0.4063751 0.4063751
## 2009                               0.4063751 0.4063751 0.4063751 0.4063751
## 2010                                         0.4063751 0.4063751 0.4063751
## 2011                                                   0.4063751 0.4063751
## 2012                                                             0.4063751
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.4063751 0.4063751 0.4063751 0.4063751
## 2007 0.4063751 0.4063751 0.4063751 0.4063751
## 2008 0.4063751 0.4063751 0.4063751 0.4063751
## 2009 0.4063751 0.4063751 0.4063751 0.4063751
## 2010 0.4063751 0.4063751 0.4063751 0.4063751
## 2011 0.4063751 0.4063751 0.4063751 0.4063751
## 2012 0.4063751 0.4063751 0.4063751 0.4063751
## 2013 0.4063751 0.4063751 0.4063751 0.4063751
## 2014           0.4063751 0.4063751 0.4063751
## 2015                     0.4063751 0.4063751
## 2016                               0.4063751
Phi.age.P.dot <- mark(hade.process,hade.ddl,model.parameters=list(Phi=age, p=dot))
## 
## Note: only 9 parameters counted of 12 specified parameters
## AICc and parameter count have been adjusted upward
## 
## Output summary for CJS model
## Name : Phi(~age)p(~1) 
## 
## Npar :  12  (unadjusted=9)
## -2lnL:  936.8426
## AICc :  961.5801  (unadjusted=955.26509)
## 
## Beta
##                    estimate           se           lcl          ucl
## Phi:(Intercept)   0.0206908 2.123647e-01    -0.3955441    0.4369256
## Phi:age1          0.0625891 4.229103e-01    -0.7663151    0.8914932
## Phi:age2          1.1876704 6.385317e-01    -0.0638518    2.4391927
## Phi:age3          1.8487813 1.172957e+00    -0.4502145    4.1477772
## Phi:age4          0.6574010 6.286634e-01    -0.5747793    1.8895813
## Phi:age5          1.0416520 8.691471e-01    -0.6618763    2.7451804
## Phi:age6          2.2800434 2.223503e+00    -2.0780222    6.6381090
## Phi:age7         49.5993070 8.146174e-06    49.5992910   49.5993230
## Phi:age8         -0.6350147 8.334957e-01    -2.2686663    0.9986369
## Phi:age9         69.9390390 1.182904e-14    69.9390390   69.9390390
## Phi:age10       -12.2810440 2.845141e+03 -5588.7582000 5564.1961000
## p:(Intercept)    -0.1565221 1.424354e-01    -0.4356955    0.1226514
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.5051725 0.5208079 0.7700089 0.8663972 0.6633127 0.7431380 0.9089378
## 2007           0.5051725 0.5208079 0.7700089 0.8663972 0.6633127 0.7431380
## 2008                     0.5051725 0.5208079 0.7700089 0.8663972 0.6633127
## 2009                               0.5051725 0.5208079 0.7700089 0.8663972
## 2010                                         0.5051725 0.5208079 0.7700089
## 2011                                                   0.5051725 0.5208079
## 2012                                                             0.5051725
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013      2014      2015         2016
## 2006 1.0000000 0.3510735 1.0000000 4.735809e-06
## 2007 0.9089378 1.0000000 0.3510735 1.000000e+00
## 2008 0.7431380 0.9089378 1.0000000 3.510735e-01
## 2009 0.6633127 0.7431380 0.9089378 1.000000e+00
## 2010 0.8663972 0.6633127 0.7431380 9.089378e-01
## 2011 0.7700089 0.8663972 0.6633127 7.431380e-01
## 2012 0.5208079 0.7700089 0.8663972 6.633127e-01
## 2013 0.5051725 0.5208079 0.7700089 8.663972e-01
## 2014           0.5051725 0.5208079 7.700089e-01
## 2015                     0.5051725 5.208079e-01
## 2016                               5.051725e-01
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.4609492 0.4609492 0.4609492 0.4609492 0.4609492 0.4609492 0.4609492
## 2007           0.4609492 0.4609492 0.4609492 0.4609492 0.4609492 0.4609492
## 2008                     0.4609492 0.4609492 0.4609492 0.4609492 0.4609492
## 2009                               0.4609492 0.4609492 0.4609492 0.4609492
## 2010                                         0.4609492 0.4609492 0.4609492
## 2011                                                   0.4609492 0.4609492
## 2012                                                             0.4609492
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.4609492 0.4609492 0.4609492 0.4609492
## 2007 0.4609492 0.4609492 0.4609492 0.4609492
## 2008 0.4609492 0.4609492 0.4609492 0.4609492
## 2009 0.4609492 0.4609492 0.4609492 0.4609492
## 2010 0.4609492 0.4609492 0.4609492 0.4609492
## 2011 0.4609492 0.4609492 0.4609492 0.4609492
## 2012 0.4609492 0.4609492 0.4609492 0.4609492
## 2013 0.4609492 0.4609492 0.4609492 0.4609492
## 2014           0.4609492 0.4609492 0.4609492
## 2015                     0.4609492 0.4609492
## 2016                               0.4609492
Phi.age.P.time <- mark(hade.process,hade.ddl,model.parameters=list(Phi=age, p=time))
## 
## Note: only 19 parameters counted of 22 specified parameters
## 
## AICc and parameter count have been adjusted upward
## 
## Output summary for CJS model
## Name : Phi(~age)p(~time) 
## 
## Npar :  22  (unadjusted=19)
## -2lnL:  923.1815
## AICc :  969.6318  (unadjusted=963.00839)
## 
## Beta
##                    estimate           se           lcl          ucl
## Phi:(Intercept)   0.0775336 2.333981e-01    -0.3799268    0.5349939
## Phi:age1         -0.0083096 4.599517e-01    -0.9098150    0.8931957
## Phi:age2          1.0005729 6.294298e-01    -0.2331095    2.2342554
## Phi:age3          2.0621411 1.555769e+00    -0.9871658    5.1114479
## Phi:age4          0.4828085 6.170069e-01    -0.7265251    1.6921420
## Phi:age5          0.8679830 7.596263e-01    -0.6208846    2.3568506
## Phi:age6          2.0050019 1.830331e+00    -1.5824474    5.5924513
## Phi:age7         85.1746540 5.345200e+00    74.6980620   95.6512470
## Phi:age8         -0.5699461 9.663291e-01    -2.4639512    1.3240590
## Phi:age9         74.5221230 7.550666e-06    74.5221080   74.5221380
## Phi:age10       -10.3449230 1.543812e+03 -3036.2174000 3015.5276000
## p:(Intercept)     0.1664723 6.181851e-01    -1.0451705    1.3781151
## p:time2008       -0.9468654 6.983980e-01    -2.3157254    0.4219947
## p:time2009       -0.5616410 6.761540e-01    -1.8869029    0.7636210
## p:time2010       -0.0660631 6.529538e-01    -1.3458527    1.2137264
## p:time2011       -0.3746375 6.778284e-01    -1.7031811    0.9539062
## p:time2012       -0.3512292 7.058833e-01    -1.7347605    1.0323020
## p:time2013       -0.8913780 7.210137e-01    -2.3045650    0.5218089
## p:time2014        0.4255695 7.533746e-01    -1.0510448    1.9021837
## p:time2015        0.3966368 8.567353e-01    -1.2825644    2.0758380
## p:time2016       -0.7649789 8.712432e-01    -2.4726156    0.9426579
## p:time2017       -0.2348356 1.012909e+00    -2.2201372    1.7504660
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.5193737 0.5172991 0.7461355 0.8947000 0.6365317 0.7202126 0.8891941
## 2007           0.5193737 0.5172991 0.7461355 0.8947000 0.6365317 0.7202126
## 2008                     0.5193737 0.5172991 0.7461355 0.8947000 0.6365317
## 2009                               0.5193737 0.5172991 0.7461355 0.8947000
## 2010                                         0.5193737 0.5172991 0.7461355
## 2011                                                   0.5193737 0.5172991
## 2012                                                             0.5193737
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013      2014      2015         2016
## 2006 1.0000000 0.3793254 1.0000000 3.474678e-05
## 2007 0.8891941 1.0000000 0.3793254 1.000000e+00
## 2008 0.7202126 0.8891941 1.0000000 3.793254e-01
## 2009 0.6365317 0.7202126 0.8891941 1.000000e+00
## 2010 0.8947000 0.6365317 0.7202126 8.891941e-01
## 2011 0.7461355 0.8947000 0.6365317 7.202126e-01
## 2012 0.5172991 0.7461355 0.8947000 6.365317e-01
## 2013 0.5193737 0.5172991 0.7461355 8.947000e-01
## 2014           0.5193737 0.5172991 7.461355e-01
## 2015                     0.5193737 5.172991e-01
## 2016                               5.193737e-01
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.5415222 0.3142352 0.4024737 0.5250812 0.4481458 0.4539417 0.3263136
## 2007           0.3142352 0.4024737 0.5250812 0.4481458 0.4539417 0.3263136
## 2008                     0.4024737 0.5250812 0.4481458 0.4539417 0.3263136
## 2009                               0.5250812 0.4481458 0.4539417 0.3263136
## 2010                                         0.4481458 0.4539417 0.3263136
## 2011                                                   0.4539417 0.3263136
## 2012                                                             0.3263136
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.6438335 0.6371716 0.3546854 0.4829158
## 2007 0.6438335 0.6371716 0.3546854 0.4829158
## 2008 0.6438335 0.6371716 0.3546854 0.4829158
## 2009 0.6438335 0.6371716 0.3546854 0.4829158
## 2010 0.6438335 0.6371716 0.3546854 0.4829158
## 2011 0.6438335 0.6371716 0.3546854 0.4829158
## 2012 0.6438335 0.6371716 0.3546854 0.4829158
## 2013 0.6438335 0.6371716 0.3546854 0.4829158
## 2014           0.6371716 0.3546854 0.4829158
## 2015                     0.3546854 0.4829158
## 2016                               0.4829158
Phi.timeage.P.dot <- mark(hade.process,hade.ddl,model.parameters=list(Phi=timeage, p=dot))
## 
## Note: only 15 parameters counted of 22 specified parameters
## 
## AICc and parameter count have been adjusted upward
## 
## Output summary for CJS model
## Name : Phi(~time + age)p(~1) 
## 
## Npar :  22  (unadjusted=15)
## -2lnL:  903.5938
## AICc :  950.0441  (unadjusted=934.73664)
## 
## Beta
##                    estimate           se           lcl          ucl
## Phi:(Intercept)   0.7564328    0.7807013    -0.7737418    2.2866075
## Phi:time2007     -1.4433637    0.8675556    -3.1437728    0.2570453
## Phi:time2008     -0.1747138    0.8230125    -1.7878184    1.4383908
## Phi:time2009     -0.1604063    0.8288442    -1.7849410    1.4641283
## Phi:time2010     -1.5109004    0.8081384    -3.0948518    0.0730510
## Phi:time2011      0.1469165    1.0519597    -1.9149245    2.2087575
## Phi:time2012     -1.1201940    0.9027083    -2.8895024    0.6491144
## Phi:time2013     14.7977310    0.0000000    14.7977310   14.7977310
## Phi:time2014    -25.3638640  333.9256600  -679.8581700  629.1304400
## Phi:time2015     -2.8014329    1.4846581    -5.7113628    0.1084971
## Phi:time2016     12.8482220 1093.5212000 -2130.4534000 2156.1499000
## Phi:age1         -0.1207040    0.4254795    -0.9546439    0.7132358
## Phi:age2         45.5827580    0.0000000    45.5827580   45.5827580
## Phi:age3          1.0131786    0.5695258    -0.1030919    2.1294492
## Phi:age4          0.5471955    0.6524114    -0.7315308    1.8259217
## Phi:age5         24.3098730  333.9263500  -630.1857800  678.8055300
## Phi:age6         24.9994900  333.9263500  -629.4961700  679.4951500
## Phi:age7         54.0310250    0.0000000    54.0310250   54.0310250
## Phi:age8          0.5917444    1.7290288    -2.7971521    3.9806410
## Phi:age9         12.6406500    0.0000000    12.6406500   12.6406500
## Phi:age10        -0.1700383    0.0000000    -0.1700383   -0.1700383
## p:(Intercept)    -0.1936090    0.1352251    -0.4586502    0.0714322
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.6805788 0.3083947 1.0000000 0.8333010 0.4483667 1.0000000 1.0000000
## 2007           0.3347162 0.6132549 1.0000000 0.5643194 0.8100823 1.0000000
## 2008                     0.6414629 0.6166427 1.0000000 0.8717508 0.5457304
## 2009                               0.6447467 0.2941793 1.0000000 0.6568792
## 2010                                         0.3198486 0.6862500 1.0000000
## 2011                                                   0.7116373 0.3811983
## 2012                                                             0.4100494
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013         2014      2015      2016
## 2006 1.0000000 3.716378e-11 0.9999750 0.9999985
## 2007 1.0000000 1.000000e+00 0.1895010 1.0000000
## 2008 1.0000000 5.967783e-01 1.0000000 0.9999993
## 2009 0.9999999 4.261545e-01 1.0000000 1.0000000
## 2010 0.9999999 3.554450e-11 1.0000000 1.0000000
## 2011 1.0000000 5.664302e-11 0.1827532 1.0000000
## 2012 0.9999998 1.000000e+00 0.2627311 0.9999993
## 2013 0.9999998 1.822667e-11 1.0000000 0.9999996
## 2014           2.056499e-11 0.1028728 1.0000000
## 2015                        0.1145586 0.9999986
## 2016                                  0.9999988
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.4517484 0.4517484 0.4517484 0.4517484 0.4517484 0.4517484 0.4517484
## 2007           0.4517484 0.4517484 0.4517484 0.4517484 0.4517484 0.4517484
## 2008                     0.4517484 0.4517484 0.4517484 0.4517484 0.4517484
## 2009                               0.4517484 0.4517484 0.4517484 0.4517484
## 2010                                         0.4517484 0.4517484 0.4517484
## 2011                                                   0.4517484 0.4517484
## 2012                                                             0.4517484
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.4517484 0.4517484 0.4517484 0.4517484
## 2007 0.4517484 0.4517484 0.4517484 0.4517484
## 2008 0.4517484 0.4517484 0.4517484 0.4517484
## 2009 0.4517484 0.4517484 0.4517484 0.4517484
## 2010 0.4517484 0.4517484 0.4517484 0.4517484
## 2011 0.4517484 0.4517484 0.4517484 0.4517484
## 2012 0.4517484 0.4517484 0.4517484 0.4517484
## 2013 0.4517484 0.4517484 0.4517484 0.4517484
## 2014           0.4517484 0.4517484 0.4517484
## 2015                     0.4517484 0.4517484
## 2016                               0.4517484
Phi.timeage.P.time <- mark(hade.process,hade.ddl,model.parameters=list(Phi=timeage, p=time))
## 
## Note: only 28 parameters counted of 32 specified parameters
## 
## AICc and parameter count have been adjusted upward
## 
## Output summary for CJS model
## Name : Phi(~time + age)p(~time) 
## 
## Npar :  32  (unadjusted=28)
## -2lnL:  894.2482
## AICc :  963.4889  (unadjusted=954.2384)
## 
## Beta
##                    estimate           se           lcl          ucl
## Phi:(Intercept)   0.9063589    1.3015972    -1.6447716    3.4574894
## Phi:time2007     -1.6204430    1.4100245    -4.3840911    1.1432050
## Phi:time2008     -0.2834119    1.2306417    -2.6954697    2.1286459
## Phi:time2009     -0.4300336    1.3149494    -3.0073344    2.1472672
## Phi:time2010     -1.7081780    1.2458527    -4.1500493    0.7336933
## Phi:time2011      0.2941235    1.5617350    -2.7668772    3.3551242
## Phi:time2012     -0.8151621    1.5256484    -3.8054329    2.1751087
## Phi:time2013      0.1387575    1.9719770    -3.7263174    4.0038325
## Phi:time2014    -24.4092750  386.0679800  -781.1025400  732.2839900
## Phi:time2015     -2.9286185    1.8268539    -6.5092522    0.6520151
## Phi:time2016     13.6569320 1486.0650000 -2899.0305000 2926.3444000
## Phi:age1         -0.0541976    0.4895458    -1.0137073    0.9053122
## Phi:age2         25.1034840  386.0771800  -731.6078100  781.8147800
## Phi:age3          1.0997105    0.7207172    -0.3128951    2.5123162
## Phi:age4          0.2962080    0.7718978    -1.2167117    1.8091277
## Phi:age5         22.9610420  386.0683400  -733.7329100  779.6549900
## Phi:age6         23.5166430  386.0680800  -733.1768000  780.2100900
## Phi:age7         25.1239480  386.0746100  -731.5822900  781.8301900
## Phi:age8          0.6802225    1.7980687    -2.8439922    4.2044372
## Phi:age9          9.1406636    0.0000000     9.1406636    9.1406636
## Phi:age10        -0.1184524 1300.7567000 -2549.6016000 2549.3647000
## p:(Intercept)    -0.3392224    0.7625291    -1.8337795    1.1553347
## p:time2008        0.0859601    0.8920092    -1.6623781    1.8342982
## p:time2009       -0.0643481    0.7903281    -1.6133911    1.4846950
## p:time2010        0.1998344    0.7939023    -1.3562141    1.7558829
## p:time2011        0.4396746    0.8222024    -1.1718422    2.0511913
## p:time2012       -0.0331316    0.8321631    -1.6641713    1.5979082
## p:time2013       -0.5388487    0.8787082    -2.2611167    1.1834194
## p:time2014        0.2614249    0.8593844    -1.4229685    1.9458182
## p:time2015        1.4919641    1.1041269    -0.6721247    3.6560529
## p:time2016        0.5121381    1.0079552    -1.4634541    2.4877303
## p:time2017        0.3313746    0.9808244    -1.5910412    2.2537905
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.7122545 0.3168509 1.0000000 0.8286424 0.3762229 1.0000000 1.0000000
## 2007           0.3286970 0.6384746 1.0000000 0.5739270 0.8170803 1.0000000
## 2008                     0.6508885 0.6039923 1.0000000 0.9088930 0.5956578
## 2009                               0.6168798 0.2981722 1.0000000 0.7669033
## 2010                                         0.3096365 0.7588317 1.0000000
## 2011                                                   0.7686106 0.5092487
## 2012                                                             0.5227834
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013         2014      2015      2016
## 2006 1.0000000 1.225266e-10 0.9991906 0.9999995
## 2007 1.0000000 8.349374e-01 0.2071753 1.0000000
## 2008 1.0000000 5.034317e-01 1.0000000 0.9999998
## 2009 0.7927077 3.677517e-01 1.0000000 1.0000000
## 2010 0.8951844 8.345548e-11 1.0000000 1.0000000
## 2011 1.0000000 1.863853e-10 0.1510933 1.0000000
## 2012 0.7292694 8.320977e-01 0.2844388 0.9999996
## 2013 0.7398360 5.878624e-11 1.0000000 0.9999998
## 2014           6.206023e-11 0.1114062 1.0000000
## 2015                        0.1168855 0.9999995
## 2016                                  0.9999995
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010     2011      2012      2013
## 2006 0.4159984 0.4370207 0.4004548 0.4652093 0.525092 0.4079724 0.2935777
## 2007           0.4370207 0.4004548 0.4652093 0.525092 0.4079724 0.2935777
## 2008                     0.4004548 0.4652093 0.525092 0.4079724 0.2935777
## 2009                               0.4652093 0.525092 0.4079724 0.2935777
## 2010                                         0.525092 0.4079724 0.2935777
## 2011                                                  0.4079724 0.2935777
## 2012                                                            0.2935777
## 2013                                                                     
## 2014                                                                     
## 2015                                                                     
## 2016                                                                     
##           2014      2015      2016      2017
## 2006 0.4805604 0.7600113 0.5431215 0.4980381
## 2007 0.4805604 0.7600113 0.5431215 0.4980381
## 2008 0.4805604 0.7600113 0.5431215 0.4980381
## 2009 0.4805604 0.7600113 0.5431215 0.4980381
## 2010 0.4805604 0.7600113 0.5431215 0.4980381
## 2011 0.4805604 0.7600113 0.5431215 0.4980381
## 2012 0.4805604 0.7600113 0.5431215 0.4980381
## 2013 0.4805604 0.7600113 0.5431215 0.4980381
## 2014           0.7600113 0.5431215 0.4980381
## 2015                     0.5431215 0.4980381
## 2016                               0.4980381

Now that we’ve run a few models, we need to have a way to tell which one of these describes the data the best. That is a model selection question and we can use Akaike’s Information Criterion to rank the models:

# model selection
hade.cjs.results <- collect.models()
hade.cjs.results
##                      model npar     AICc DeltaAICc       weight Deviance
## 5    Phi(~time + age)p(~1)   22 950.0441   0.00000 9.955527e-01 250.3671
## 1           Phi(~age)p(~1)   12 961.5801  11.53601 3.112092e-03 283.6159
## 6 Phi(~time + age)p(~time)   32 963.4889  13.44478 1.198304e-03 241.0215
## 3             Phi(~1)p(~1)    2 968.9553  18.91115 7.790406e-05 311.7009
## 2        Phi(~age)p(~time)   22 969.6318  19.58769 5.554582e-05 269.9548
## 4       Phi(~time)p(~time)   21 975.1827  25.13858 3.461711e-06 277.7241

The best mode, according to AIC, is the one with additive affects of time and age on survival. That means, this model estimates a separate survival rate for each year and each age (1st, 2nd, 3rd, etc year) but without an interaction, i.e. a year with relatively low survival for one age class is also a year with low survival for all others. The recapture probability is set constant in this model.

So let’s have a look at the parameter estimates, first on the ‘real’ scale – i.e. these are survival probabilities – and then on the ‘beta’ scale – i.e. the logit scale.

# look at the parameter estimates
Phi.timeage.P.dot$results$real   # parameter estimates     
##                            estimate           se            lcl          ucl
## Phi g1 c2006 a0 t2006  6.805788e-01 1.697177e-01   3.156702e-01 9.077618e-01
## Phi g1 c2006 a1 t2007  3.083947e-01 9.050090e-02   1.625616e-01 5.060049e-01
## Phi g1 c2006 a2 t2008  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2006 a3 t2009  8.333010e-01 9.067600e-02   5.817067e-01 9.472813e-01
## Phi g1 c2006 a4 t2010  4.483667e-01 1.668896e-01   1.780244e-01 7.531058e-01
## Phi g1 c2006 a5 t2011  1.000000e+00 3.747005e-09   1.000000e+00 1.000000e+00
## Phi g1 c2006 a6 t2012  1.000000e+00 6.675569e-09   1.000000e+00 1.000000e+00
## Phi g1 c2006 a7 t2013  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2006 a8 t2014  3.716378e-11 1.241011e-08  -2.428665e-08 2.436098e-08
## Phi g1 c2006 a9 t2015  9.999750e-01 0.000000e+00   9.999750e-01 9.999750e-01
## Phi g1 c2006 a10 t2016 9.999985e-01 1.006900e-03  6.736624e-299 1.000000e+00
## Phi g1 c2007 a0 t2007  3.347162e-01 7.207090e-02   2.106045e-01 4.868590e-01
## Phi g1 c2007 a1 t2008  6.132549e-01 1.014143e-01   4.068330e-01 7.856840e-01
## Phi g1 c2007 a2 t2009  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2007 a3 t2010  5.643194e-01 1.299635e-01   3.148918e-01 7.849534e-01
## Phi g1 c2007 a4 t2011  8.100823e-01 1.269734e-01   4.583302e-01 9.555599e-01
## Phi g1 c2007 a5 t2012  1.000000e+00 1.330412e-08   1.000000e+00 1.000000e+00
## Phi g1 c2007 a6 t2013  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2007 a7 t2014  1.000000e+00 5.196732e-11   1.000000e+00 1.000000e+00
## Phi g1 c2007 a8 t2015  1.895010e-01 1.775388e-01   2.368680e-02 6.926111e-01
## Phi g1 c2007 a9 t2016  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2008 a0 t2008  6.414629e-01 1.010047e-01   4.306840e-01 8.088414e-01
## Phi g1 c2008 a1 t2009  6.166427e-01 1.012878e-01   4.098760e-01 7.883691e-01
## Phi g1 c2008 a2 t2010  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2008 a3 t2011  8.717508e-01 8.322750e-02   6.124113e-01 9.669331e-01
## Phi g1 c2008 a4 t2012  5.457304e-01 1.365697e-01   2.898106e-01 7.795718e-01
## Phi g1 c2008 a5 t2013  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2008 a6 t2014  5.967783e-01 2.003055e-01   2.245301e-01 8.832504e-01
## Phi g1 c2008 a7 t2015  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2008 a8 t2016  9.999993e-01 7.471547e-04  1.443047e-298 1.000000e+00
## Phi g1 c2009 a0 t2009  6.447467e-01 9.057620e-02   4.553574e-01 7.975579e-01
## Phi g1 c2009 a1 t2010  2.941793e-01 7.145170e-02   1.751382e-01 4.499921e-01
## Phi g1 c2009 a2 t2011  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2009 a3 t2012  6.568792e-01 1.457061e-01   3.503150e-01 8.717465e-01
## Phi g1 c2009 a4 t2013  9.999999e-01 0.000000e+00   9.999999e-01 9.999999e-01
## Phi g1 c2009 a5 t2014  4.261545e-01 2.189464e-01   1.138126e-01 8.111130e-01
## Phi g1 c2009 a6 t2015  1.000000e+00 3.586294e-08   9.999999e-01 1.000000e+00
## Phi g1 c2009 a7 t2016  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2010 a0 t2010  3.198486e-01 8.273370e-02   1.824455e-01 4.977327e-01
## Phi g1 c2010 a1 t2011  6.862500e-01 1.698180e-01   3.179459e-01 9.112115e-01
## Phi g1 c2010 a2 t2012  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2010 a3 t2013  9.999999e-01 0.000000e+00   9.999999e-01 9.999999e-01
## Phi g1 c2010 a4 t2014  3.554450e-11 1.186925e-08  -2.322818e-08 2.329927e-08
## Phi g1 c2010 a5 t2015  1.000000e+00 7.147309e-08   9.999999e-01 1.000000e+00
## Phi g1 c2010 a6 t2016  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2011 a0 t2011  7.116373e-01 1.583273e-01   3.523175e-01 9.180067e-01
## Phi g1 c2011 a1 t2012  3.811983e-01 1.387486e-01   1.628273e-01 6.611471e-01
## Phi g1 c2011 a2 t2013  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2011 a3 t2014  5.664302e-11 1.891459e-08  -3.701595e-08 3.712923e-08
## Phi g1 c2011 a4 t2015  1.827532e-01 2.127021e-01   1.353130e-02 7.847416e-01
## Phi g1 c2011 a5 t2016  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2012 a0 t2012  4.100494e-01 1.285591e-01   1.969644e-01 6.632595e-01
## Phi g1 c2012 a1 t2013  9.999998e-01 0.000000e+00   9.999998e-01 9.999998e-01
## Phi g1 c2012 a2 t2014  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2012 a3 t2015  2.627311e-01 2.355879e-01   3.181050e-02 7.944545e-01
## Phi g1 c2012 a4 t2016  9.999993e-01 7.811892e-04  1.380171e-298 1.000000e+00
## Phi g1 c2013 a0 t2013  9.999998e-01 0.000000e+00   9.999998e-01 9.999998e-01
## Phi g1 c2013 a1 t2014  1.822667e-11 6.086359e-09  -1.191104e-08 1.194749e-08
## Phi g1 c2013 a2 t2015  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2013 a3 t2016  9.999996e-01 4.902106e-04  2.199414e-298 1.000000e+00
## Phi g1 c2014 a0 t2014  2.056499e-11 6.867181e-09  -1.343911e-08 1.348024e-08
## Phi g1 c2014 a1 t2015  1.028728e-01 1.215394e-01   8.604000e-03 6.024003e-01
## Phi g1 c2014 a2 t2016  1.000000e+00 0.000000e+00   1.000000e+00 1.000000e+00
## Phi g1 c2015 a0 t2015  1.145586e-01 1.308648e-01   1.021460e-02 6.186130e-01
## Phi g1 c2015 a1 t2016  9.999986e-01 1.523400e-03  7.077305e-299 1.000000e+00
## Phi g1 c2016 a0 t2016  9.999988e-01 1.350200e-03  7.985259e-299 1.000000e+00
## p g1 c2006 a1 t2007    4.517484e-01 3.349140e-02   3.873061e-01 5.178505e-01
##                        fixed    note
## Phi g1 c2006 a0 t2006               
## Phi g1 c2006 a1 t2007               
## Phi g1 c2006 a2 t2008               
## Phi g1 c2006 a3 t2009               
## Phi g1 c2006 a4 t2010               
## Phi g1 c2006 a5 t2011               
## Phi g1 c2006 a6 t2012               
## Phi g1 c2006 a7 t2013               
## Phi g1 c2006 a8 t2014               
## Phi g1 c2006 a9 t2015               
## Phi g1 c2006 a10 t2016              
## Phi g1 c2007 a0 t2007               
## Phi g1 c2007 a1 t2008               
## Phi g1 c2007 a2 t2009               
## Phi g1 c2007 a3 t2010               
## Phi g1 c2007 a4 t2011               
## Phi g1 c2007 a5 t2012               
## Phi g1 c2007 a6 t2013               
## Phi g1 c2007 a7 t2014               
## Phi g1 c2007 a8 t2015               
## Phi g1 c2007 a9 t2016               
## Phi g1 c2008 a0 t2008               
## Phi g1 c2008 a1 t2009               
## Phi g1 c2008 a2 t2010               
## Phi g1 c2008 a3 t2011               
## Phi g1 c2008 a4 t2012               
## Phi g1 c2008 a5 t2013               
## Phi g1 c2008 a6 t2014               
## Phi g1 c2008 a7 t2015               
## Phi g1 c2008 a8 t2016               
## Phi g1 c2009 a0 t2009               
## Phi g1 c2009 a1 t2010               
## Phi g1 c2009 a2 t2011               
## Phi g1 c2009 a3 t2012               
## Phi g1 c2009 a4 t2013               
## Phi g1 c2009 a5 t2014               
## Phi g1 c2009 a6 t2015               
## Phi g1 c2009 a7 t2016               
## Phi g1 c2010 a0 t2010               
## Phi g1 c2010 a1 t2011               
## Phi g1 c2010 a2 t2012               
## Phi g1 c2010 a3 t2013               
## Phi g1 c2010 a4 t2014               
## Phi g1 c2010 a5 t2015               
## Phi g1 c2010 a6 t2016               
## Phi g1 c2011 a0 t2011               
## Phi g1 c2011 a1 t2012               
## Phi g1 c2011 a2 t2013               
## Phi g1 c2011 a3 t2014               
## Phi g1 c2011 a4 t2015               
## Phi g1 c2011 a5 t2016               
## Phi g1 c2012 a0 t2012               
## Phi g1 c2012 a1 t2013               
## Phi g1 c2012 a2 t2014               
## Phi g1 c2012 a3 t2015               
## Phi g1 c2012 a4 t2016               
## Phi g1 c2013 a0 t2013               
## Phi g1 c2013 a1 t2014               
## Phi g1 c2013 a2 t2015               
## Phi g1 c2013 a3 t2016               
## Phi g1 c2014 a0 t2014               
## Phi g1 c2014 a1 t2015               
## Phi g1 c2014 a2 t2016               
## Phi g1 c2015 a0 t2015               
## Phi g1 c2015 a1 t2016               
## Phi g1 c2016 a0 t2016               
## p g1 c2006 a1 t2007
Phi.timeage.P.dot$results$beta   # parameter estimates on logit scale   
##                    estimate           se           lcl          ucl
## Phi:(Intercept)   0.7564328    0.7807013    -0.7737418    2.2866075
## Phi:time2007     -1.4433637    0.8675556    -3.1437728    0.2570453
## Phi:time2008     -0.1747138    0.8230125    -1.7878184    1.4383908
## Phi:time2009     -0.1604063    0.8288442    -1.7849410    1.4641283
## Phi:time2010     -1.5109004    0.8081384    -3.0948518    0.0730510
## Phi:time2011      0.1469165    1.0519597    -1.9149245    2.2087575
## Phi:time2012     -1.1201940    0.9027083    -2.8895024    0.6491144
## Phi:time2013     14.7977310    0.0000000    14.7977310   14.7977310
## Phi:time2014    -25.3638640  333.9256600  -679.8581700  629.1304400
## Phi:time2015     -2.8014329    1.4846581    -5.7113628    0.1084971
## Phi:time2016     12.8482220 1093.5212000 -2130.4534000 2156.1499000
## Phi:age1         -0.1207040    0.4254795    -0.9546439    0.7132358
## Phi:age2         45.5827580    0.0000000    45.5827580   45.5827580
## Phi:age3          1.0131786    0.5695258    -0.1030919    2.1294492
## Phi:age4          0.5471955    0.6524114    -0.7315308    1.8259217
## Phi:age5         24.3098730  333.9263500  -630.1857800  678.8055300
## Phi:age6         24.9994900  333.9263500  -629.4961700  679.4951500
## Phi:age7         54.0310250    0.0000000    54.0310250   54.0310250
## Phi:age8          0.5917444    1.7290288    -2.7971521    3.9806410
## Phi:age9         12.6406500    0.0000000    12.6406500   12.6406500
## Phi:age10        -0.1700383    0.0000000    -0.1700383   -0.1700383
## p:(Intercept)    -0.1936090    0.1352251    -0.4586502    0.0714322

We can see that some survival rates are estimated at 1 with a standard error of 0. Others have a huge standard error and a confidence interval that goes from 0 to 1. On the logit scale, we can see some very large estimates in absolute terms (anything < -10 on the logit scale means essentially 0 on the probability scale and anything > 10 on the logit scale means essentially 1 on the probability scale) with enormous standard errors. We can also see some estimates with standard errors of 0. All these estimates indicate estimation problems and it looks like our model is perhaps too complex for the data (i.e. we don’t have enough data to estimate all these parameters properly).

Plotting the survival estimates for the first two cohorts shows the problems more clearly:

# plotting results
plot(1:11, Phi.timeage.P.dot$results$real$estimate[1:11], type='l', las=1, ylab = "Annual survival", xlab = "Year of study")
lines(2:11, Phi.timeage.P.dot$results$real$estimate[12:21], col='red')

Perhaps we have been a bit too ambitious about age: we tried to estimate a separate survival rate for each year of age but we have few individuals that reached more than a few years of age.

So we need to revisit the age variable. Often, young animals have a lower survival rate than older ones. Immature individuals (hadedas start to breed at around 2 at the earliest, as far as we know) often move around a lot and are more likely to emigrate from the study area than older individuals. Since we are only able to estimate ‘local’ or ‘apparent’ survival (i.e. the product of the true survival rate and the probability of staying in the study area), we also should allow this age class to have a different survival rate.

For our next model, we would therefore like to have three age classes: “juvenile” (0-1 year old), “immature” (1-2 years old) and “adult” (2 years or older). We need to add a new age variable to the design data:

head(hade.ddl$Phi)
##   par.index model.index group cohort age time occ.cohort Cohort Age Time
## 1         1           1     1   2006   0 2006          1      0   0    0
## 2         2           2     1   2006   1 2007          1      0   1    1
## 3         3           3     1   2006   2 2008          1      0   2    2
## 4         4           4     1   2006   3 2009          1      0   3    3
## 5         5           5     1   2006   4 2010          1      0   4    4
## 6         6           6     1   2006   5 2011          1      0   5    5
ageclass <- NA
ageclass[hade.ddl$Phi$Age == 0] <- "juvenile"
ageclass[hade.ddl$Phi$Age ==1] <- "immature"
ageclass[hade.ddl$Phi$Age > 1] <- "adult"
hade.ddl$Phi$ageclass <- as.factor(ageclass)

head(hade.ddl$Phi, n=15)
##    par.index model.index group cohort age time occ.cohort Cohort Age Time
## 1          1           1     1   2006   0 2006          1      0   0    0
## 2          2           2     1   2006   1 2007          1      0   1    1
## 3          3           3     1   2006   2 2008          1      0   2    2
## 4          4           4     1   2006   3 2009          1      0   3    3
## 5          5           5     1   2006   4 2010          1      0   4    4
## 6          6           6     1   2006   5 2011          1      0   5    5
## 7          7           7     1   2006   6 2012          1      0   6    6
## 8          8           8     1   2006   7 2013          1      0   7    7
## 9          9           9     1   2006   8 2014          1      0   8    8
## 10        10          10     1   2006   9 2015          1      0   9    9
## 11        11          11     1   2006  10 2016          1      0  10   10
## 12        12          12     1   2007   0 2007          2      1   0    1
## 13        13          13     1   2007   1 2008          2      1   1    2
## 14        14          14     1   2007   2 2009          2      1   2    3
## 15        15          15     1   2007   3 2010          2      1   3    4
##    ageclass
## 1  juvenile
## 2  immature
## 3     adult
## 4     adult
## 5     adult
## 6     adult
## 7     adult
## 8     adult
## 9     adult
## 10    adult
## 11    adult
## 12 juvenile
## 13 immature
## 14    adult
## 15    adult

Then set up to new model structures that make use of this new age variable, and then run two extra models:

ageclass <- list(formula=~ageclass)
timeageclass <- list(formula=~time + ageclass)

Phi.ageclass.P.dot <- mark(hade.process,hade.ddl,model.parameters=list(Phi=ageclass, p=dot))
## 
## Output summary for CJS model
## Name : Phi(~ageclass)p(~1) 
## 
## Npar :  4
## -2lnL:  941.7753
## AICc :  949.8681
## 
## Beta
##                        estimate        se        lcl        ucl
## Phi:(Intercept)       1.2463452 0.1952534  0.8636486  1.6290419
## Phi:ageclassimmature -1.1532483 0.3757420 -1.8897027 -0.4167939
## Phi:ageclassjuvenile -1.2191000 0.2836041 -1.7749640 -0.6632360
## p:(Intercept)        -0.1666705 0.1423216 -0.4456208  0.1122798
## 
## 
## Real Parameter Phi
##  
##           2006      2007      2008      2009      2010      2011      2012
## 2006 0.5068109 0.5232574 0.7766666 0.7766666 0.7766666 0.7766666 0.7766666
## 2007           0.5068109 0.5232574 0.7766666 0.7766666 0.7766666 0.7766666
## 2008                     0.5068109 0.5232574 0.7766666 0.7766666 0.7766666
## 2009                               0.5068109 0.5232574 0.7766666 0.7766666
## 2010                                         0.5068109 0.5232574 0.7766666
## 2011                                                   0.5068109 0.5232574
## 2012                                                             0.5068109
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2013      2014      2015      2016
## 2006 0.7766666 0.7766666 0.7766666 0.7766666
## 2007 0.7766666 0.7766666 0.7766666 0.7766666
## 2008 0.7766666 0.7766666 0.7766666 0.7766666
## 2009 0.7766666 0.7766666 0.7766666 0.7766666
## 2010 0.7766666 0.7766666 0.7766666 0.7766666
## 2011 0.7766666 0.7766666 0.7766666 0.7766666
## 2012 0.5232574 0.7766666 0.7766666 0.7766666
## 2013 0.5068109 0.5232574 0.7766666 0.7766666
## 2014           0.5068109 0.5232574 0.7766666
## 2015                     0.5068109 0.5232574
## 2016                               0.5068109
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.4584286 0.4584286 0.4584286 0.4584286 0.4584286 0.4584286 0.4584286
## 2007           0.4584286 0.4584286 0.4584286 0.4584286 0.4584286 0.4584286
## 2008                     0.4584286 0.4584286 0.4584286 0.4584286 0.4584286
## 2009                               0.4584286 0.4584286 0.4584286 0.4584286
## 2010                                         0.4584286 0.4584286 0.4584286
## 2011                                                   0.4584286 0.4584286
## 2012                                                             0.4584286
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.4584286 0.4584286 0.4584286 0.4584286
## 2007 0.4584286 0.4584286 0.4584286 0.4584286
## 2008 0.4584286 0.4584286 0.4584286 0.4584286
## 2009 0.4584286 0.4584286 0.4584286 0.4584286
## 2010 0.4584286 0.4584286 0.4584286 0.4584286
## 2011 0.4584286 0.4584286 0.4584286 0.4584286
## 2012 0.4584286 0.4584286 0.4584286 0.4584286
## 2013 0.4584286 0.4584286 0.4584286 0.4584286
## 2014           0.4584286 0.4584286 0.4584286
## 2015                     0.4584286 0.4584286
## 2016                               0.4584286
Phi.timeageclass.P.dot <- mark(hade.process,hade.ddl,model.parameters=list(Phi=timeageclass, p=dot))
## 
## Note: only 12 parameters counted of 14 specified parameters
## AICc and parameter count have been adjusted upward
## 
## Output summary for CJS model
## Name : Phi(~time + ageclass)p(~1) 
## 
## Npar :  14  (unadjusted=12)
## -2lnL:  918.8078
## AICc :  947.8054  (unadjusted=943.54535)
## 
## Beta
##                        estimate           se           lcl          ucl
## Phi:(Intercept)       2.3229658    0.8397174     0.6771197    3.9688120
## Phi:time2007         -1.4632642    0.8727986    -3.1739495    0.2474211
## Phi:time2008         -0.0406714    0.8469205    -1.7006356    1.6192928
## Phi:time2009         -0.1381503    0.8385447    -1.7816980    1.5053973
## Phi:time2010         -1.2773726    0.8265514    -2.8974134    0.3426682
## Phi:time2011         -0.6270499    1.0335261    -2.6527610    1.3986613
## Phi:time2012         -1.5135325    0.9254581    -3.3274304    0.3003654
## Phi:time2013         13.0047720 2297.1134000 -4489.3375000 4515.3470000
## Phi:time2014         -1.5419169    1.0304345    -3.5615685    0.4777346
## Phi:time2015         -2.2376788    1.0368213    -4.2698486   -0.2055089
## Phi:time2016         15.9741370 3000.8475000 -5865.6871000 5897.6354000
## Phi:ageclassimmature -1.7145926    0.4636716    -2.6233889   -0.8057963
## Phi:ageclassjuvenile -1.5535709    0.4192323    -2.3752663   -0.7318756
## p:(Intercept)        -0.1815968    0.1417470    -0.4594210    0.0962273
## 
## 
## Real Parameter Phi
##  
##         2006      2007      2008      2009      2010      2011      2012
## 2006 0.68339 0.2984079 0.9074000 0.8988776 0.7399278 0.8450006 0.6919887
## 2007         0.3331729 0.6382327 0.8988776 0.7399278 0.8450006 0.6919887
## 2008                   0.6745251 0.6154365 0.7399278 0.8450006 0.6919887
## 2009                             0.6527716 0.3387209 0.8450006 0.6919887
## 2010                                       0.3756677 0.4953310 0.6919887
## 2011                                                 0.5355263 0.2879914
## 2012                                                           0.3221000
## 2013                                                                    
## 2014                                                                    
## 2015                                                                    
## 2016                                                                    
##           2013      2014      2015      2016
## 2006 0.9999998 0.6859061 0.5213089 1.0000000
## 2007 0.9999998 0.6859061 0.5213089 1.0000000
## 2008 0.9999998 0.6859061 0.5213089 1.0000000
## 2009 0.9999998 0.6859061 0.5213089 1.0000000
## 2010 0.9999998 0.6859061 0.5213089 1.0000000
## 2011 0.9999998 0.6859061 0.5213089 1.0000000
## 2012 0.9999988 0.6859061 0.5213089 1.0000000
## 2013 0.9999990 0.2822063 0.5213089 1.0000000
## 2014           0.3159338 0.1639255 1.0000000
## 2015                     0.1872036 0.9999999
## 2016                               0.9999999
## 
## 
## Real Parameter p
##  
##           2007      2008      2009      2010      2011      2012      2013
## 2006 0.4547251 0.4547251 0.4547251 0.4547251 0.4547251 0.4547251 0.4547251
## 2007           0.4547251 0.4547251 0.4547251 0.4547251 0.4547251 0.4547251
## 2008                     0.4547251 0.4547251 0.4547251 0.4547251 0.4547251
## 2009                               0.4547251 0.4547251 0.4547251 0.4547251
## 2010                                         0.4547251 0.4547251 0.4547251
## 2011                                                   0.4547251 0.4547251
## 2012                                                             0.4547251
## 2013                                                                      
## 2014                                                                      
## 2015                                                                      
## 2016                                                                      
##           2014      2015      2016      2017
## 2006 0.4547251 0.4547251 0.4547251 0.4547251
## 2007 0.4547251 0.4547251 0.4547251 0.4547251
## 2008 0.4547251 0.4547251 0.4547251 0.4547251
## 2009 0.4547251 0.4547251 0.4547251 0.4547251
## 2010 0.4547251 0.4547251 0.4547251 0.4547251
## 2011 0.4547251 0.4547251 0.4547251 0.4547251
## 2012 0.4547251 0.4547251 0.4547251 0.4547251
## 2013 0.4547251 0.4547251 0.4547251 0.4547251
## 2014           0.4547251 0.4547251 0.4547251
## 2015                     0.4547251 0.4547251
## 2016                               0.4547251

Look at the update model selection table:

# model selection
hade.cjs.results <- collect.models()
hade.cjs.results
##                        model npar     AICc DeltaAICc       weight Deviance
## 8 Phi(~time + ageclass)p(~1)   14 947.8054  0.000000 5.936613e-01 265.5811
## 3        Phi(~ageclass)p(~1)    4 949.8681  2.062723 2.116529e-01 288.5486
## 6      Phi(~time + age)p(~1)   22 950.0441  2.238758 1.938200e-01 250.3671
## 1             Phi(~age)p(~1)   12 961.5801 13.774764 6.058802e-04 283.6159
## 7   Phi(~time + age)p(~time)   32 963.4889 15.683540 2.332928e-04 241.0215
## 4               Phi(~1)p(~1)    2 968.9553 21.149909 1.516681e-05 311.7009
## 2          Phi(~age)p(~time)   22 969.6318 21.826448 1.081398e-05 269.9548
## 5         Phi(~time)p(~time)   21 975.1827 27.377339 6.739459e-07 277.7241

We can see that the best model is now the one with age class and time effects on survival.

Let’s have a look at the parameter estimates and plot the ones for the first cohort, this time with confidence intervals:

# look at the parameter estimates
Phi.timeageclass.P.dot$results$real   # parameter estimates     
##                         estimate           se           lcl       ucl fixed
## Phi g1 c2006 a0 t2006  0.6833900 1.711638e-01  3.140795e-01 0.9105122      
## Phi g1 c2006 a1 t2007  0.2984079 9.152490e-02  1.529391e-01 0.5004877      
## Phi g1 c2006 a2 t2008  0.9074000 4.426220e-02  7.772687e-01 0.9649320      
## Phi g1 c2006 a3 t2009  0.8988776 4.644160e-02  7.655581e-01 0.9603129      
## Phi g1 c2006 a4 t2010  0.7399278 8.315860e-02  5.494874e-01 0.8690502      
## Phi g1 c2006 a5 t2011  0.8450006 9.039040e-02  5.849791e-01 0.9547214      
## Phi g1 c2006 a6 t2012  0.6919887 9.855110e-02  4.758127e-01 0.8475730      
## Phi g1 c2006 a7 t2013  0.9999998 5.063260e-04 4.473163e-298 1.0000000      
## Phi g1 c2006 a8 t2014  0.6859061 1.345752e-01  3.909604e-01 0.8813602      
## Phi g1 c2006 a9 t2015  0.5213089 1.555544e-01  2.429675e-01 0.7870195      
## Phi g1 c2006 a10 t2016 1.0000000 3.395574e-05 8.713513e-297 1.0000000      
## Phi g1 c2007 a0 t2007  0.3331729 7.175460e-02  2.096730e-01 0.4847944      
## Phi g1 c2007 a1 t2008  0.6382327 1.048223e-01  4.201601e-01 0.8111531      
## Phi g1 c2008 a0 t2008  0.6745251 1.063283e-01  4.450860e-01 0.8426385      
## Phi g1 c2008 a1 t2009  0.6154365 1.085291e-01  3.944722e-01 0.7972182      
## Phi g1 c2009 a0 t2009  0.6527716 9.520550e-02  4.521408e-01 0.8106921      
## Phi g1 c2009 a1 t2010  0.3387209 8.357390e-02  1.977675e-01 0.5155719      
## Phi g1 c2010 a0 t2010  0.3756677 9.800770e-02  2.096557e-01 0.5771406      
## Phi g1 c2010 a1 t2011  0.4953310 1.817767e-01  1.909375e-01 0.8032255      
## Phi g1 c2011 a0 t2011  0.5355263 1.889593e-01  2.064246e-01 0.8363481      
## Phi g1 c2011 a1 t2012  0.2879914 1.281584e-01  1.061993e-01 0.5792870      
## Phi g1 c2012 a0 t2012  0.3221000 1.196184e-01  1.396892e-01 0.5816617      
## Phi g1 c2012 a1 t2013  0.9999988 2.812300e-03 8.053351e-299 1.0000000      
## Phi g1 c2013 a0 t2013  0.9999990 2.394100e-03 9.460355e-299 1.0000000      
## Phi g1 c2013 a1 t2014  0.2822063 1.506892e-01  8.381610e-02 0.6282004      
## Phi g1 c2014 a0 t2014  0.3159338 1.627296e-01  9.549400e-02 0.6689149      
## Phi g1 c2014 a1 t2015  0.1639255 1.054251e-01  4.160720e-02 0.4696305      
## Phi g1 c2015 a0 t2015  0.1872036 1.126080e-01  5.123090e-02 0.4955637      
## Phi g1 c2015 a1 t2016  0.9999999 1.886042e-04 1.568755e-297 1.0000000      
## Phi g1 c2016 a0 t2016  0.9999999 1.605538e-04 1.842833e-297 1.0000000      
## p g1 c2006 a1 t2007    0.4547251 3.514620e-02  3.871232e-01 0.5240383      
##                           note
## Phi g1 c2006 a0 t2006         
## Phi g1 c2006 a1 t2007         
## Phi g1 c2006 a2 t2008         
## Phi g1 c2006 a3 t2009         
## Phi g1 c2006 a4 t2010         
## Phi g1 c2006 a5 t2011         
## Phi g1 c2006 a6 t2012         
## Phi g1 c2006 a7 t2013         
## Phi g1 c2006 a8 t2014         
## Phi g1 c2006 a9 t2015         
## Phi g1 c2006 a10 t2016        
## Phi g1 c2007 a0 t2007         
## Phi g1 c2007 a1 t2008         
## Phi g1 c2008 a0 t2008         
## Phi g1 c2008 a1 t2009         
## Phi g1 c2009 a0 t2009         
## Phi g1 c2009 a1 t2010         
## Phi g1 c2010 a0 t2010         
## Phi g1 c2010 a1 t2011         
## Phi g1 c2011 a0 t2011         
## Phi g1 c2011 a1 t2012         
## Phi g1 c2012 a0 t2012         
## Phi g1 c2012 a1 t2013         
## Phi g1 c2013 a0 t2013         
## Phi g1 c2013 a1 t2014         
## Phi g1 c2014 a0 t2014         
## Phi g1 c2014 a1 t2015         
## Phi g1 c2015 a0 t2015         
## Phi g1 c2015 a1 t2016         
## Phi g1 c2016 a0 t2016         
## p g1 c2006 a1 t2007
Phi.timeageclass.P.dot$results$beta   # parameter estimates on logit scale   
##                        estimate           se           lcl          ucl
## Phi:(Intercept)       2.3229658    0.8397174     0.6771197    3.9688120
## Phi:time2007         -1.4632642    0.8727986    -3.1739495    0.2474211
## Phi:time2008         -0.0406714    0.8469205    -1.7006356    1.6192928
## Phi:time2009         -0.1381503    0.8385447    -1.7816980    1.5053973
## Phi:time2010         -1.2773726    0.8265514    -2.8974134    0.3426682
## Phi:time2011         -0.6270499    1.0335261    -2.6527610    1.3986613
## Phi:time2012         -1.5135325    0.9254581    -3.3274304    0.3003654
## Phi:time2013         13.0047720 2297.1134000 -4489.3375000 4515.3470000
## Phi:time2014         -1.5419169    1.0304345    -3.5615685    0.4777346
## Phi:time2015         -2.2376788    1.0368213    -4.2698486   -0.2055089
## Phi:time2016         15.9741370 3000.8475000 -5865.6871000 5897.6354000
## Phi:ageclassimmature -1.7145926    0.4636716    -2.6233889   -0.8057963
## Phi:ageclassjuvenile -1.5535709    0.4192323    -2.3752663   -0.7318756
## p:(Intercept)        -0.1815968    0.1417470    -0.4594210    0.0962273
# plotting results
plot(1:11, Phi.timeageclass.P.dot$results$real$estimate[1:11], type='l', las=1, ylab = "Annual survival", xlab = "Year of study", ylim=c(0,1))
for (i in 1:11) segments(i, Phi.timeageclass.P.dot$results$real$lcl[i],y1=Phi.timeageclass.P.dot$results$real$ucl[i])

This looks a lot better, even though two survival probabilities (for 2013 and 2016) are still poorly estimated. Since we had little data after 2012 or so, this is perhaps not too surprising. We need to interpret the estimates for these later years very carefully.

Overall, it looks like juvenile survival was roughly around 0.7, immature survival around 0.3 (remembering that this probably reflects a lot of permanent emigration rather than truely low survival) and adult survival around 0.8-0.9. That gels well with what we would expect for this type of bird.

Goodness of fit

But how good is our model, really? The modelling approach we use here makes several assumptions. Most importantly:

  1. That every marked individual in the population at time t has the same survival rate from t to t+1.
  2. That every marked individual in the population at time t has the same recapture probability at that time.
  3. That no marks are lost or misread.
  4. That the process of capturing, marking and releasing individuals is short relative to the survival interval.

The last assumption is clearly violated in our case: we receive resightings on a continuous basis and have lumped them into yearly bins for this analysis. It turns out that survival estimates are quite robust to this kind of lumping even though in our case, it is perhaps a bit extreme and we might want to explore what happens if we restrict our analysis to include only resightings that were made during part of the year.

Assumption 3 is probably realistic. We are not aware that the birds lose rings and we kept some spare colour rings exposed to full sun for many years without noticing any fading of the colour or any other problems. The rings are quite conspicuous and display the 2-letter code clearly. Often, people also send us photos. Mis-identification is therefore also not likely to be a problem in our case.

Assumptions 1 and 2 can be tested with classical goodness-of-fit tests for the fully time-dependent CJS model. I.e. in our case, it tests model ‘Phi.time.P.time’. We know that is not our best model but if that model fits reasonably well, we know our best model is also ok.

require(R2ucare) # load U-CARE

ch.gof <- as.matrix(ch)  # capture histories need to be in matrix format for this procedure

freq <- rep(1, length=dim(ch.gof)[1])  # each capture history refers to 1 individual, therefore freq = 1 for all rows

overall_CJS(ch.gof,freq)
##                           chi2 degree_of_freedom p_value
## Gof test for CJS model: 83.231                31       0

This statistic tests the null hypothesis that the data conform to the assumptions. A small p value indicates evidence against H_0 and therefore lack of fit. So the result above indicates that all is not well with our data. It is an overall test, pooling several subtests.

To diagnose the problem, we need to look at the individual subtests separately:

test3sr(ch.gof,freq)
## $test3sr
##      stat        df     p_val sign_test 
##    17.894    10.000     0.057     2.513 
## 
## $details
##    component  stat p_val signed_test  test_perf
## 1          2 0.182  0.67      -0.427     Fisher
## 2          3 4.027 0.045       2.007 Chi-square
## 3          4 1.728 0.189       1.315 Chi-square
## 4          5 1.357 0.244       1.165 Chi-square
## 5          6 0.351 0.553       0.592     Fisher
## 6          7 0.144 0.705       0.379 Chi-square
## 7          8 8.968 0.003       2.995     Fisher
## 8          9     0     1           0     Fisher
## 9         10  0.51 0.475       0.714     Fisher
## 10        11 0.627 0.429      -0.792     Fisher
test3sm(ch.gof,freq)
## $test3sm
##  stat    df p_val 
## 5.614 6.000 0.468 
## 
## $details
##    component  stat df p_val  test_perf
## 1          2 0.936  1 0.333     Fisher
## 2          3 3.155  1 0.076 Chi-square
## 3          4 1.129  1 0.288 Chi-square
## 4          5     0  1     1     Fisher
## 5          6     0  1     1     Fisher
## 6          7 0.394  1  0.53     Fisher
## 7          8     0  0     0       None
## 8          9     0  0     0       None
## 9         10     0  0     0       None
## 10        11     0  0     0       None
test2ct(ch.gof,freq)
## $test2ct
##      stat        df     p_val sign_test 
##    53.996     9.000     0.000    -6.705 
## 
## $details
##   component dof   stat p_val signed_test  test_perf
## 1         2   1  3.452 0.063      -1.858     Fisher
## 2         3   1  8.155 0.004      -2.856 Chi-square
## 3         4   1  9.525 0.002      -3.086 Chi-square
## 4         5   1  3.109 0.078      -1.763 Chi-square
## 5         6   1 13.493     0      -3.673 Chi-square
## 6         7   1  6.238 0.013      -2.498 Chi-square
## 7         8   1  7.025 0.008       -2.65 Chi-square
## 8         9   1      0     1           0     Fisher
## 9        10   1  2.999 0.083      -1.732     Fisher
test2cl(ch.gof,freq)
## $test2cl
##  stat    df p_val 
## 5.727 6.000 0.454 
## 
## $details
##   component dof  stat p_val  test_perf
## 1         2   1 1.913 0.167     Fisher
## 2         3   1 0.748 0.387 Chi-square
## 3         4   1 1.269  0.26 Chi-square
## 4         5   1  0.64 0.424 Chi-square
## 5         6   1     0     1     Fisher
## 6         7   1 1.157 0.282     Fisher
## 7         8   0     0     0       None
## 8         9   0     0     0       None

The Tests 3sr and 3sm roughly deal with the first assumption, i.e. homogeneous survival probabilities. These tests look ok. Even though we know that we have rather strong age effect and these are not accounted for in the GOF test, these tests do not provide evidence for strong heterogeneity in survival.

Test 2ct and 2cl roughly test the second assumption, i.e. homogeneous recapture probabilities. Test 2ct in particular returns a very small P value, indicating that our assumption of homogeneous recapture is violated. This probably has to do with spatial heterogeneity: while we ringed birds over a large area, most resighting effort was concentrated in a relatively small area around Constantia. The next step with this analysis would need to take spatial heterogeneity in recapture into account.

It is also always useful to look at the raw data. A useful summary is the so-called M-array. The first column (a separate vector in the output below) shows the number of individuals ‘released’ each year. This includes all newly ringed birds but also those that were resighted (in traditional capture-mark-recapture experiments they would have been recaptured and re-released). Then, the matrix shows the how many of these individuals were re-sighted again for the first time in subsequent years. And the final vector shows how many individuals were never seen again.

E.g. from the output below, we can see that we released 27 birds during the first year of our study. Of those, 8 were resighted for the first time in the following year, one was resighted for the first time in year 3 and two more in year 4. Sixteen were never seen again.

marray(ch.gof, freq)
## $R
##       [,1]
##  [1,]   27
##  [2,]   73
##  [3,]   59
##  [4,]   95
##  [5,]   65
##  [6,]   29
##  [7,]   29
##  [8,]   16
##  [9,]   20
## [10,]   16
## [11,]    7
## 
## $m
## , , 1
## 
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
##  [1,]    8    0    1    2    0    0    0    0    0     0     0
##  [2,]    0   12    0    2    1    0    1    0    1     0     1
##  [3,]    0    0   19    3    3    2    0    1    1     0     0
##  [4,]    0    0    0   32    5    0    0    2    1     0     0
##  [5,]    0    0    0    0   17    2    1    3    0     0     0
##  [6,]    0    0    0    0    0   15    1    1    0     0     0
##  [7,]    0    0    0    0    0    0    9    1    3     0     0
##  [8,]    0    0    0    0    0    0    0   11    0     0     0
##  [9,]    0    0    0    0    0    0    0    0    8     0     1
## [10,]    0    0    0    0    0    0    0    0    0     6     1
## [11,]    0    0    0    0    0    0    0    0    0     0     3
## 
## 
## $never
##       [,1]
##  [1,]   16
##  [2,]   55
##  [3,]   30
##  [4,]   55
##  [5,]   42
##  [6,]   12
##  [7,]   16
##  [8,]    5
##  [9,]   11
## [10,]    9
## [11,]    4

If recapture probabilities are fairly homogeneous, we would expect to see the highest numbers on the diagonal (it is most likely to see individuals for the first time during the next occasion) and then drop. That seems to be the case in our data. We can clearly see the drop in sample sizes towards the end of the study. But there are no other obvious prolems visible.

We can calculate the ‘overdispersion factor’. The assumptions above imply that our data should follow a certain multivariated distribution. Think of flipping coins and counting heads and tails. In reality, no data set really follows that kind of distribution. Individual’s fates might not be independent or they vary in their probability to be resighted or to survive. These kinds of things cause extra variation that our model doesn’t account for. Our parameter estimates may therefore have confidence intervals that are too narrow. Estimating overdispersion is therefore another way of examining goodness of fit. Dividing the \(\chi^2\) value from our GOF test by the degrees of freedom gives us an estimate of overdispersion. It should be close to 1. If it is a lot larger (e.g. >3), then that can indicate that our model does not describe the structure in our data well.

# measure of overdispersion
chi2 <- overall_CJS(ch.gof,freq)$chi2  # test statistic
df <- overall_CJS(ch.gof,freq)$degree_of_freedom # degrees of freedom
chi2 / df
## [1] 2.684871

Overdispersion is not terrible in this data set and we could consider adjusting our analysis for it. This would imply wider confidence intervals and a tendency to favour simpler models. However, the downside is loss of power and in this case I would certainly try to find a model structure that fits the data better. One option would be to use a multi-state model where the states are different areas. One could then allow the resighting probability to vary among areas.