多列因子标准化 zscore

如何高效实现以 trade_date 为维度,进行多列因子的标准化 zscore 运算?

另外,由于我的因子有很多列,如何实现批量传入列的方法?

请先 登录 后评论

1 个回答

veryOrdinary

可以参考下述语句进行改写:

select zscore(factor1) from t context by trade_date

对于多列情形:

(1)如果是内存表可以直接写:contextby(zscore, t, t.trade_date)

(2)否则,使用元编程:

t = table(100:0, [`trade_date, `symbol, `f1,`f2,`f3,`f4,`f5], [DATE, SYMBOL, DOUBLE, DOUBLE, DOUBLE, DOUBLE, DOUBLE])
otherCol = [`trade_date, `symbol]
colName = t.colNames()
factorCol = colName[not colName in otherCol]
sql(select=sqlCol(factorCol, zscore, "re_" + factorCol), from=objByName("t"), groupBy=sqlCol("trade_date"), groupFlag=0)


请先 登录 后评论
  • 1 关注
  • 0 收藏,728 浏览
  • Polly 提出于 2023-05-15 10:38

相似问题