Learn R Programming

stream (version 2.0-1)

DSF_ExponentialMA: Exponential Moving Average over a Data Stream

Description

Applies an exponential moving average to components of a data stream.

Usage

DSF_ExponentialMA(dsd = NULL, dim = NULL, alpha = 0.5)

Value

An object of class DSF_ExponentialMA (subclass of DSF and DSD).

Arguments

dsd

The input stream as an DSD object.

dim

columns to which the filter should be applied. Default is all columns.

alpha

smoothing coefficient in \([0, 1]\). Larger means discounting older observations faster.

Author

Michael Hahsler

Details

The exponential moving average is calculated by:

\(S_t = \alpha Y_t + (1 - \alpha)\; S_{i-1}\)

with \(S_0 = Y_0\).

See Also

Other DSF: DSF_Convolve(), DSF_Downsample(), DSF_Func(), DSF_Scale(), DSF_dplyr(), DSF()

Examples

Run this code
# Smooth a time series
data(presidents)

stream <- data.frame(
    presidents,
    .time = time(presidents)) %>%
  DSD_Memory()

plot(stream, dim = 1, n = 120, method = "ts", main = "Original")

smoothStream <- stream %>% DSF_ExponentialMA(alpha = .7)
smoothStream

reset_stream(smoothStream)
plot(smoothStream, dim = 1, n = 120, method = "ts", main = "With ExponentialMA(.7)")

Run the code above in your browser using DataLab