1 votos

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

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

(1 + X).cumprod() - 1

¿Cómo puedo revertir esta operación para retroceder de los rendimientos acumulados a la matriz de rendimientos original X?

2voto

dmuir Puntos 146

DataFrame df con algunos rendimientos aleatorios que inventé:

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

Agregar columna cum_rets:

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

Agregar columna inv_cum_rets:

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

Si desea que esté alineado con sus rendimientos originales, simplemente muévalo una fila hacia arriba

EDITAR:

Si le faltan los rendimientos originales y desea recuperarlos a partir de cum_rets puede 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