Learn R Programming

ecp (version 1.5.2)

e.divisive: ENERGY DIVISIVE

Description

Divisive hierarchical algorithm for change point analysis.

Usage

e.divisive(X, sig_lvl=.05, R=199, k=NULL, min_size=30, alpha=1)

Arguments

X
A T by d matrix contating the time series with observations in R^d
sig_lvl
The level at which to test if a proposed change point is statistically significant.
R
Number of permutations to use in the permutation test.
k
Number of change point locations to estimate. If this is NULL then only the statistically significant estimated change points are returned.
min_size
Minimum number of observations between change points.
alpha
The index used for determining the distance between and within segments.

Value

  • The returned value is a list with the following components.
  • cluster_numberThe number of segments within the data created by the change points.
  • order_foundThe order in which the change points were found.
  • listLocatoins of the statistically significant change points.
  • considered_lastLocation of the last tested change point that was not found to be statistically significant.
  • pvalsApproximate p-values found by each permutation test.

Details

Segments are found through the use of a binary bisection method and a permutation test. The time complexity of this method is O(k*T^2), where k is the number of change points found, and T is the number of data points.

References

James NA, Matteson DS (2013). A Nonparametric Approach for Multiple Change Point Analysis of Multivariate Data.

James NA, Matteson DS (2013). ecp: An R Package for Nonparametric Multiple Change Point Analysis of Multivariate Data.

Rizzo ML, Szekely GL (2005). Hierarchical clustering via joint between-within distances: Extending ward's minimum variance method. Journal of Classification. pp. 151 - 183.

Rizzo ML, Szekely GL (2010). Disco analysis: A nonparametric extension of analysis of variance. The Annals of Applied Statistics. pp. 1034 - 1055.

See Also

e.agglo

Examples

Run this code
set.seed(100)
x = matrix(c(rnorm(100),rnorm(100,3),rnorm(100,0,2)))
y = e.divisive(x)
y$list
# 1 101 201 301
y$cluster_number
# 3

Run the code above in your browser using DataLab