bouts2NLS: Fit mixture of 2 Poisson Processes to Log Frequency data

Description Usage Arguments Details Value Author(s) References See Also Examples

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 spluque@gmail.com

References

Sibly, R.; Nott, H. and Fletcher, D. (1990) Splitting behaviour into bouts Animal Behaviour 39, 63-69.

See Also

bouts.mle for a better approach; boutfreqs; boutinit

Examples

 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)

diveMove documentation built on May 2, 2019, 4:47 p.m.