This function allows the point estimates and confidence intervals of an initial estimated movement model to be improved by parametric boostrap, as described in Fleming et al (2019).

ctmm.boot(data,CTMM,method=CTMM$method,AICc=FALSE,iterate=FALSE,robust=FALSE,error=0.01,
          cores=1,trace=TRUE,...)

Arguments

data

Timeseries data represented as a telemetry object.

CTMM

A ctmm movement-model object from the output of ctmm.fit containing the initial parameter estimates.

method

Fitting method to use: "ML", "HREML", "pREML", "pHREML", or "REML". See ctmm.fit for descriptions.

AICc

Run dual set of simulations to approximate AICc values via Kullback–Leibler divergence. Otherwise, only the AIC is updated.

iterate

Iteratively solve for the parameters such that the average estimate (of method) is that of the data, whereas with iterate=FALSE only the first-order correction is calculated from the initial estimate.

robust

Uses robust estimates of the average and covariation for debiasing. Useful when parameters are near boundaries.

error

Relative standard error target for bootstrap ensemble estimates and nonlinear iterations.

cores

Number of simulations to run in parallel. cores=NULL will use all cores, while cores<0 will reserve abs(cores).

trace

Report progress updates. Can be among 0:2 with increasing detail.

...

Further arguments passed to ctmm.fit.

Value

A model fit object with relatively unbiased estimates of location covariance, and autocorrelation timescales (and more accurate CIs than ctmm.fit). If AICc=TRUE, then, in addition to an updated AICc slot, the model fit object will also contain a VAR.AICc slot quantifying the numerical variance in the AICc estimate. This variance can be decreased by decreasing argument error.

References

C. H. Fleming, M. J. Noonan, E. P. Medici, J. M. Calabrese, ``Overcoming the challenge of small effective sample sizes in home-range estimation'', Methods in Ecology and Evolution 10:10, 1679-1689 (2019) doi:10.1111/2041-210X.13270 .

Author

C. H. Fleming.

See also

Examples

# \donttest{
# Load package and data
library(ctmm)
data(gazelle)
DATA <- gazelle[[3]]

GUESS <- ctmm.guess(DATA,interactive=FALSE)
FIT <- ctmm.select(DATA,GUESS)

# some human-readable information
summary(FIT)
#> $name
#> [1] "OUf"
#> 
#> $DOF
#>      mean      area diffusion     speed 
#>  3.719081  4.105042 75.546367 18.709784 
#> 
#> $CI
#>                                           low         est        high
#> area (square kilometers)          7031.905004 25246.63769 54889.38680
#> τ (days)                             2.805659     4.43780     7.01941
#> speed (kilometers/day)               9.096397    11.74921    14.39671
#> diffusion (square kilometers/day)  175.074470   222.37629   275.24880
#> 

# in general, you will want to set iterate=TRUE,trace=TRUE
BOOT <- ctmm.boot(DATA,FIT,iterate=FALSE,trace=FALSE)

# compare to the previous estimate
summary(BOOT)
#> $name
#> [1] "OUf"
#> 
#> $DOF
#>      mean      area diffusion     speed 
#>  3.645837  3.521521 53.247738 16.899604 
#> 
#> $CI
#>                                           low          est         high
#> area (square kilometers)          6315.692787 26009.048716 59377.877730
#> τ (days)                             2.852065     4.573115     7.332713
#> speed (kilometers/day)               8.830832    11.580720    14.325160
#> diffusion (square kilometers/day)  166.648035   222.313092   285.876260
#> 
# }