Moving Linear Regression#

The signal samples of a signal trace can be processed with a moving linear regression over a number of signal samples, whereby each window of the signal samples is statistically analyzed, and a linear regression trace collection is returned.

Create the Trace Collection#

You can process the signal samples with a statistically analyzed moving linear regression by calling the method moving_regression().

An linear regression trace collection is returned.

>>> # moving linear regression over a number of samples
>>> traces = Trace('Signal', [1, 2, 3]).moving_regression(2)
>>> traces
LinearRegressionTraces(level=Trace(label='Signal:regression:level',
                                   samples=[1.0, 2.0, 3.0]),
  slope=Trace(label='Signal:regression:slope',
              samples=[0.0, 1.0, 1.0]),
  intercept=Trace(label='Signal:regression:intercept',
                  samples=[1.0, 1.0, 2.0]),
  mean=Trace(label='Signal:regression:mean',
               samples=[1, 1.5, 2.5]),
  median=Trace(label='Signal:regression:median',
                 samples=[1.0, 1.5, 2.5]),
  minimum=Trace(label='Signal:regression:minimum',
                samples=[1, 1, 2]),
  maximum=Trace(label='Signal:regression:maximum',
                samples=[1, 2, 3]),
  range=Trace(label='Signal:regression:range',
              samples=[0, 1, 1]),
  error=Trace(label='Signal:regression:error',
              samples=[0.0, 0.0, 0.0]),
  negative_error=Trace(label='Signal:regression:negative_error',
                       samples=[0.0, 0.0, 0.0]),
  positive_error=Trace(label='Signal:regression:positive_error',
                       samples=[0.0, 0.0, 0.0]),
  absolute_error=Trace(label='Signal:regression:absolute_error',
                       samples=[0.0, 0.0, 0.0]),
  variance=Trace(label='Signal:regression:variance',
                 samples=[0.0, 0.0, 0.0]),
  deviation=Trace(label='Signal:regression:deviation',
                  samples=[0.0, 0.0, 0.0]),
  skew=Trace(label='Signal:regression:skew',
             samples=[0.0, 0.0, 0.0]),
  kurtosis=Trace(label='Signal:regression:kurtosis',
                 samples=[0.0, 0.0, 0.0]))

Note

The moving linear regression uses the first signal sample as the preset value to generate the windows for the first number of signal samples.

Figure#

You can visualize the trace collection with a figure containing the subplots of the traces in the collection by calling the method figure().

>>> figure = Trace('Signal', [1, 2, 3]).moving_regression(2).figure()

(Source code, html)