bcpa-package: Behavioral Change Point Analysis

bcpa-packageR Documentation

Behavioral Change Point Analysis


A collection of functions that allows one to perform the behavioral change point analysis (BCPA) as described by Gurarie et al. (2009, Ecology Letters, 12: 395-408). The key features are estimation of discrete changes in time-series data, notable linear and turning components of gappy velocity times series extracted from movement data.


For more movement-appropriate change point analysis, users are encouraged to apply correlated velocity change point analysis as implemented in the smoove package (as of this writing on GitHub at https://github.com/EliGurarie/smoove) which implements methods described in Gurarie et al. 2017.

There is a fairly detailed vignette - type in vignette("bcpa"), and an updated vignette vignette("UnivariateBCPA") with a univariate example. The key analysis function is WindowSweep, and reading its documentation is a good way to start using this package.

WindowSweep uses a suite of functions that might be useful for more narrow analysis. These functions are all available and documented, and are listed here hierarchically, from the most fundamental to the most complex:

  • GetRho maximizes the likelihood to estimate autocorrelation rho or characteristic time-scale tau.

  • GetDoubleL estimates the parameters and returns the log-likelihood at either side of a given break

  • GetBestBreak finds the single best change point according to the likelihood returned by GetDoubleL'](GetDoubleL)

  • GetModels uses a (modified) BIC model selection for all combinations from M0 (μ_1 = μ_2, σ_1 = σ_2, ρ_1 = ρ_2) to M7 (μ_1 \neq μ_2, σ_1 \neq σ_2, ρ_1 \neq ρ_2) to characterize the "Best Break"

  • Finally, WindowSweep sweeps a longer time series with the Best Break / Model Selection analysis, identifying most likely break points and BIC selected models across the time series.

Summary, diagnostic, and plotting functions are:

  • PartitionParameters - estimated parameters of a BCPA.

  • ChangePointSummary - summary table of the change points.

  • plot.bcpa - a plotting method for visualizing the time series with vertical lines as change points.

  • PathPlot - a method for drawing a color-coded track of the analysis.

  • DiagPlot - diagnostic plots for BCPA.

A few preprocessing functions are also available:

  • plot.track - method for plotting a generic "track" object.

  • GetVT - returns step-lengths, absolute and turning angles from track data.


Eliezer Gurarie


  • Gurarie, E., R. Andrews and K. Laidre. 2009. A novel method for identifying behavioural changes in animal movement data. Ecology Letters. 12: 395-408.

  • Gurarie, E., C. Fleming, W.F. Fagan, K. Laidre, J. Hernandez-Pliego, O. Ovaskainen. 2017. Correlated velocity models as a fundamental unit of animal movement: synthesis and applications. Movement Ecology, 5:13.


# Running through a complete analysis:
## loading data
## plotting the track (using the plot.track method)
## Obtaining the movement summary table (with turning angles and step lengths)
  Simp.VT <- GetVT(Simp)
## Applying the analysis
  Simp.ws <- WindowSweep(Simp.VT, "V*cos(Theta)", windowsize = 50, 
                         windowstep = 1, progress=TRUE)
                         } else
 Simp.ws <- WindowSweep(Simp.VT, "V*cos(Theta)", windowsize = 50, 
                         windowstep = 1, progress=FALSE)
## plotting outpots
  plot(Simp.ws, threshold=7)
  plot(Simp.ws, type="flat", clusterwidth=3)
  PathPlot(Simp, Simp.ws)
  PathPlot(Simp, Simp.ws, type="flat")
## Diagnostic of assumptions

bcpa documentation built on May 30, 2022, 5:07 p.m.