Maximum Likelihood Analysis of Animal Movement Behavior Using Multivariate Hidden Markov Models

Extended tools for analyzing telemetry data using generalized hidden Markov models. These include data pre-processing and visualization, fitting HMMs to location and auxiliary biotelemetry or environmental data, biased and correlated random walk movement models, multiple imputation for incorporating location measurement error and missing data, user-specified design matrices and constraints for covariate modelling of parameters, decoding of the state process, visualization of fitted models, model checking and selection, and simulation. See McClintock and Michelot (2017) .

An R package for Maximum likelihood analysis Of animal MovemENT behavior Using multivariate Hidden Markov Models

Get started with the vignette: Guide to using momentuHMM

Installation instructions

CRAN release

The package is available on CRAN. To install it:


Install from Github

To install the latest (stable) version of the package from Github:


To install the latest (unstable) version of the package from Github:

install_github("bmcclintock/momentuHMM", ref="develop")


McClintock, B.T., Michelot, T. (2017) momentuHMM: R package for generalized hidden Markov models of animal movement. arXiv:1710.03786.

McClintock, B.T., King R., Thomas L., Matthiopoulos J., McConnell B.J., Morales J.M. (2012) A general discrete-time modeling framework for animal movement using multistate random walks. Ecological Monographs, 82(3), 335-349.

McClintock, B.T. (2017) Incorporating telemetry error into hidden Markov models of animal movement using multiple imputation. Journal of Agricultural, Biological, and Environmental Statistics, 22(3), 249-269.


momentuHMM 1.3.0 2017-12-06


  • Dynamic activity centers (i.e., those with coordinates that can change over time) can now be handled via the centroids argument in prepData and simData. An example based on the group dynamic model of Langrock et al. (2014) has been added to the vignette.

  • initialPosition argument in simData can now be specified as a list indicating the initial position for each individual


  • multinomial logit link now used on zeroInflation and oneInflation parameters

  • bug fix in calculation of pseudo-residuals (pseudoRes) with zeroInflation and/or oneInflation

  • bug fix in CIreal when natural scale delta estimates are near boundary

  • bug fix in crawlWrap when predTime is of length one

  • bug fix in MIpool when initial distribution includes covariates

  • splines and splines2 package dependencies changed to Suggests in DESCRIPTION file

momentuHMM 1.2.0 2017-10-19


  • Regression formulas can now be specified for the initial distributions of HMMs using the formulaDelta argument in fitHMM, MIfitHMM, and simData. These changes are backwards compatible with previous versions, but note that the number and order of arguments has been changed in fitHMM, MIfitHMM, and simData.


  • If step length is zero at time t or t+1, simData and prepData now return NA for turning angle at time step t

  • bug fix in pseudoRes such that pseudo-residuals now "reset" for each individual

  • bug fix in fitHMM when using fixPar to fix initial distribution (delta)

  • bug fix in fitHMM when nbStates=1 and circularAngleMean=TRUE

  • bug fix in fitHMM when nbStates=1 and retryFits>0

momentuHMM 1.1.1 2017-09-19


  • Normal (Gaussian) and Bernoulli distributions can now be specified for data streams

  • Harbour seal example of McClintock et al (2013) added to vignette


  • added pseudoRes continuity adjustment for discrete distributions

momentuHMM 1.1.0 2017-08-15


  • fixPar argument in fitHMM and MIfitHMM now specified on the same scale as the initial parameters (Par0, beta0, and delta0 arguments)

  • Factor-level covariates (e.g. 'sexM', `sexF') can now be included in pseudo design matrix DM arguments of fitHMM, MIfitHMM, and simData

  • obsPerAnimal argument in simData can now be specified as a list indicating the number of observations for each individual


  • vignette now built using knitr

  • bug fix in crawlWrap when predTimes argument includes times that are before the time of first observation

  • bug fix in plot.miSum calculation of natural scale parameters when cons and/or workcons MIfitHMM arguments are used

momentuHMM 1.0.1 2017-07-17


  • Elephant seal example of Michelot et al (2017) added to vignette


  • turning angles for lat/long coordinates (type='LL') now calculated based on initial bearings using geosphere::bearing in turnAngle

  • bug fix when calculating activity center distances from lat/long coordinates (type='LL') in distAngle

  • bug fix in prepData when successive pairs of coordinates are NA

momentuHMM 1.0.0 2017-06-16

Initial CRAN posting

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.4.0 by Brett McClintock, 24 days ago

Browse source code at

Authors: Brett McClintock, Theo Michelot

Documentation:   PDF Manual  

GPL-3 license

Imports Rcpp, doParallel, foreach, numDeriv, CircStats, crawl, ggmap, ggplot2, mitools, moveHMM, raster, argosfilter, car, mvtnorm, boot, sp, MASS, Brobdingnag, gstat, conicfit, nleqslv, survival, qdapRegex, geosphere, LaplacesDemon, prodlim

Suggests testthat, setRNG, knitr, splines, splines2

Linking to Rcpp, RcppArmadillo

See at CRAN