AI量化实验室

 找回密码
 立即注册
查看: 123|回复: 2

Alphalens因子分析报错IndexError: invalid index to scalar variable.

[复制链接]

3

主题

10

帖子

157

积分

注册会员

积分
157
发表于 2024-8-30 16:28:34 | 显示全部楼层 |阅读模式
quantlab5.4
试图运行bt-可转债-因子分析-KDJ.ipynb下面段落做Alphalens的数据预处理时老是报错。在ailabx.com/quant网页上运行因子分析则没有问题。

不知道是不是Alphalens的依赖库更新了不支持造成的?有人知道咋整吗?
from alphalens.utils import get_clean_factor_and_forward_returns
#tears.py中的get_values()函数改为to_numpy()
ret = get_clean_factor_and_forward_returns(factor, data)
ret



---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Cell In[7], line 3
      1 from alphalens.utils import get_clean_factor_and_forward_returns
      2 #将tears.py中的get_values()函数改为to_numpy()
----> 3 ret = get_clean_factor_and_forward_returns(factor, data)
      4 ret

File D:\Documents\My_Python_Script\quantlib5\venv\lib\site-packages\alphalens\utils.py:834, in get_clean_factor_and_forward_returns(factor, prices, groupby, binning_by_group, quantiles, bins, periods, filter_zscore, groupby_labels, max_loss, zero_aware, cumulative_returns)
    673 def get_clean_factor_and_forward_returns(factor,
    674                                          prices,
    675                                          groupby=None,
   (...)
    683                                          zero_aware=False,
    684                                          cumulative_returns=True):
    685     """
    686     Formats the factor data, pricing data, and group mappings into a DataFrame
    687     that contains aligned MultiIndex indices of timestamp and asset. The
   (...)
    832         For use when forward returns are already available.
    833     """
--> 834     forward_returns = compute_forward_returns(
    835         factor,
    836         prices,
    837         periods,
    838         filter_zscore,
    839         cumulative_returns,
    840     )
    842     factor_data = get_clean_factor(factor, forward_returns, groupby=groupby,
    843                                    groupby_labels=groupby_labels,
    844                                    quantiles=quantiles, bins=bins,
    845                                    binning_by_group=binning_by_group,
    846                                    max_loss=max_loss, zero_aware=zero_aware)
    848     return factor_data

File D:\Documents\My_Python_Script\quantlib5\venv\lib\site-packages\alphalens\utils.py:326, in compute_forward_returns(factor, prices, periods, filter_zscore, cumulative_returns)
    324 print("days_diffs:", days_diffs)
    325 print("mode_result.mode:", mode_result.mode)
--> 326 delta_days = period_len.components.days - mode(days_diffs).mode[0]
    327 period_len -= pd.Timedelta(days=delta_days)
    328 label = timedelta_to_string(period_len)

IndexError: invalid index to scalar variable.
















61

主题

135

帖子

531

积分

管理员

积分
531
发表于 2024-8-30 18:46:47 | 显示全部楼层
pandas==2.2.2 bt==1.1.0

3

主题

10

帖子

157

积分

注册会员

积分
157
 楼主| 发表于 2024-8-30 19:37:23 | 显示全部楼层
好像还是不行,报一样的错。都是deltadays这里的问题。

alphalens的版本是0.4.0吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

AI量化实验室 ( 京ICP备16049031号-2 )

GMT+8, 2024-9-20 05:18 , Processed in 0.063457 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表