Ошибка в Среднем Возвращении от Alphalens от Quantopian - PullRequest
0 голосов
/ 12 мая 2019

У меня возникли проблемы с воссозданием результатов, полученных пакетом Alphalens. В частности, функция mean_return_by_quantile дает мне результаты, отличные от функции groupby из панд.

Я воспроизвел минимальный пример, чтобы проиллюстрировать проблему:

Я создал минимальный пример, чтобы проиллюстрировать проблему

import pandas as pd
import alphalens as al

dict1 = [
        {'ticker':'jpm','date': '2016-11-29','1D': 0,'factor_quantile': 1},
{ 'ticker':'ge','date': '2016-11-29','1D': 0,'factor_quantile': 1},
{'ticker':'fb', 'date': '2016-11-29','1D': 0,'factor_quantile': 1},
{'ticker':'aapl', 'date': '2016-11-29','1D': 3,'factor_quantile': 2},
{'ticker':'msft','date': '2016-11-29','1D': 3,'factor_quantile': 2},
{'ticker':'amzn','date': '2016-11-29','1D': 3,'factor_quantile': 2},
{'ticker':'jpm','date': '2016-11-30','1D': 0,'factor_quantile': 1},
{'ticker':'ge', 'date': '2016-11-30','1D':0,'factor_quantile': 1},
{'ticker':'fb','date': '2016-11-30','1D': 0,'factor_quantile': 1},
{'ticker':'aapl','date': '2016-11-30','1D': 3,'factor_quantile': 2},
{'ticker':'msft','date': '2016-11-30','1D': 3,'factor_quantile': 2},
{'ticker':'amzn','date': '2016-11-30','1D': 3,'factor_quantile': 2}
]
df1 = pd.DataFrame(dict1)
factor_data=df1.set_index(['date',"ticker"], drop=True) 

# These two functions should produce the same mean by quantile 
factor_data.groupby(['factor_quantile']).mean()

mean_return_by_q, std_err_by_q = al.performance.mean_return_by_quantile(factor_data)
print(mean_return_by_q)
...