fitCF | R Documentation |
This function fits a model of clutch frequency.
This model is an enhanced version of the one published by Briane et al. (2007).
Parameters are mu
and sd
being the parameters of a
distribution used to model the clutch frequency.
This distribution is used only as a guide but has not statistical meaning.
The parameter p
is the -logit probability that a female is seen
on the beach for a particular nesting event. It includes both the probability
that it is captured but also the probability that it uses that specific beach.
Several categories of females can be included in the model using index after
the name of the parameter, for example mu1
, sd1
and mu2
,
sd2
indicates that two categories of females with different clutch
frequencies distribution are present. Similarly p1
and p2
indicates
that two categories of females with different capture probabilities are present.
If more than one category is used, then it is necessary to include the
parameter OTN
to indicate the relative frequencies of each category.
If two categories are used, one OTN
parameter named ONT1
must
be included. The OTN2
is forced to be 1. Then the relative frequency
for category 1 is OTN1/(OTN1+1)
and for category 2 is 1/(OTN1+1)
.
Same logic must be applied for 3 and more categories with always the last one
being fixed to 1.
if p or a (logit of the capture probability) are equal to -Inf,
the probability of capture is 0 and if they are equal to
+Inf, the probability is 1.
The value of p out of the period
of nesting must be set to +Inf (capture probability=1)
to indicate that no turtle is nesting in this period.
p must be set to -Inf (capture probability=0) to indicate that no
monitoring has been done during a specific period of the nesting season.
The best way to indicate capture probability for 3D model (OCF, ECF, Period)
is to indicate p.period common for all categories and a1, a2, etc for each category.
The capture probability for category 1 will be p.period * a1, and for category 2
will be p.period * a2, etc.
In this case, the parameters p.period should be indicated in fitted parameters
as well as a1, but a2 must be fixed to +Inf in fixed.parameters. Then the capture
probability for category 2 will be p.period and for category 1 a1 * p.period.
If itnmax is equal to 0, it will return the model using the parameters without fitting them.
fitCF(
x = c(mu = 4, sd = 100, p = 0),
fixed.parameters = NULL,
data = stop("Data formated with TableECFOCF() must be provided"),
method = c("Nelder-Mead", "BFGS"),
control = list(trace = 1, REPORT = 100, maxit = 500),
itnmax = c(500, 100),
hessian = TRUE,
parallel = TRUE,
verbose = FALSE
)
x |
Initial parameters to be fitted |
fixed.parameters |
Parameters that are fixed. |
data |
CMR data formated using TableECFOCF() |
method |
Method to be used by optimx() |
control |
List of controls for optimx() |
itnmax |
A vector with maximum iterations for each method. |
hessian |
Logical to estimate SE of parameters |
parallel |
If TRUE, will use parallel computing for ECFOCF_f() |
verbose |
If TRUE, print the parameters at each step |
fitCF fit a model of Clutch Frequency for marine turtles.
Return a list of class ECFOCF with the fit information.
The list has the following items:
data
: The observations to be fitted
par
: The fitted parameters
SE
: The standard error of parameters if hessian is TRUE
value
: The -log likelihood of observations within the fitted model
AIC
: The AIC of fitted model
mu
: The vector of fitted mu values
sd
: The vector of fitted sd values
prob
: The vector of fitted capture probabilities
a
: The vector of fitted capture probabilities multiplier
OTN
: The vector of fitted relative probabilities of contribution
period_categories
: A list with the different period probabilities as named vectors for each category
period
: The combined period probabilities using OTN as named vector
CF_categories
: A list with the different CF probabilities as named vectors for each category
CF
: The combined CF probabilities using OTN as named vector
ECFOCF_categories
: A list with the different probability ECFOCF tables for each category
ECFOCF
: The combined table of ECFOCF using OTN probabilities tables
ECFOCF_0
: The combined table of ECFOCF probabilities tables using OTN without the OCF=0
SE_df
: A data.frame with SE and 95% confidence intervals for meanx and vx (mean and variance of clutch frequency for x category), OTNx (proportion for x category), and probx (capture probability for x category)
Marc Girondot marc.girondot@gmail.com
Briane J-P, Rivalan P, Girondot M (2007) The inverse problem applied to the Observed Clutch Frequency of Leatherbacks from Yalimapo beach, French Guiana. Chelonian Conservation and Biology 6:63-69
Fossette S, Kelle L, Girondot M, Goverse E, Hilterman ML, Verhage B, Thoisy B, de, Georges J-Y (2008) The world's largest leatherback rookeries: A review of conservation-oriented research in French Guiana/Suriname and Gabon. Journal of Experimental Marine Biology and Ecology 356:69-82
Other Model of Clutch Frequency:
ECFOCF_full()
,
ECFOCF_f()
,
TableECFOCF()
,
fitCF_MHmcmc_p()
,
fitCF_MHmcmc()
,
generateCF()
,
lnLCF()
,
logLik.ECFOCF()
,
plot.ECFOCF()
,
plot.TableECFOCF()
## Not run:
library(phenology)
# Example
data(MarineTurtles_2002)
ECFOCF_2002 <- TableECFOCF(MarineTurtles_2002)
# Parametric model for clutch frequency
o_mu1p1_CFp <- fitCF(x = c(mu = 2.1653229641404539,
sd = 1.1465246643327098,
p = 0.25785366120357966),
fixed.parameters=NULL,
data=ECFOCF_2002, hessian = TRUE)
# Non parametric model for clutch frequency
o_mu1p1_CFnp <- fitCF(x = c(mu.1 = 18.246619595610383,
mu.2 = 4.2702163522832892,
mu.3 = 2.6289986859556458,
mu.4 = 3.2496360919228611,
mu.5 = 2.1602522716550943,
mu.6 = 0.68617023351032846,
mu.7 = 4.2623607001877026,
mu.8 = 1.1805600042630455,
mu.9 = 2.2786176350939731,
mu.10 = 0.47676265496204945,
mu.11 = 5.8988238539197062e-08,
mu.12 = 1.4003187851424953e-07,
mu.13 = 2.4128444894899776e-07,
mu.14 = 2.4223748020049825e-07,
p = 0.32094401970037578),
fixed.parameters=c(mu.15 = 1E-10),
data=ECFOCF_2002, hessian = TRUE)
o_mu2p1 <- fitCF(x = c(mu1 = 1.2190766766978423,
sd1 = 0.80646454821956925,
mu2 = 7.1886819592223246,
sd2 = 0.18152887523015518,
p = 0.29347220802963259,
OTN = 2.9137627675219533),
fixed.parameters=NULL,
data=ECFOCF_2002, hessian = TRUE)
o_mu1p2 <- fitCF(x = c(mu = 5.3628701816871462,
sd = 0.39390555498088764,
p1 = 0.61159637544418755,
p2 = -2.4212753004659189,
OTN = 0.31898004668901009),
data=ECFOCF_2002, hessian = TRUE)
o_mu2p2 <- fitCF(x = c(mu1 = 0.043692606004492131,
sd1 = 1.9446036983033428,
mu2 = 7.3007868915644751,
sd2 = 0.16109296152913491,
p1 = 1.6860260469536992,
p2 = -0.096816113083788985,
OTN = 2.2604431232973501),
data=ECFOCF_2002, hessian = TRUE)
compare_AIC(mu1p1=o_mu1p1_CFp,
mu2p1=o_mu2p1,
mu1p2=o_mu1p2,
mu2p2=o_mu2p2)
o_mu3p3 <- fitCF(x = c(mu1 = 0.24286312214288761,
sd1 = 0.34542255091729313,
mu2 = 5.0817174343025551,
sd2 = 1.87435099405695,
mu3 = 5.2009265101740683,
sd3 = 1.79700447678357,
p1 = 8.8961708614726156,
p2 = 0.94790116453886453,
p3 = -0.76572930634505421,
OTN1 = 1.2936848663276974,
OTN2 = 0.81164278235645926),
data=ECFOCF_2002, hessian = TRUE)
o_mu3p1 <- fitCF(x = structure(c(0.24387978183477,
1.2639261745506,
4.94288464711349,
1.945082889758,
4.9431672350811,
1.287663104591,
0.323636536050397,
1.37072039291397,
9.28055412564559e-06),
.Names = c("mu1", "sd1", "mu2",
"sd2", "mu3", "sd3",
"p", "OTN1", "OTN2")),
data=ECFOCF_2002, hessian = TRUE)
o_mu1p3 <- fitCF(x = structure(c(4.65792402108387,
1.58445909785,
-2.35414198317177,
0.623757854800649,
-3.62623634029326,
11.6950204755787,
4.05273728846523),
.Names = c("mu", "sd",
"p1", "p2", "p3",
"OTN1", "OTN2")),
data=ECFOCF_2002, hessian = TRUE)
compare_AIC(mu1p1=o_mu1p1,
mu2p1=o_mu2p1,
mu1p2=o_mu1p2,
mu2p2=o_mu2p2,
mu3p3=o_mu3p3,
mu1p3=o_mu1p3,
mu3p1=o_mu3p1)
# 3D model for (ECF, OCF, period)
ECFOCF_2002 <- TableECFOCF(MarineTurtles_2002,
date0=as.Date("2002-01-01"))
fp <- rep(0, dim(ECFOCF_2002)[3])
names(fp) <- paste0("p.", formatC(1:(dim(ECFOCF_2002)[3]), width=2, flag="0"))
par <- c(mu = 2.6404831115214353,
sd = 0.69362774786433479,
mu_season = 12.6404831115214353,
sd_season = 1.69362774786433479)
par <- c(par, fp[attributes(ECFOCF_2002)$table["begin"]:
attributes(ECFOCF_2002)$table["final"]])
# The value of p (logit of the capture probability) out of the period
# of nesting must be set to +Inf (capture probability=1)
# to indicate that no turtle is nesting in this period
# p must be set to -Inf (capture probability=0) to indicate that no
# monitoring has been done during a specific period of the nesting season.
fixed.parameters <- c(p=+Inf)
# The fitted values are:
par <- c(mu = 2.4911638591178051,
sd = 0.96855483039640977,
mu_season = 13.836059118657793,
sd_season = 0.17440085345943984,
p.10 = 1.3348233607728222,
p.11 = 1.1960387774393837,
p.12 = 0.63025680979544774,
p.13 = 0.38648155002707452,
p.14 = 0.31547864054366048,
p.15 = 0.19720001827017075,
p.16 = 0.083199496372073328,
p.17 = 0.32969130595897905,
p.18 = 0.36582777525265819,
p.19 = 0.30301248314170637,
p.20 = 0.69993987591518514,
p.21 = 0.13642423871641118,
p.22 = -1.3949268190534629)
o_mu1p1season1 <- fitCF(x=par, data=ECFOCF_2002,
fixed.parameters=fixed.parameters)
# Same model but with two different models of capture probabilities
fp <- rep(0, dim(ECFOCF_2002)[3])
names(fp) <- paste0("p1.", formatC(1:(dim(ECFOCF_2002)[3]), width=2, flag="0"))
par <- c(mu = 2.6404831115214353,
sd = 0.69362774786433479,
mu_season = 12.6404831115214353,
sd_season = 1.69362774786433479)
par <- c(par, fp[attributes(ECFOCF_2002)$table["begin"]:
attributes(ECFOCF_2002)$table["final"]])
names(fp) <- paste0("p2.", formatC(1:(dim(ECFOCF_2002)[3]), width=2, flag="0"))
par <- c(par, fp[attributes(ECFOCF_2002)$table["begin"]:
attributes(ECFOCF_2002)$table["final"]])
fixed.parameters <- c(p1=+Inf, p2=+Inf)
o_mu1p2season1 <- fitCF(x=par, data=ECFOCF_2002,
fixed.parameters=fixed.parameters)
# Here the two different capture probabilities are different
# by a constant:
# p1=invlogit(-p) [Note that invlogit(-a1) = 1]
# p2=invlogit(-p)*invlogit(-a2)
fp <- rep(0, dim(ECFOCF_2002)[3])
names(fp) <- paste0("p.", formatC(1:(dim(ECFOCF_2002)[3]), width=2, flag="0"))
par <- c(mu = 2.6404831115214353,
sd = 0.69362774786433479,
mu_season = 12.6404831115214353,
sd_season = 1.69362774786433479,
a2=0)
par <- c(par, fp[attributes(ECFOCF_2002)$table["begin"]:
attributes(ECFOCF_2002)$table["final"]])
fixed.parameters <- c(a1=+Inf, p=+Inf)
o_mu1p1aseason1 <- fitCF(x=par, data=ECFOCF_2002,
fixed.parameters=fixed.parameters)
data=ECFOCF_2002)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.