1 votos

¿Cómo calcular los rendimientos a partir de los rendimientos acumulados en Python?

Si X es un $T\times N$ pandas DataFrame de rendimientos de activos multivariados, los rendimientos acumulados pueden calcularse en python como

(1 + X).cumprod() - 1

¿Cómo puedo invertir esta operación para ir hacia atrás desde los rendimientos acumulados hasta la matriz de rendimientos originales X?

2voto

dmuir Puntos 146

DataFrame df con algunas devoluciones al azar que me he inventado:

import pandas as pd
df = pd.DataFrame({'rets': (.5, .5, .4, .3)})

Añadir cum_rets columna:

df['cum_rets'] = (1 + df['rets']).cumprod() - 1

Añadir inv_cum_rets colum:

df['inv_cum_rets'] = ((1 + df['cum_rets']) / (1 + df['rets'])) - 1

Si quieres que esté alineado con tus devoluciones originales, sólo tienes que desplazarlo una fila hacia arriba

EDITAR:

Si le faltan las devoluciones originales y quiere volver a ellas desde cum_rets puedes usar esto:

df['rets_missing'] = (1 + df['cum_rets']) / (1 + df['cum_rets'].shift(1)) - 1

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X