id: org.apache.streampipes.processors.changedetection.jvm.cusum title: Cusum sidebar_label: Cusum


Description

Performs change detection on a single dimension of the incoming data stream. A change is detected if the cumulative deviation from the mean exceeds a certain threshold. This implementation tracks the mean and the standard deviation using Welford's algorithm, which is well suited for data streams.


Required input

The cusum processor requires a data stream that has at least one field containing a numerical value.


Configuration

Value to observe

Specify the dimension of the data stream (e.g. the temperature) on which to perform change detection.

Parameter k

k controls the sensitivity of the change detector. Its unit are standard deviations. For an observation x_n, the Cusum value is S_n = max(0, S_{n-1} - z-score(x_n) - k). Thus, the cusum-score S icnreases if S_{n-1} - z-score(x_n) > k.

Parameter h

The alarm theshold in standard deviations. An alarm occurs if S_n > h

Output

This processor outputs the original data stream plus

  • cusumLow: The cusum value for negative changes
  • cusumHigh: The cusum value for positive changes
  • changeDetectedLow: Boolean indicating if a negative change was detected
  • changeDetectedHigh: Boolean indicating if a positive change was detected