| bouts2NLS {diveMove} | R Documentation |
Functions to model a mixture of 2 random Poisson processes to histogram-like data of log frequency vs interval mid points. This follows Sibly et al. (1990) method.
bouts2.nlsFUN(x, a1, lambda1, a2, lambda2) bouts2.nls(lnfreq, start, maxiter) bouts2.nlsBEC(fit) plotBouts2.nls(fit, lnfreq, bec.lty, ...)
x |
numeric vector with values to model. |
a1, lambda1, a2, lambda2 |
numeric: parameters from the mixture of Poisson processes. |
lnfreq |
|
start, maxiter |
Arguments passed to |
fit |
nls object. |
bec.lty |
Line type specification for drawing the BEC reference line. |
... |
Arguments passed to |
bouts2.nlsFUN is the function object defining the nonlinear
least-squares relationship in the model. It is not meant to be used
directly, but is used internally by bouts2.nls.
bouts2.nls fits the nonlinear least-squares model itself.
bouts2.nlsBEC calculates the BEC from a list object, as the one
that is returned by nls, representing a fit of the
model. plotBouts2.nls plots such an object.
bouts2.nlsFUN returns a numeric vector evaluating the mixture of 2
Poisson process.
bouts2.nls returns an nls object resulting from fitting this
model to data.
bouts2.nlsBEC returns a number corresponding to the bout ending
criterion derived from the model.
plotBouts2.nls plots the fitted model with the corresponding
data.
Sebastian P. Luque spluque@gmail.com
Sibly, R.; Nott, H. and Fletcher, D. (1990) Splitting behaviour into bouts Animal Behaviour 39, 63-69.
bouts.mle for a better approach;
boutfreqs; boutinit
## Too long for checks
## Using the Example from '?diveStats':
utils::example("diveStats", package="diveMove",
ask=FALSE, echo=FALSE, run.donttest=TRUE)
## Postdive durations
postdives <- tdrX.tab$postdive.dur[tdrX.tab$phase.no == 2]
postdives.diff <- abs(diff(postdives))
## Remove isolated dives
postdives.diff <- postdives.diff[postdives.diff < 2000]
## Construct histogram
lnfreq <- boutfreqs(postdives.diff, bw=0.1, plot=FALSE)
startval <- boutinit(lnfreq, 50)
## Drop names by wrapping around as.vector()
startval.l <- list(a1=as.vector(startval[[1]]["a"]),
lambda1=as.vector(startval[[1]]["lambda"]),
a2=as.vector(startval[[2]]["a"]),
lambda2=as.vector(startval[[2]]["lambda"]))
## Fit the 2 process model
bout.fit <- bouts2.nls(lnfreq, start=startval.l, maxiter=500)
summary(bout.fit)
plotBouts(bout.fit)
## Estimated BEC
bec2(bout.fit)