CaPow! is a new Shiny web application for open-population capture-recapture models, with an emphasis on study design and model exploration as well as data analysis. The key features are an easy-to-use web interface for designing simulations and models, and efficient computation which enables thousands of simulated datasets to be fitted within seconds. Modelling follows the well-known POPAN style, including a superpopulation with time-varying population sizes, survival rates, and either free birth parameters or a constant population growth rate. Outputs include power analysis of proposed study designs, and diagnostic tools for exploring model precision and effects of model misspecification.
CaPow! runs online in a web browser and does not require any software to be installed. Sessions can be saved and uploaded again for future use.
Watch the video introduction, explore the modules above, or view the presentation slides below for a more detailed explanation.
Note - Any objects that you create in the app will be deleted if you disconnect, refresh the page, hit the back button, or load a previously saved session, so save your work often!
Feedback sent to the email address above would be greatly appreciated, and is likely to guide further development.
Model Name | |
Description | |
Number of Time Periods | |
Superpopulation Size (Ns) |
Lambda (λ) | Phi (Φ) | Start time |
Easy-Fill Panel:
Capture ProbabilityUse the examples to fill in an expression. e.g. p(t) or p_%t
generates p1, p2, p3, ... e.g. p(.) or p1
generates p1, p1, p1, ... e.g. 0.1, p2, p3, 0.2, ...
comma-separated values.
Phi (Φ) | Start time |
Easy-Fill Panel:
Capture Probability Probability of EntryUse the examples to fill in an expression. e.g. p(t) or p_%t
generates p1, p2, p3, ... e.g. p(.) or p1
generates p1, p1, p1, ... e.g. 0.1, p2, p3, 0.2, ...
comma-separated values.
Easy-Fill Panel:
Time Labels Survival Rate Capture Probability Probability of EntryUse the examples to fill in an expression.
%t
generates times 1, 2, 3, ..._
pastes strings together%t
generates time labels 1, 2, 3, ... e.g. 2000 + %t
generates 2001, 2002, 2003, ... e.g. Week_%t
generates Week1, Week2, Week3, ... e.g. p(t) or p_%t
generates p1, p2, p3, ... e.g. 0.1, p2, p3, 0.2, ...
comma-separated values.
Entering values into the matrix: Press Enter or click out of the box to commit the change.
Using the EasyFill Panel: The EasyFill panel offers several commonly-used short cuts. Changes will not be applied until the corresponding checkbox is ticked. You should untick the box straight after applying the changes, to avoid confusion when you make subsequent changes in the matrix or switch between model types.
Follow these examples:
After you have saved the model, you must untick the Save Model box to continue to edit new models.
In some cases, you will get a warning when saving and you must decide whether you want to continue. These cases are:
The superpopulation size, N, will cover the period from the first ticked survey to the last ticked survey, regardless of how many time periods are entered here. Time periods must be equally-spaced if using the lambda-POPAN model or the standard POPAN model with single Phi.
Three entry boxes are displayed for lambda-POPAN models:
Lambda:
Two entry boxes are displayed for single-Phi models:
Phi:
This means that a model of the form p(t)pent(t) is not identifiable, because p1 and pent1 are confounded. (If no survey occurs at time 1, the problem applies to the first time at which there is a survey.)
To unconfound these parameters, choose another p to make equal to p1, or another pent to make equal to pent1. Note that pent1 is listed as 'Calculated', but you can still enter pent1 as the pent parameter for any other time t.
The software will allow you to save a model suspected to be non-identifiable, but you should be careful that outputs from the model are likely to be unreliable. Check the boxplots and other CaPow results carefully for evidence of problems.
For standard-POPAN models, you have a completely free choice of how you describe your time periods, and whether or not they are equally spaced. These are for your reference only, and will not be used in model fitting.
This means that a model of the form p(t)pent(t) is not identifiable, because the first p and the first pent are confounded. Similarly, a model of the form p(t)phi(t) is not identifiable, because the last p and the last phi are confounded.
To unconfound the first p and pent, choose another p to make equal to p1, or another pent to make equal to pent1. Note that pent1 is listed as 'Calculated', but you can still enter pent1 as the pent parameter for any other time t. (If there is no survey at time 1, the same applies to the first time at which there is a survey.)
To unconfound the last p and phi, choose another p to make equal to the last p, or another phi to make equal to the last phi (corresponding to the penultimate ticked survey).
The software will allow you to save a model suspected to be non-identifiable, but you should be careful that outputs from the model are likely to be unreliable. Check the boxplots and other CaPow results carefully for evidence of problems.
Sim Name | |
Description | |
Number of Time Periods | |
Superpopulation Size (Ns) |
Lambda (λ) | Phi (Φ) | Start time |
Easy-Fill Panel:
Capture ProbabilityUse the examples to fill in an expression. e.g. 0.2
generates 0.2, 0.2, 0.2, ... e.g. 0.1, 0.2, 0.3, ...
comma-separated values.
Phi (Φ) | Start time |
Easy-Fill Panel:
Capture Probability Probability of EntryUse the examples to fill in an expression. e.g. 0.2
generates 0.2, 0.2, 0.2, ... e.g. 0.1, 0.2, 0.3, ...
comma-separated values.
Easy-Fill Panel:
Time Labels Capture Probability Survival Rate Probability of EntryUse the examples to fill in an expression.
%t
generates times 1, 2, 3, ..._
pastes strings together%t
generates time labels 1, 2, 3, ... e.g. 2000 + %t
generates 2001, 2002, 2003, ... e.g. Week_%t
generates Week1, Week2, Week3, ... e.g. 0.2
generates 0.2, 0.2, 0.2, ... e.g. 0.1, 0.2, 0.3, ...
comma-separated values.
For example, you can find the correct superpopulation size Ns for the period 2001 to 2014 inclusive, such that the expected population size in 2003 is E(N2003)=400 animals. The base time is t=2003, and the base population size is E(Nt)=400.
Accommodating Survey Gaps:
The Ns value covers the total number of animals that were ever exposed to a survey. If there are gaps between surveys, some animals may be born and die within a gap and are omitted from the superpopulation. You can accommodate survey gaps by using the entry box 'Surveys' instead of the 'Start' and 'End' boxes.
To set the input parameters, enter:
To set the time range over which Ns will be calculated, either :
The 'Start' and 'End' boxes are ignored if the 'Surveys' box has an entry.
The base time does not need to be in the range specified by Ns: for example, you can specify there should be E(N1999)=300 animals in 1999, and find the correct superpopulation size Ns for the period 2001-2014.Constant values of lambda and phi will be assumed for the full span of time embracing the base time and the Ns period. Time points are assumed equally spaced, and must be integers.
Output:Lambda (λ) | Phi (Φ) | Base time, t | Base pop, E(Nt) |
Start time | End time | Or: | Surveys, e.g. 2001-2003, 2008, 2014 |
Entering values into the matrix: Press Enter or click out of the box to commit the change.
Using the EasyFill Panel: The EasyFill panel offers several short cuts. Changes will not be applied until the corresponding checkbox is ticked. You should untick the box straight after applying the changes, to avoid confusion when you make subsequent changes in the matrix or switch between model types.
Follow these examples:
After you have saved the simset, you must untick the Save Sim box to continue to edit new simsets.
In some cases, you will get a warning when saving and you must decide whether you want to continue. These cases are:
The superpopulation size, N, will cover the period from the first ticked survey to the last ticked survey, regardless of how many time periods are entered here. Time periods must be equally-spaced if using the lambda-POPAN model or the standard POPAN model with single Phi.
Three entry boxes are displayed for lambda-POPAN models:
Lambda:
Two entry boxes are displayed for single-Phi models:
Phi:
For standard-POPAN models, you have a completely free choice of how you describe your time periods, and whether or not they are equally spaced. These are for your reference only, and will not be used in model fitting.
N | lambda | phi | p | pent |
Title | Text | Axis | Limits |
Clear Space: | Header | Footer |
N | lambda | phi | p | pent |
N | lambda | phi | p | pent |
Title | Text | Axis | Points |
N | lambda | phi | p | pent |
Title | Axis | Points |
Clear Space: | Header | Footer |
TrueValue: generating value for simulations |
meanEst: mean of estimated values |
relativeBias: (meanEst - TrueValue) / TrueValue |
empiricalSD: standard deviation of estimated values |
empiricalCV: coefficient of variation (CV) of estimated values = empiricalSD / meanEst |
RMSE: root mean squared error = sqrt[ mean{ (Estimates - TrueValue)2 } ] |
meanSE: mean of estimated standard errors = mean { sqrt( Variance Estimates ) } |
meanEstCV: mean of estimated CVs = mean { sqrt( Variance Estimates ) / Parameter Estimates } |
medCIwidth: median width of confidence intervals |
CIcover: percentage of simulations for which the confidence interval encloses TrueValue |
Overall Power (%): percentage of simulations in which the queried value is outside the confidence interval. Specifies power to detect the true parameter differs from the queried value. |
CI Above (%): the CI lies wholly above the queried value. Specifies power to detect the true parameter is greater than the queried value. |
CI Below (%): the CI lies wholly below the queried value. Specifies power to detect the true parameter is less than the queried value. |
N | lambda | phi | p | pent |
Title | Axis | Points |
Clear Space: | Header | Footer |