@Title(value="Off-line Change Point Detection") @Description(value="Detects multiple change points in a time series") @Reference(authors="D. Picard",title="Testing and Estimating Change-Points in Time Series ",booktitle="Advances in Applied Probability Vol. 17",url="https://doi.org/10.2307/1427090",bibkey="doi:10.2307/1427090") @Reference(authors="E. S. Page",title="On Problems in which a Change in a Parameter Occurs at an Unknown Point",booktitle="Biometrika Vol. 44",url="https://doi.org/10.2307/2333258",bibkey="doi:10.2307/2333258") @Reference(authors="M. Basseville, I. V. Nikiforov",title="Section 2.6: Off-line Change Detection",booktitle="Detection of Abrupt Changes - Theory and Application",url="http://people.irisa.fr/Michele.Basseville/kniga/kniga.pdf",bibkey="books/prentice/BassevilleN93/C2") public class OfflineChangePointDetectionAlgorithm extends AbstractAlgorithm<ChangePoints>
References:
D. Picard
Testing and Estimating Change-Points in Time Series
Advances in Applied Probability Vol. 17
early results along these lines can be found in:
E. S. Page
On Problems in which a Change in a Parameter Occurs at an Unknown Point
Biometrika Vol. 44
also discussed in:
M. Basseville and I. V. Nikiforov
Section 2.6: Off-line Change Detection
Detection of Abrupt Changes - Theory and Application
Modifier and Type | Class and Description |
---|---|
(package private) class |
OfflineChangePointDetectionAlgorithm.Instance
Instance for a single data set.
|
static class |
OfflineChangePointDetectionAlgorithm.Parameterizer
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
(package private) int |
bootstrapSamples
Number of samples for bootstrap significance.
|
private static Logging |
LOG
Class logger
|
(package private) double |
minConfidence
Mininum confidence.
|
(package private) RandomFactory |
rnd
Random generator
|
ALGORITHM_ID
Constructor and Description |
---|
OfflineChangePointDetectionAlgorithm(double confidence,
int bootstrapSteps,
RandomFactory rnd)
Constructor
|
Modifier and Type | Method and Description |
---|---|
static DoubleIntPair |
bestChangeInMean(double[] sums,
int begin,
int end)
Find the best position to assume a change in mean.
|
static void |
cusum(double[] data,
double[] out,
int begin,
int end)
Compute the incremental sum of an array, i.e. the sum of all points up to
the given index.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
ChangePoints |
run(Relation<DoubleVector> relation)
Executes multiple change point detection for given relation
|
static void |
shuffle(double[] bstrap,
int len,
java.util.Random rnd)
Fisher-Yates shuffle of a partial array
|
run
private static final Logging LOG
int bootstrapSamples
double minConfidence
RandomFactory rnd
public OfflineChangePointDetectionAlgorithm(double confidence, int bootstrapSteps, RandomFactory rnd)
confidence
- ConfidencebootstrapSteps
- Steps for bootstrappingpublic ChangePoints run(Relation<DoubleVector> relation)
relation
- the relation to processpublic static void cusum(double[] data, double[] out, int begin, int end)
data
- Input dataout
- Output array (must be large enough).public static DoubleIntPair bestChangeInMean(double[] sums, int begin, int end)
sums
- Cumulative sumsbegin
- Interval beginend
- Interval endpublic static void shuffle(double[] bstrap, int len, java.util.Random rnd)
bstrap
- Data to shufflelen
- Length of valid datarnd
- Random generatorpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<ChangePoints>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<ChangePoints>
Copyright © 2019 ELKI Development Team. License information.