Given a ctmm movement model and telemetry data, speed simulates multiple realizations of the individual's trajectory to estimate the time-averaged speed, which is proportional to distance traveled, while speeds estimates instantaneous speeds at a specified array of times t. Both tortuosity (non straight-line motion between the data) and telemetry error can be accounted for. Given only a ctmm movement model and no data, speed calculates the mean speed of the Gaussian movement process. All methods are described in Noonan & Fleming et al (2019).

speed(object,...)

# S3 method for ctmm
speed(object,data=NULL,t=NULL,level=0.95,robust=FALSE,units=TRUE,prior=TRUE,fast=TRUE,
      cor.min=0.5,dt.max=NULL,error=0.01,cores=1,trace=TRUE,...)

# S3 method for telemetry
speed(object,CTMM,t=NULL,level=0.95,robust=FALSE,units=TRUE,prior=TRUE,fast=TRUE,
      cor.min=0.5,dt.max=NULL,error=0.01,cores=1,trace=TRUE,...)

speeds(object,...)

# S3 method for ctmm
speeds(object,data=NULL,t=NULL,cycle=Inf,level=0.95,robust=FALSE,prior=FALSE,fast=TRUE,
       error=0.01,cores=1,trace=TRUE,...)

# S3 method for telemetry
speeds(object,CTMM,t=NULL,cycle=Inf,level=0.95,robust=FALSE,prior=FALSE,fast=TRUE,
       error=0.01,cores=1,trace=TRUE,...)

Arguments

object

A ctmm movement-model or telemetry object, which requires an additional CTMM argument.

data

Optional telemetry object on which the simulations will be conditioned.

CTMM

Movement model object.

t

Array of times to estimate instantaneous speeds at, or range of times to estimate mean speed over.

cycle

Average over time t indices modulo cycle. E.g., for t sequenced by hours, cycle=24 gives daily the cycle of speeds. (Not yet supported.)

level

Confidence level to report on the estimated average speed.

robust

Use robust statistics for the ensemble average and its confidence intervals (see Details).

units

Convert result to natural units.

prior

Account for model parameter uncertainty.

fast

Whether or not to invoke the central-limit theorem when propagating parameter uncertainty (see emulate).

cor.min

Velocity correlation threshold for skipping gaps.

dt.max

Absolute gap sizes to skip (in seconds), alternative to cor.min.

error

Target (relative) standard error.

cores

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

trace

Display a progress bar.

...

Arguments passed to emulate.

Details

The cor.min or dt.max arguments are used to constrain the estimate to be derived from simulations near the data, and therefore ensure that the estimate is more reflective of the data than the model.

If data quality is poor and velocity can barely be resolved, then the sampling distribution may occassionally include impersistent motion and its mean will be infinite. In these cases robust=TRUE can be used to report the sampling distribution's median rather than its mean. The time average of speed, in either case, is still the mean average of times and the resulting quantity is still proportional to distance traveled. Furthermore, note that medians should be compared to medians and means to means, so the robust option should be the same for all compared individuals.

Value

Returns the estimated mean speed of the sampled trajectory with CIs by default. If level=NULL, then the ensemble of mean speeds is returned instead.

References

M. J. Noonan, C. H. Fleming, T. S. Akre, J. Drescher-Lehman, E. Gurarie, A.-L. Harrison, R. Kays, Justin Calabrese, ``Scale-insensitive estimation of speed and distance traveled from animal tracking data'', Movement Ecology, 7:35 (2019).

Author

C. H. Fleming.

Note

The mean speed estimated by speed is applicable only during the sampling periods. If an individual is diurnal/nocturnal and only tracked during the day/night, then the output of speed will only be the mean speed during the day/night. For instance, if an individual is tracked the 12 hours per day during which it is active, and speed reports a mean speed of 10 kilometers per day during those periods, then the average distance traveled per day is only 5 kilometers (from 10 kilometers / day * 12 hours). An average of 10 kilometers would only result if the individual were similarly active for 24 hours a day.

The average speeds estimated here are mean speeds. The speeds reported by summary.ctmm are root-mean-square (RMS) speeds. These quantities are sometimes proportional, but not equivalent.

See also

Examples

# \donttest{
# Load package and data
library(ctmm)
data(buffalo)
DATA <- buffalo$Gabs

GUESS <- ctmm.guess(DATA,interactive=FALSE)
# in general, you should use ctmm.select instead
FIT <- ctmm.fit(DATA,GUESS)

# stationary Gaussian estimate
speed(FIT)
#> $DOF
#>    speed 
#> 1179.979 
#> 
#> $CI
#>                             low      est    high
#> speed (kilometers/day) 11.82248 12.16713 12.5168
#> 
#> attr(,"class")
#> [1] "speed"

# conditional estimate
# you will likely want trace=TRUE
speed(FIT,DATA,trace=FALSE)
#> $DOF
#>    speed 
#> 780.4675 
#> 
#> $CI
#>                             low      est     high
#> speed (kilometers/day) 11.01956 11.41839 11.82068
#> 
#> attr(,"class")
#> [1] "speed"
# }