【方正金工】Code Interpreter在金融市场数据分析中的应用——ChatGPT应用探讨系列之五

admin12个月前研报745

本文来自方正证券研究所于2023年7月19日发布的报告《Code Interpreter在金融市场数据分析中的应用——ChatGPT应用探讨系列之五》,欲了解具体内容,请阅读报告原文,分析师:曹春晓 S1220522030005



摘要


继OpenAI推出网络浏览及多项插件功能后,2023年7月9日,OpenAI继续向Plus用户推出新的内部插件——Code Interpreter。Code Interpreter是ChatGPT提供的一个可以在防火墙执行环境中运行的Python解释器,以及一些临时的内存空间。ChatGPT Plus用户可以通过Code Interpreter来执行Python代码、进行数据分析、运行数学计算、处理文件以及获得可视化结果。用户甚至并不必懂得编码过程,只需将任务需求告知ChatGPT,即可得到相应的结果。Code Interpreter的上线大幅提升了ChatGPT在数据分析方面的能力,可以进一步提升用户的工作效率。

金融投研领域涉及大量的数据分析与处理,而Code Interpreter在数据处理方面拥有强大的优势,本文中我们将重点介绍Code Interpreter在金融投资领域中的一些使用案例,如上市审核数据分析、公募基金重仓股分析、财务造假预测模型训练等工作,可以看到对于类似的金融数据分析问题Code Interpreter都能够快速而且高质量的完成,用户可以借助Code Interpreter进一步提升投研工作效率。

然而需要注意的是,目前Code Interpreter也存在一些限制与不足,如无法联接互联网、文件大小限制、环境持久性限制、预装的Python库不足等。在处理复杂任务或大规模数据时,Code Interpreter可能无法完成任务,用户需要根据具体需求选择合适的工具以便更好的完成相应任务。

风险提示:

模型迭代不及预期、文本与代码生成有误,Code Interpreter存在诸多限制可能导致任务失败,模型更新后相关功能可能发生较大变化。


报告正文


引言

继OpenAI推出网络浏览及多项插件功能后,2023年7月9日,OpenAI继续向Plus用户推出新的内部插件——Code Interpreter。Code Interpreter是ChatGPT提供的一个可以在防火墙执行环境中运行的 Python 解释器,以及一些临时的内存空间。Code Interpreter支持将文件上传到当前对话工作区完成分析与计算,并下载工作结果。

ChatGPT Plus用户可以通过Code Interpreter来执行Python代码、进行数据分析、运行数学计算、处理文件以及获得可视化结果。用户甚至并不必懂得编码过程,只需将任务需求告知ChatGPT,即可得到相应的结果。Code Interpreter的上线大幅提升了ChatGPT在数据分析方面的能力,可以进一步提升用户的工作效率。

出于安全考虑,ChatGPT使用严格的网络控制来防止执行代码访问外部互联网。此外,ChatGPT还为每个会话设置了资源限制。发布之初,官方已经列举了使用Code Interpreter的有效场景,例如解决定量和定性的数学问题,进行数据分析和可视化以及在格式之间转换文件等。

金融投研领域涉及大量的数据分析与处理,而Code Interpreter在数据处理方面拥有强大的优势,本文中我们将重点介绍Code Interpreter在金融投资领域中的一些使用案例,进一步介绍如何通过ChatGPT辅助提升投研工作效率。

Code Interpreter数据分析与可视化

Code Interpreter为用户提供了一个解决问题的通用工具箱(通过Python代码实现),一个可以使用的内存空间(能够上传文件,且这些文件可以是压缩形式)。因此用户可借助Code Interpreter完成复杂的数学问题求解,以及大量探索性分析和可视化工作。

Code Interpreter的使用非常简单,如同其他插件功能一样,plus用户只需要在新建会话窗口时选中Code Interpreter,即可在聊天窗使用该功能。点击聊天窗左端的“+”即可上传本地文件,需要注意的是每次只能上传一个文件,官方提示最大可上传512M的文件,但实际测试时当文件超过100M时上传速度非常慢且可能中断,因此建议将较大的文件压缩为.zip的格式再上传。

此外,Code Interpreter的默认运行环境中缺少中文字体,因此在可视化显示时如需显示中文的图标会出现乱码。不过用户可以自行上传中文字体文件,并指定其使用来解决。

2.1 数学计算

ChatGPT本身在文本处理、逻辑推理方面有较强的优势,但在数学计算等方面存在较大不足,我们在报告《ChatGPT投资相关插件测试及策略开发——ChatGPT应用探讨系列之四》中介绍了如何使用第三方插件Wolfram来弥补ChatGPT在数学方面的短板。此次Code Interpreter的上线,同样可以大幅提升ChatGPT本身的数学计算能力。

Code Interpreter完成数学计算的过程本质上是通过Python程序调用SymPy库等专业工具完成任务求解。SymPy库支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散 数学、几何学、概率与统计、物理学等方面的功能。因此通过Code Interpreter可以完成大量基础数学问题的求解。

然而,在处理较为复杂的问题是,Code Interpreter可能会存在一些不足。Wolfram Alpha的首席科学家Michael Trott在Wolfram社区展示了对Code Interpreter 和 Wolfram Plugin在解决数学问题时的对比实验。该实验中选取了100道数学问题,大多来自于数学杂志、大学数学竞赛、数学奥林匹克等资源,然后分别用两种工具尝试解决这些问题。实验结果显示Walfram Plugin解决了全部问题,而Code Interpreter成功解决了大约50%的问题。在Code Interpreter成功解决问题的情况下,Michael Trott还比较了实际代码的长度。平均而言,Wolfram 语言代码的大小约为Code Interpreter的Python代码的27%。因此对于复杂数学问题的求解,我们仍然推荐使用Wolfram Plugin来完成。

2.2 数据分析与可视化

Code Interpreter拥有强大的数据分析与可视化能力,本节中我们上传了一段航空公司乘客满意度调查问卷的数据,借助Code Interpreter的数据分析能力,来判断各因素与乘客满意度之间的关系并可视化。Code Interpreter首先通过对数值特征进行相关性分析和对分类特征进行分组均值比较来了解各个特征与满意度之间的关系。

上图是数值特征的相关性矩阵,根据相关系数矩阵Code Interpreter得到以下一些观察:

根据这些结果,可以看到在线登机、机上娱乐、座位舒适度、机上服务、腿部空间服务、清洁度、飞行距离和机上WiFi 服务等因素与客户满意度有较强的正相关性。而到达延误和出发延误以及起飞/到达时间的便利性则与满意度有轻微的负相关性。

除数值变量外,对于分类变量,也可以分别进行深入分析:

2.3 自然语言处理

Code Interpreter还拥有强大的自然语言处理能力,本节中我们上传一段ChatGPT APP的评论数据,通过Code Interpreter来对其进行评分分析及语义分析。

进一步,我们可以让其筛选出5星评价中的评论内容,统计其中的高频词汇并制作词云图。不过由于目前code interpreter环境没有互联网访问权限,所以无法下载Python下自然语言处理中最常用的NLTK库,因此分词、停用词的处理等并不理想。

Code Interpreter金融数据分析案例测试

3.1 科创板公司上市审核分析

近期科创板迎来开板四周年,作为注册制改革的第一块“试验田”,科创板坚守“硬科技”定位,战略性新兴产业集聚效应凸显,科创企业持续加码研发投入,推进关键核心技术攻关。

截至2023717日,科创板已有542家上市公司,合计总市值约为7.17万亿元,已成为我国资本市场的重要组成部分和服务实体经济、解决科创企业融资需求的重要板块。

我们提取了科创板所有上市审核的公司情况,包括其受理批次、审核状态、科创主题、上市标准、募资金额、保荐机构、注册地等多维度信息,我们可以借助Code Interpreter来快速实现信息整理与可视化工作。

点击结果中的“Show work”,即可看到数据分析的源码,包括文件读取、数据处理以及图表展示都是通过Python代码实现,用户也可以将代码段复制到本地保存,以便日后在本地处理同样的任务。

3.2 公募基金重仓股分析

公募基金是A股市场最重要的机构投资者之一,其持仓变动受到市场高度关注。本案例中我们以市场最为关注的主动权益型基金(普通股票型+偏股混合型+灵活配置型)重仓股为例,测试如何通过Code Interpreter来快速完成不同维度信息的汇总分析与可视化。此处我们提取了自2018年以来每个季度的公募基金重仓股信息,包含其行业信息与上市板块等,由于最新的2023年二季报尚未披露完毕,因此数据截止至2023年一季度。如下图所示,我们只需在聊天窗中提问即可快速完成不同维度信息的统计分析。

以上结果汇总了主动权益型基金的整体行业配置变动情况,可以看到截至2023Q1,电力设备行业持仓占比出现大幅下滑,最新配置比例已低于食品饮料行业,降为公募第二大重仓行业。

从最新一期报告期(2023Q1)数据来看,主动权益型基金大幅增持计算机行业,减持电力设备行业。其在各上市板块、大类行业上的持仓变动情况如下图所示。

3.3 财务造假预测模型

在报告《ChatGPT投资相关插件测试及策略开发——ChatGPT应用探讨系列之四》中我们介绍了如何通过Noteable Plugin来完成财务造假预测模型的构建,本节中我们尝试使用Code Interpreter来完成同样的任务。我们筛选了2002年之后,部分A股市场被中国证监会、沪深两市交易所公开确定为财务造假的上市公司。剔除IPO之前以及新股上市当年造假的数据,对于同一家上市公司连续多个年度造假的数据,仅保留其首次造假年份作为研究数据。此外,我们采用控制样本匹配法,选取造假样本当年同行业所在的上市公司(剔除被证监会、交易所处罚的公司)作为对照样本。

在特征指标筛选方面,我们结合公司参与年报财务造假的动机、常见的手段,重点以财务指标为研究对象,整理了包括审计师意见、前一年度是否亏损、前五大股东占比、应收账款占流动资产比例、预付款项占流动资产比例、其他应收款占流动资产比例等一系列指标作为特征指标来训练模型。

可以看到,与Noteable Plugin类似,Code Interpreter在编写程序运行过程中遇到的错误,都会快速的自行解决直至顺利运行,大幅提升了工作效率。

与Noteable Plugin类似,Code Interpreter在模型评估之后也会针对性的给出特定的改进建议,我们可以根据这些建议与其多次交互测试,直至达到理想的训练效果。然而需要说明的是,由于目前Code Interpreter不具备联网功能,因此当模型需要使用复杂模型时,可能遇到在当前环境下没有安装相应的库而导致无法完成任务的情况。例如当我们想使用深度学习模型时,会提示在当前环境下无法使用TensorFlow、Keras或PyTorch等深度学习库。此外,深度学习通常需要大量的计算资源(如GPU)和大量的数据,这也可能会超出Code Interpreter的限制。

3.4 因子选股模型测试

除以上常用的金融数据分析与可视化之外,我们尝试一个更加实际的投资问题。我们筛选了99个财务、估值等相关的因子,以及个股的市值、行业以及未来一期的涨跌幅数据,数据区间为2013年1月至2023年6月。由于数据量较大,我们将其压缩为.zip格式后将其上传给Code Interpreter,让其分析哪些因子可能对股票未来收益率有较强的预测能力。

在量化研究中,这是最常见的单因子检验工作,有标准的流程和规则来验证和筛选有效因子,此处我们仅用来测试Code Interpreter能否解决类似的大规模数据分析问题。

股票的因子数据存在缺失值等问题,因此需要首先完成数据预处理工作。

从上述结果来看,Code Interpreter选择了通过随机森林模型来训练模型并查看各个特征的重要性,然而遗憾的是由于数据量过大导致出现了内存错误,进一步缩小数据规模后依然无法运行。

在我们要求其使用线性回归模型后依然遇到同样的问题,由此可见Code Interpreter由于资源限制并不适合用来做大规模的数据训练和挖掘,相较而言,对于量化用户或需要使用大规模数据挖掘的用户,我们建议使用Noteable Plugin来完成相应任务。

Code Interpreter的限制与不足

综上所述,Code Interpreter拥有强大的数学计算、数据分析及可视化的能力,对于金融领域中的常见的数据分析与统计任务,可以高效完成,大幅提升工作效率,然而Code Interpreter也存在诸多限制与不足:

1)互联网访问限制:Code Interpreter目前无法访问互联网,它无法直接从网络获取数据或与在线API交互。这也限制了Code Interpreter处理复杂任务的能力,如上文案例所示,由于无法下载TensorFlow、Keras或PyTorch等深度学习库,Code Interpreter在深度学习模型训练方面明显不足。

2)文件大小限制:Code Interpreter对单次文件大小的限制最大为512MB。通常建议可上传的单个文件大小最大为100MB。上传文件时可以将数据压缩为.zip文件处理。

因为该功能主要是用于交互式会话中进行计算以及数据分析而非超大规模数据处理。如果上传的文件越大,则处理的速度越慢,占用的内存越多。因此不建议使用Code Interpreter来处理大规模数据。

3)编程语言限制:目前Code Interpreter仅支持Python代码。其他编程语言需要复制代码到自己在开发环境中运行。

4)Python库限制:由于联网限制,目前Code Interpreter不允许安装外部 Python 库。但是,编码环境预装了330多个常用的库。这包括但不限于用于数值计算的numpy,用于数据操作和分析的pandas,用于数据可视化的matplotlib以及用于计算机视觉任务的OpenCV等,对于日常的数据分析与可视化已足够,但复杂任务可能无法很好的完成。

5)环境持久性限制:正如Code Interpreter官方介绍中写道,在聊天对话期间活动状态具有使用时间上限,如果超时则当前环境可能死亡,整个状态就会丢失。如果用户关闭了页面隔一段时间,OpenAI会关闭之前分配的环境和资源,下次再进入会话页面开始提问,会丢失之前的上下文,比如上传的文件等内容。如果继续使用该对话,Code Interpreter会不断尝试重新加载数据和脚本。所以此时用户最好开启一个新的会话,然后重新上传文件进行分析。

6)中文字体缺失:Code Interpreter预装环境中没有较好的中文字体库,因此在可视化过程中中文显示有误,但用户可自行上传中文字体库来弥补这一缺陷。


5 风险提示

模型迭代不及预期、文本与代码生成有误,Code Interpreter存在诸多限制可能导致任务失败,模型更新后相关功能可能发生较大变化。

6 感谢
感谢实习生苏昱安在资料整理方面对本报告的贡献


近期报告



**ChatGPT**

【方正金工】ChatGPT投资相关插件测试及策略开发——ChatGPT应用探讨系列之四

【方正金工】不同大语言模型产品操作性能及进阶应用比较——ChatGPT应用探讨系列之三

【方正金工】ChatGPT在择时、风格、行业、选股中的应用实践——ChatGPT应用探讨系列之二

【方正金工】ChatGPT在投资研究工作中的应用初探——ChatGPT应用探讨系列之一



**量化选股**

【方正金工】剥离分析师预期调整中的动量效应与真知灼见因子构建—多因子选股系列研究之十二

【方正金工】大单成交后的跟随效应与“待著而救”因子——多因子选股系列研究之十一

【方正金工】推动个股价格变化的因素分解与“花隐林间”因子——多因子选股系列研究之十

【方正金工】个股成交额的市场跟随性与“水中行舟”因子——多因子选股系列研究之九

【方正金工】显著效应、极端收益扭曲决策权重和“草木皆兵”因子——多因子选股系列研究之八

【方正金工】如何跑赢股票型基金指数?

【方正金工】基于Wind偏股混合型基金指数的增强选股策略——多因子选股系列研究之七

【方正金工】个股股价跳跃及其对振幅因子的改进——多因子选股系列研究之六

【方正金工】波动率的波动率与投资者模糊性厌恶——多因子选股系列研究之五

【方正金工】个股动量效应的识别及“球队硬币”因子构建——多因子选股系列研究之四

【方正金工】个股波动率的变动及“勇攀高峰”因子构建——多因子选股系列研究之三

【方正金工】个股成交量的潮汐变化及“潮汐”因子构建——多因子选股系列研究之二

【方正金工】成交量激增时刻蕴含的alpha信息——多因子选股系列研究之一



**ETF深度**

【方正金工-ETF深度报告】ETF基金投资者画像研究(持有人篇)

【方正金工-ETF深度报告】ETF行业2022年发展回顾及产品创新前瞻



**基金研究**

【方正金工-ETF深度报告】ETF行业2022年发展回顾及产品创新前瞻

【方正金工】固收+基金发展复盘与简析思考——固收+基金系列研究之一

【方正金工】硬科技板块巡礼——科创板系列指数与产品全景分析

【方正金工】公募新能源赛道指数与产品全景分析

【方正金工】基金模拟持仓补全方法及增强FOF策略

【方正金工】市场上有哪些有效选基因子?

【方正金工】公募FOF配置偏好有哪些变化?

【方正金工】偏股混合型基金指数:主动偏股基金中长期业绩的典范

【方正金工】收益独特基金与收益相似基金——基金相似度研究系列之二

【方正金工】基金相似度方法比较与应用探讨(下篇)

【方正金工】基金相似度方法比较与应用探讨(上篇)

【方正金工】如何构建均衡的FOF组合?



**行业轮动**

【方正金工】5月行业组合超额1.89%,6月建议关注公用事业、计算机、社会服务、机械设备、美容护理、传媒等—行业轮动月报2306

【方正金工】4月行业组合超额4.10%,5月建议关注公用事业、社会服务、计算机、机械设备、传媒等——行业轮动月报202305

【方正金工】4月份建议关注公用事业、建筑装饰、社会服务、机械设备、医药生物、传媒等行业——行业轮动月报202304

【方正金工】2月份建议关注公用事业、电力设备、石油石化、有色金属、非银金融等行业——行业轮动月报202302

【方正金工】1月份建议关注公用事业、银行、家用电器、煤炭、农林牧渔、食品饮料等行业——行业轮动月报202301



**指数基金资产配置**

【方正金工】基于国泰基金ETF产品的轮动策略构建——指数基金资产配置系列之五

【方正金工】基于富国基金ETF产品的轮动策略构建——指数基金资产配置系列之四

【方正金工】基于工银瑞信基金ETF产品的轮动策略构建——指数基金资产配置系列之三

【方正金工】基于华宝基金指数产品的轮动策略构建——指数基金资产配置系列之二

【方正金工】基于权益型ETF产品的资产配置策略——指数基金资产配置系列之一



**指数投资价值分析**

【方正金工】小盘风格延续1000指增产品优势凸显——易方达中证1000指数量化增强分析

【方正金工】静待养殖周期拐点,聚集行业龙头收益弹性突出——中证畜牧养殖指数投资价值分析

【方正金工】智能时代,指向未来—中证人工智能主题指数投资价值分析

【方正金工】优选个股增强指数收益,估值低位反弹潜力可期——创业板成长指数投资价值分析

【方正金工】国产替代启新程,冬去春来芯气象——国证半导体芯片指数投资价值分析

【方正金工】云上未来:乘数字经济浪潮,扬人工智能之帆—中证云计算与大数据指数投资价值分析

【方正金工】技术创新叠加规模经济,光伏行业持续高景气增长—中证光伏龙头30指数投资价值分析

【方正金工】冬去春来,迎接“后疫情时代”港股互联网的三重拐点—中证港股互联网指数投资价值分析

【方正金工】易方达权益指数产品布局:管理规模行业领先,产品线全面均衡

【方正医药+金工】生物医药朝阳产业行业增长靓丽,汇添富生物科技指数产品布局丰富,多市场覆盖



本篇文章来源于微信公众号: 春晓量化

本文链接:http://17quant.com/post/%E3%80%90%E6%96%B9%E6%AD%A3%E9%87%91%E5%B7%A5%E3%80%91Code%20Interpreter%E5%9C%A8%E9%87%91%E8%9E%8D%E5%B8%82%E5%9C%BA%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8%E2%80%94%E2%80%94ChatGPT%E5%BA%94%E7%94%A8%E6%8E%A2%E8%AE%A8%E7%B3%BB%E5%88%97%E4%B9%8B%E4%BA%94.html 转载需授权!

分享到:

相关文章

高阶量价因子2月全获正收益,录得月度七连胜 | 开源金工

高阶量价因子2月全获正收益,录得月度七连胜 | 开源金工

开源证券金融工程首席分析师  魏建榕执业证书编号:S0790519120001开源证券金融工程分析师 高鹏(联系人)微信号:13951784990执业证书编号:S0790520090002...

【海通金工】指增超额的回归,难以战胜的微盘

【海通金工】指增超额的回归,难以战胜的微盘

重要提示:《证券期货投资者适当性管理办法》于2017年7月1日起正式实施,通过本微信订阅号发布的观点和信息仅供海通证券的专业投资者参考,完整的投资观点应以海通证券研究所发布的完整报告为准。若您并非海通...

【浙商金工】招商中证500等权指数增强分析报告

【浙商金工】招商中证500等权指数增强分析报告

点击上方“Allin君行” ,关注我们陈奥林 从业证书编号  S1230523040002摘要【核心观点】中证500股票池行业覆盖全面而均衡,成分股市值呈中盘集中分布,估值水平处于...

【中信建投策略】汇金增持释放增量积极信号——流动性周观察10月第1期

【中信建投策略】汇金增持释放增量积极信号——流动性周观察10月第1期

重要提示:通过本订阅号发布的研究观点和信息仅供中信建投证券股份有限公司(下称“中信建投”)客户中符合《证券期货投资者适当性管理办法》规定的机构类专业投资者参考。因本订阅号暂时无法设置访问限制,若您并非...

【国盛量化】市场反弹短期无虞

【国盛量化】市场反弹短期无虞

                1.市场...

【华安金工】寻找选股策略与行业轮动策略的“舒适区”——量化基本面系列报告之八

【华安金工】寻找选股策略与行业轮动策略的“舒适区”——量化基本面系列报告之八

报告摘要►主要观点选股策略和行业轮动策略存在阶段性的相对强弱,除了策略自身失效的因素外,客观市场环境也会导致获取alpha和beta的难度不一。我们从不同的维度刻画当下市场更适合的策略类型,生成策略择...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。