pandas.ewmcov(arg1, arg2=None, com=None, span=None, halflife=None, min_periods=0, bias=False, freq=None, pairwise=None, how=None)

Exponentially-weighted moving covariance

Parameters :

arg1 : Series, DataFrame, or ndarray

arg2 : Series, DataFrame, or ndarray, optional

if not supplied then will default to arg1 and produce pairwise output

com : float. optional

Center of mass: \alpha = 1 / (1 + com),

span : float, optional

Specify decay in terms of span, \alpha = 2 / (span + 1)

halflife : float, optional

Specify decay in terms of halflife, \alpha = 1 - exp(log(0.5) / halflife)

min_periods : int, default 0

Number of observations in sample to require (only affects beginning)

freq : None or string alias / date offset object, default=None

Frequency to conform to before computing statistic

adjust : boolean, default True

Divide by decaying adjustment factor in beginning periods to account for imbalance in relative weightings (viewing EWMA as a moving average)

how : string, default ‘mean’

Method for down- or re-sampling

pairwise : bool, default False

If False then only matching columns between arg1 and arg2 will be used and the output will be a DataFrame. If True then all pairwise combinations will be calculated and the output will be a Panel in the case of DataFrame inputs. In the case of missing elements, only complete pairwise observations will be used.

Returns :

y : type of input argument


Either center of mass or span must be specified

EWMA is sometimes specified using a “span” parameter s, we have that the decay parameter \alpha is related to the span as \alpha = 2 / (s + 1) = 1 / (1 + c)

where c is the center of mass. Given a span, the associated center of mass is c = (s - 1) / 2

So a “20-day EWMA” would have center 9.5.