Documentation
¶
Overview ¶
Package changepoint implements algorithms for changepoint detection.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NonParametric ¶
NonParametric returns indexes of elements that split data into "statistically homogeneous" segments. NonParametric supports nonparametric distributions and has O(N*log(N)) algorithmic complexity. NonParametric uses ED-PELT algorithm for changepoint detection.
The implementation is based on the following papers:
[Haynes2017] Kaylea Haynes, Paul Fearnhead, and Idris A. Eckley. "A computationally efficient nonparametric approach for changepoint detection." Statistics and Computing 27, no. 5 (2017): 1293-1305. https://doi.org/10.1007/s11222-016-9687-5 [Killick2012] Rebecca Killick, Paul Fearnhead, and Idris A. Eckley. "Optimal detection of changepoints with a linear computational cost." Journal of the American Statistical Association 107, no. 500 (2012): 1590-1598. https://arxiv.org/pdf/1101.1438.pdf
Example ¶
package main import ( "fmt" "math" "math/rand" "pgregory.net/changepoint" ) func main() { r := rand.New(rand.NewSource(0)) var data []float64 for i := 0; i < 20; i++ { data = append(data, math.Exp(r.NormFloat64()+1)) } for i := 0; i < 60; i++ { data = append(data, math.Exp(r.NormFloat64())) } for i := 0; i < 20; i++ { data = append(data, math.Exp(r.NormFloat64()-1)) } fmt.Println(changepoint.NonParametric(data, 1)) }
Output: [14 78]
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.