bouts2NLS: Fit mixture of 2 Poisson Processes to Log Frequency data In diveMove: Dive analysis and calibration

Description

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.

Usage

 ```1 2 3 4``` ```bouts2.nlsFUN(x, a1, lambda1, a2, lambda2) bouts2.nls(lnfreq, start, maxiter) bouts2.nlsBEC(fit) plotBouts2.nls(fit, lnfreq, bec.lty, ...) ```

Arguments

 `x` numeric vector with values to model. `a1, lambda1, a2, lambda2` numeric: parameters from the mixture of Poisson processes. `lnfreq` `data.frame` with named components lnfreq (log frequencies) and corresponding x (mid points of histogram bins). `start, maxiter` Arguments passed to `nls`. `fit` nls object. `bec.lty` Line type specification for drawing the BEC reference line. `...` Arguments passed to `plot.default`.

Details

`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.

Value

`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.

Author(s)

Sebastian P. Luque [email protected]

References

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`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26``` ```## Using the Example from '?diveStats': utils::example("diveStats", package="diveMove", ask=FALSE, echo=FALSE) ## 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) ```