程式
如何從 Python 中的累積收益中計算收益?
如果 X 是 $ T\times N $ 多元資產收益的 pandas DataFrame,累積收益可以在 python 中計算為
(1 + X) .cumprod () - 1
如何反轉此操作,以便從累積收益倒退到原始收益矩陣 X?
DataFrame
df
有我組成的一些隨機返回:import pandas as pd df = pd.DataFrame({'rets': (.5, .5, .4, .3)})
添加
cum_rets
欄目:df['cum_rets'] = (1 + df['rets']).cumprod() - 1
添加
inv_cum_rets
列:df['inv_cum_rets'] = ((1 + df['cum_rets']) / (1 + df['rets'])) - 1
如果您希望它與原始退貨對齊,只需將其向上移動 1 行
編輯:
如果您錯過了原始退貨並想從中退回,
cum_rets
您可以使用以下方法:df['rets_missing'] = (1 + df['cum_rets']) / (1 + df['cum_rets'].shift(1)) - 1