StatisticalTestEWMA

class StatisticalTestEWMA(self: visp._visp.core.StatisticalTestEWMA, alpha: float = 0.1f)

Bases: StatisticalTestAbstract

Class that permits to perform Exponentially Weighted Moving Average mean drft tests.

The EWMA test is designed to detect drift in the mean \(\mu\) of an observed signal \(s(t)\) .

The test signal \(w(t)\) is computed as follow:

\(w(0) = \mu\)

\(w(t) = \alpha s(t) + ( 1 - \alpha ) * w(t-1)\)

Be \(\sigma\) the standard deviation of the input signal \(s(t)\) .

A downward alarm is raised if: \(w(t) <= \mu - 3 * \sigma * \sqrt{ \frac{\alpha}{2 - \alpha}}\)

An upward alarm is raised if: \(w(t) >= \mu + 3 * \sigma * \sqrt{ \frac{\alpha}{2 - \alpha}}\)

To detect only downward drifts of the input signal \(s(t)\) use testDownwardMeanDrift() .To detect only upward drifts in \(s(t)\) use testUpwardMeanDrift() . To detect both, downward and upward drifts use testDownUpwardMeanDrift() .

Construct a new vpStatisticalTestEWMA object.

Parameters:
alpha

The forgetting factor.

Methods

__init__

Construct a new vpStatisticalTestEWMA object.

getAlpha

Get the forgetting factor of the algorithm.

getWt

Get the current value of the test signal.

init

Overloaded function.

setAlpha

Set the forgetting factor.

Inherited Methods

getAvailableMeanDriftType

Get the list of available vpMeanDriftType objects that are handled.

setMinStdev

Set the minimum value of the standard deviation that is expected.

testUpwardMeanDrift

Test if an upward mean drift occurred according to the new value of the signal.

MEAN_DRIFT_DOWNWARD

MEAN_DRIFT_NONE

setNbSamplesForStat

Set the number of samples required to compute the mean and standard deviation of the signal and allocate the memory accordingly.

getStdev

Get the standard deviation used as reference.

testDownUpwardMeanDrift

Test if a downward or an upward mean drift occurred according to the new value of the signal.

MeanDriftType

Enum that indicates if a drift of the mean occurred.

vpMeanDriftTypeToString

MEAN_DRIFT_BOTH

MEAN_DRIFT_UNKNOWN

vpMeanDriftTypeFromString

Cast a string into a vpMeanDriftType .

getLimits

Get the upper and lower limits of the test signal.

MEAN_DRIFT_UPWARD

MEAN_DRIFT_COUNT

testDownwardMeanDrift

Test if a downward mean drift occurred according to the new value of the signal.

print

getMean

Get the mean used as reference.

Operators

__doc__

__init__

Construct a new vpStatisticalTestEWMA object.

__module__

Attributes

MEAN_DRIFT_BOTH

MEAN_DRIFT_COUNT

MEAN_DRIFT_DOWNWARD

MEAN_DRIFT_NONE

MEAN_DRIFT_UNKNOWN

MEAN_DRIFT_UPWARD

__annotations__

class MeanDriftType(self, value: int)

Bases: pybind11_object

Enum that indicates if a drift of the mean occurred.

Values:

  • MEAN_DRIFT_NONE: No mean drift occurred

  • MEAN_DRIFT_DOWNWARD: A downward drift of the mean occurred.

  • MEAN_DRIFT_UPWARD: An upward drift of the mean occurred.

  • MEAN_DRIFT_BOTH: Both an aupward and a downward drifts occurred.

  • MEAN_DRIFT_COUNT

  • MEAN_DRIFT_UNKNOWN

__and__(self, other: object) object
__eq__(self, other: object) bool
__ge__(self, other: object) bool
__getstate__(self) int
__gt__(self, other: object) bool
__hash__(self) int
__index__(self) int
__init__(self, value: int)
__int__(self) int
__invert__(self) object
__le__(self, other: object) bool
__lt__(self, other: object) bool
__ne__(self, other: object) bool
__or__(self, other: object) object
__rand__(self, other: object) object
__ror__(self, other: object) object
__rxor__(self, other: object) object
__setstate__(self, state: int) None
__xor__(self, other: object) object
property name : str
__init__(self: visp._visp.core.StatisticalTestEWMA, alpha: float = 0.1f)

Construct a new vpStatisticalTestEWMA object.

Parameters:
alpha

The forgetting factor.

getAlpha(self) float

Get the forgetting factor of the algorithm.

Returns:

float The forgetting factor.

static getAvailableMeanDriftType(prefix: str = <, sep: str =, suffix: str = >) str

Get the list of available vpMeanDriftType objects that are handled.

Parameters:
prefix

The prefix that should be placed before the list.

sep

The separator between each element of the list.

suffix

The suffix that should terminate the list.

Returns:

std::string The list of handled type of process tests, presented as a string.

getLimits(self, limitDown: float, limitUp: float) tuple[float, float]

Get the upper and lower limits of the test signal.

Parameters:
limitDown: float

The lower limit.

limitUp: float

The upper limit.

Returns:

A tuple containing:

  • limitDown: The lower limit.

  • limitUp: The upper limit.

getMean(self) float

Get the mean used as reference.

Returns:

float The mean.

getStdev(self) float

Get the standard deviation used as reference.

Returns:

float The standard deviation.

getWt(self) float

Get the current value of the test signal.

Returns:

float The current value of the test signal.

init(*args, **kwargs)

Overloaded function.

  1. init(self: visp._visp.core.StatisticalTestEWMA, alpha: float) -> None

Initialize the EWMA algorithm.

Parameters:
alpha

The forgetting factor.

  1. init(self: visp._visp.core.StatisticalTestEWMA, alpha: float, mean: float, stdev: float) -> None

Initialize the EWMA algorithm.

Parameters:
alpha

The forgetting factor.

mean

The expected mean of the signal to monitor.

stdev

The expected standard deviation of the signal to monitor.

  1. init(self: visp._visp.core.StatisticalTestAbstract) -> None

(Re)Initialize the algorithm.

static print(type: visp._visp.core.StatisticalTestAbstract.MeanDriftType) None
setAlpha(self, alpha: float) None

Set the forgetting factor.

Parameters:
alpha: float

The forgetting factor.

setMinStdev(self, stdevmin: float) None

Set the minimum value of the standard deviation that is expected. The computed standard deviation cannot be lower this value if set.

Parameters:
stdevmin: float

The minimum value of the standard deviation that is expected.

setNbSamplesForStat(self, nbSamples: int) None

Set the number of samples required to compute the mean and standard deviation of the signal and allocate the memory accordingly.

Parameters:
nbSamples: int

The number of samples we want to use.

testDownUpwardMeanDrift(self, signal: float) visp._visp.core.StatisticalTestAbstract.MeanDriftType

Test if a downward or an upward mean drift occurred according to the new value of the signal.

Note

See testDownwardMeanDrift() testUpwardMeanDrift()

Parameters:
signal: float

The new value of the signal.

Returns:

vpMeanDriftType The type of mean drift that occurred.

testDownwardMeanDrift(self, signal: float) visp._visp.core.StatisticalTestAbstract.MeanDriftType

Test if a downward mean drift occurred according to the new value of the signal.

Note

See testUpwardMeanDrift()

Parameters:
signal: float

The new value of the signal.

Returns:

vpMeanDriftType The type of mean drift that occurred.

testUpwardMeanDrift(self, signal: float) visp._visp.core.StatisticalTestAbstract.MeanDriftType

Test if an upward mean drift occurred according to the new value of the signal.

Note

See testDownwardMeanDrift()

Parameters:
signal: float

The new value of the signal.

Returns:

vpMeanDriftType The type of mean drift that occurred.

static vpMeanDriftTypeFromString(name: str) visp._visp.core.StatisticalTestAbstract.MeanDriftType

Cast a string into a vpMeanDriftType .

Parameters:
name: str

The name of the mean drift.

Returns:

vpMeanDriftType The corresponding vpMeanDriftType .

static vpMeanDriftTypeToString(type: visp._visp.core.StatisticalTestAbstract.MeanDriftType) str