Экспоненциально взвешенная ковариационная матрица в Python

У меня есть данные еженедельного возврата в порядке возрастания. Предположим, я хочу рассчитать экспоненциально взвешенную движущуюся ковариационную матрицу с предположительным периодом полураспада 5 лет или 260 недель. Я пытаюсь следовать pandas.DataFrame.ewm, но не совсем понимаю, как это реализовать в моем случае. Учитывая, что я не могу упомянуть период полураспада, поскольку применимо только к mean(), а значение периода полураспада не будет применяться к другим функциям.

Используя alpha = 1-exp(ln(0.5)/HalfLife) = 2/(span + 1), я использовал span = 750.

ret — это мой возвращаемый фрейм данных с DatetimeIndex. ret.shape это (895, 11)

Я попробовал SigmaExpW = ret.ewm(span = 750).cov(), но результат не такой, как я ожидал. SigmaExpW.shape это (9845, 11).

Для контекста -

ret.info()

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 895 entries, 2003-06-04 to 2020-07-22
Data columns (total 11 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   GE           895 non-null    float64
 1   IGM          895 non-null    float64
 2   USLC         895 non-null    float64
 3   USSC         895 non-null    float64
 4   ExUS         895 non-null    float64
 5   ExUSHedged   895 non-null    float64
 6   EM           895 non-null    float64
 7   Commodities  895 non-null    float64
 8   HYM          895 non-null    float64
 9   Government   895 non-null    float64
 10  Cash         895 non-null    float64
dtypes: float64(11)

Я явно совершаю какую-то элементарную ошибку. Был бы признателен за помощь.


person deb    schedule 16.08.2020    source источник
comment
Вы можете построить EWM по его периоду полураспада: ret.ewm(halflife=260).cov(). Это рассчитает альфу соответственно для вас   -  person Code Different    schedule 17.08.2020
comment
Пробовал это. Тот же результат. SigmaExpW.shape это (9845, 11)   -  person deb    schedule 17.08.2020


Ответы (1)


Он создает матрицу 11*11 каждый день. 895*11 = 9845

person deb    schedule 28.03.2021