0 ×

# Moving Average

KNIME Time Series Nodes version 4.1.0.v201911110939 by KNIME AG, Zurich, Switzerland

This node calculates the moving average of a column. The moving average values are displayed in a new column appended at the end of the table or (if selected) replaces the original columns. For all window based methods (Backward/Center/Forward simple/Gaussian, Harmonic Mean) the cells that do not have a complete window (at the beginning and the end of the table) are filled with Missing Values.

## Options

Columns containing Double Values
Select the input column containing double values on which to perform the moving average.
Window Length
The number of samples to include in the moving average window. It has to be an odd number if a center based method was selected. Minimum value: 3 samples. Maximum Value: Time Series length.
Remove original columns
If selected the original columns are replaced with the moving average columns.
Type of Moving Average
Moving Average can be applied with various methods. Here the used formulas for every kind, where v_n is the value in the n-th row of the data table in the selected column and k is the window size.

#### Methods

Backward simple
`Backward_simple_n = 1/k * sum{v_n-(k-1) ... v_n}`
Center simple
`Center_simple_n = 1/k * sum{v_n-(n-1)/2 ... v_n ... v_n+(n-1)/2}`
Forward simple
`Forward_simple_n = 1/k * sum{v_n ... v_n+k-1}`
Backward Gaussian
`Backward_gaussian_n = sum{i = 0 ... k-1} gauss(i,k-1,std_dev)*v_n-i`
Center Gaussian
`Center_gaussian_n = sum{i = 0 ... k-1} gauss(i,(k-1)/2,std_dev)*v_n+(i-(k-1)/2)`
Forward Gaussian
`Forward_gaussian_n = sum{i = 0 ... k-1} gauss(i,0,std_dev)*v_n+i`
Harmonic Mean Center
The harmonic mean can only be used for strictly positive values.
`Center_harmonic_n = n/{sum{i = 0 ... k-1} 1/v_n+(i-(k-1)/2)`
Cumulative simple
`Cumulative_n= 1/n * sum{v_0 ... v_n-1}`
Simple exponential
`Simple_exponential_0 = v_0`
`EMA(v,n) = Simple_exponential_n = alpha*v_n + (1-alpha)*Simple_exponential_n-1`
Double exponential
`Double_exponential_n = 2 * EMA(v,n) - EMA(EMA(v,n),n)`
Triple exponential
`Triple_exponential_n = 3 * EMA(v,n) - 3 * EMA(EMA(v,n),n) + EMA(EMA(EMA(v,n),n),n)`
Old Exponential
`Exponential_n = alpha*v_n + (1-alpha) * Backward_simple_n-1`
Appendix: Gaussian
For the Gaussian weighted moving average the individual values are weighted based on the position in the window.
`std_dev = (k - 1) / 4`
and the weighting:
`gauss(i,mean,std_dev) = Math.exp((-0.5) * (i - mean) * (i - mean) / std_dev^2)`
Appendix: Exponential
`alpha = 2/(k+1)`

## Input Ports Table containing time series.

## Output Ports Table with column holding moving average values.

## Installation

To use this node in KNIME, install KNIME Core from the following update site:

Wait a sec! You want to explore and install nodes even faster? We highly recommend our NodePit for KNIME extension for your KNIME Analytics Platform.

## Developers

You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.