本文讨论用逻辑回归模型预测在金融市场情景下客户对金融产品的购买概率,以股票购买持仓概率作为研究对象。并探讨了TB级百万特征金融数据处理方法。
模型
基本假设:客户每日的持仓,是基于当时金融市场情景以及股票属性作出决策的独立事件。
该逻辑回归Logistic Regression模型简单描述如下:
客户购买持仓股票概率是指客户在指定日期购买持有指定股票的概率。表述如下:
其中,为自变量,为需要判定的系数。自变量包括客户特征,股票特征,以及当日市场特征,系数, 通过回归或极大似然估计获得。之后可将估计因子应用于购买预测,求得的P∈[0,1]即为客户股票购买持仓概率。样本标记为指定客户在指定日期是否持有指定股票。以唯一客户号标记客户,以唯一股票代码标记股票,以日期标记市场数据。日终持有为 1 正样本,没有持有为 0 负样本。
基础数据
请各位不要问我数据来源:)
1 客户数据
- 基本特征:
- 客户交易流水,可提取客户历史易特征。
- 客户交易系统操作记录,可提取客户交易系统操作特征.
- 外部客户数据,包括客户画像其他属性:信用属性,消费属性,兴趣爱好,社交信息等,百度的标签体系可为每个人打上24大类,268小类,几千个标签。
下表为客户特征:
2 股票数据
Wind等数据提供商提供的股票数据包括:基本信息,股本信息,财务,薪酬,关注度,行情,技术指标等。
新闻信息:目前Wind等数据提供商已将新闻主题词提取并关联相关股票,还给出了正负效应。
3 市场数据
Wind等数据提供商提供的市场数据包括:利率,汇率,财政,价格指数,国内外贸易,景气指数以及新闻等。
4 客户购买记录
客户过去一年每日持仓记录。
数据处理与模型实施
1 数据量预估
- 样本数:
假设客户数为1000万,目前A股有2800多股票,取过去1年购买记录为样例,大约是250天,那么产生的样本数为大约7万亿,但只需记录持仓信息,假设人均10只股票,那么需存储的记录大约为250亿条。负样本不用存储,在模型计算时产生。
- 特征数:
客户特征关联股票特征再关联市场特征,将产生百万维以上特征,特征稀疏。
250亿条百万维稀疏矩阵,大约是几十TB。估计需50台普通PC服务器的Hadoop/Spark集群,可满足数据处理和特征提取。对TB级百万特征逻辑回归模型运算,我尝试过国内厂商基于Spark的平台,可以支持。另一条路是针对这个大规模机器学习的具体问题定制优化。我也试用过国内一家新兴大数据公司第四范式公司的数据建模产品,他们对高维稀疏矩阵做了深度定制与优化,仅在10台普通PC服务器就可以处理该数据量级别逻辑回归运算。
2 金融特征提取
由于我们将每日交易行为作为独立事件。既假设股票特征,市场特征在样本中都是独立的,而我们在做交易决定时可能更关心特征在指定区间内的变化如股票中技术指标等。所以市场数据以及其他股票数据也需要将变化趋势转换为特征,如变化率,以及以涨跌标记变化趋势,如+代表涨-代表跌,++–表示过去四个周期的一种变化趋势。
由于二级市场企业公告的时间周期为季,宏观市场指标有月也有年,而新闻的时间频率可以为秒,并且客户特征也是随着时间变化的。将不同时间周期的数据统一归结为按日期的特征必须处理有大量数据。从而可以保证,样本是指定客户在其当时的特征下,根据当时的市场特征以及股票特征做出的购买持仓决定。
3 模型效果评估
这是我很迷惑的部分,这么高维度的特征数据,如何根据需求判断不同参数的结果优劣。一般评估模型效果都是用AUC (Area under the Curve of ROC) ROC曲线下面积,ROC为接收者操作特征曲线(Receiver Operating Characteristic Curve)。
而我们实际会选择排序列表作为推荐名单,这时,阀值Threshold的选取就很重要。一些商业的产品会使用其他参数来评估。每当看到AUC莫名的增长,总是让人喜悦的,虽然有时会发现是由于数据处理错误导致的:(
实践中,我们完全可以用模型预测过去一段时期的购买持仓,并和实际交易数据对比。在类似案例中的测试结果表明,相对于简单规则和随机预测,该模型的准确率可提供10倍以上。这个结果也是可以预期的,在高维数据,不断迭代局部优化,可以捕抓一些长尾特征。如下图,可以捕捉那些少数群体特征。
总结
1 本文讨论用逻辑回归模型预测在金融市场情景下客户对指定金融产品的购买概率。认为可以假设客户每日的持仓,是基于当时金融市场情景以及金融产品属性作出决策的独立事件。从而可以在客户特征,金融产品特征以及市场特征三个方面关联作为样本数据,并以当日购买持仓为标记使用逻辑回归做预测。另外本文还探讨了TB级百万特征金融数据处理的一些方法与经验。
2 可能的应用场景,该模型方法可应用于金融产品推荐。
也许有人会疑惑该模型的商业价值,但难道您就没看到该模型是在沿着行为金融学基本问题“基于有限理性的金融资产预期定价问题” [1]向着“看不见的手”发起挑战吗?
假设我们可以将人的金融需求特征完成特量化,又将股票特征量化,结合当时市场场景,自动撮合交易。想象下,多么美好,再也没有泡沫与股灾。
在Matrix(黑客帝国中的主机)中一切皆有定数。
以上言论纯属YY,人的行为当然不能完全量化:)
3 如何将金融领域知识加入机器学习模型,是我很想感兴趣的部分,欢迎讨论。
本文版权属于袁峻峰,如需转载请联系袁峻峰(微信号 jake-80 )
作者介绍:袁峻峰,复旦金融学硕士,FRM。长期从事金融IT相关领域工作。方向:国内市场衍生产品定价与市场风险量化分析和相关系统实现,以及金融大数据分析。目前在民生银行从事个人客户金融大数据分析。希望能将金融领域知识与大数据平台高运算能力、以及数据挖掘相结合,欢迎探讨,联系本人微信或邮箱yuanjunfeng_fr@163.com。
参考文献:
[1]汪丁丁.行为金融学基本问题.财经问题研究,2010,7 .
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。