BIS工作文件 编号1122 gingado:专注于经济和金融的机器学习库 道格拉斯KGAraujo 货币和经济部 2023年9月 JEL分类:C87,C14,C82。 关键词:机器学习,开源,数据访问,文档。 国际清算银行工作文件由国际清算银行货币和经济部门的成员撰写,并不时由其他经济学家撰写 ,并由银行出版。这些论文涉及的主题是热门主题,具有技术性。其中表达的观点是作者的观点 ,不一定是国际清算银行的观点。 该出版物可在BIS网站(www.bis.org)上获得。 ©BankforInternationalSettlements2023.Allrightsreserved.Briefexcerptsmaybereplicatedortranslatedprovidedthesourceisstated. ISSN1020-0959(打印) ISSN1682-7678(在线) gingado:专注于经济和金融的机器学习库∗ 道格拉斯K.G.Araujo Abstract gigado是一个开源的Pytho库,它提供了各种便利函数和对象,以支持在经济学研究中使用机器学习。它被设计为与广泛使用的机器学习库兼容。gigado利用SDMX数据和元数据共享协议,利用直接从官方来源获得的相关数据来增强用户数据集。该库还提供了一个基准测试对象,该对象创建了一个具有开箱即用的良好性能的随机森林,如果提供了候选模型,则保留具有最佳性能的森林。gigado还包括帮助机器学习模型文档的方法 ,包括道德考虑。此外,gigado提供了具有各种非线性因果处理效果的面板数据集的灵活模拟,以支持因果模型原型设计和基准测试。该库正在积极开发中,并定期添加或改进新功能。 1Introduction 从概念上讲,每个机器学习(ML)应用程序都需要结合特定的数据集,算法,成本函数和优化过程-并且这些组件中的每个组件都可以或多或少地独立于其他组件进行替换(Goodfellow,Begio和Corville(2016))。在许多经济和金融用例中,可能性尤其广泛(Athey和Imbes (2019),Mllaiatha和Spiess(2017),Varia(2014),Doerr,Gambacorta和Garralda (2021)Charaborty和Joseph(2017))。对于哪种选择最好,通常没有明确的答案( Mllaiatha和Spiess(2017))。 ∗这项工作代表了我的观点,不一定是国际清算银行的观点。我感谢CarlosCielli,BeCohe,SebastiaDoerr,JoFrost,FrederiHerig以及欧文·费希尔银行统计委员会(IFC)第二届“中央银行数据科学”会议的研讨会参与者,皇家统计学会金融和经济特别利益小组会议,以及非正式机器学习社区,以获取有用的评论和反馈,以及StratosNiolotsos,RafaelSchmidt和XavierSosovsy,以进行有关SDMX的深入 交流。所有的错误都是我自己的。本文的最新版本可以在这里找到。 因此,在实践中创建ML应用程序可能需要多次迭代并尝试改进以实现令人满意的结果。实际上 ,在撰写本文时,在经济学和金融学中创建ML模型的过程的不同步骤可能会更加简化,包括选择和使用数据集或模拟具有已知生成过程的数据集,比较不同的ML模型,以及至关重要的是模型的文档。 gingado是一个免费的开源库,旨在促进在学术和从业人员设置中在经济学和金融学中使用 ML的这些和其他步骤,同时促进良好的建模和文档实践。1它提供了一些主要的贡献。首先 ,gigado使用来自官方来源的统计序列促进原始用户数据集的数据增强,其方式与每种情况相关 ,并且可以根据经验测试其提高模型性能的能力。其次,gigado提供自动基准模型,这些模型在广泛的情况下表现良好,并且可以快速训练以实现手头数据集的合理(如果不是最佳)性能;用户还可以使用通用基准对象来创建自己的自动基准。第三,当用户需要测试因果推理模型或对现有模型进行基准测试时,gigado提供了灵活地模拟面板数据的功能,其中包括线性和线性的自定义数据生成过程。 非线性相互作用和不同的治疗分配机制和(Ho- 内源性或异质性)处理效果。第四,gigado促进ML模型的文档论证,作为开发工作流的一部分,自动化一些文档步骤,为用户留出空间,专注于更有价值的文档项目,如道德考虑。同样在这里,gigado为用户提供了创建自己的模型文档模板的可能性,这些模板易于嵌入建模实践中。第五,gigado提供了许多其他实用程序来帮助数据科学在经济学中工作,特别是在面板数据的时间序列中。 gingado正在积极开发中。该库遵循三个设计原则: 1.灵活性:gingado开箱即用,但用户可以以更适合其用例的方式自定义其对象; 2.兼容性:gingado与数据科学和ML中其他广泛使用的软件无缝协作;以及 3.Responsibility:gingado将模型文档和道德考虑作为建模过程中的关键步骤。 1gigado的说明,文档,实际示例和源代码可在https://dgarajo获得。githb.io/gigado/.该图书馆以巴西的概念命名,该概念很容易翻译,但广泛地代表了一种舞蹈般的不间断的身体摆动,通常与适应不利情况的灵活性有关,例如生活或足球比赛。这个名字也是对卡波耶拉的非洲巴西武术的致敬,在那里拥有“gigado”是关键。我选择“gigado”作为这个库的名称,专注于在经济学和金融学中使用ML,因为它结合了不断摆动的想法,类似于经济和金融系列如何在商业和金融周期的过程中围绕趋势“摆动”,具有灵活 性,类似于ML模型在拟合功能形式时非常灵活。 此外,gigado寻求成为一个简约的图书馆,补充而不是重做其他广泛使用的图书馆的现有功能。gigado的应用程序编程接口(API)特别是与sciit-lear兼容(Pedregosa等人。(2011)),它本身就是各种其他ML库的基础,并且可以进行调整,以最小的调整即可与其他PythoML库一起工作。此外,gigadoAPI通常可以从R(通过与Pytho与网状包,Ushey,Allaire和Tag(2022)的集成)或从其他语言或环境(如Stata和MatLab)访问。该库可以以模块化的方式使用:用户可能更喜欢仅使用gigado来增强其数据集,创建自动基准模型,模拟因果数据集或记录其模型,或其任何组合。 Thesecharacteristicsmakegingadoapotentialusefultoolacrossmanydo-mainsineconomicsandfinance.MLalgorithmsarealreadyamplyusedineconomicsforpredictionproblems(inthesenseofKleinbergetal.(2015)),causalderation2(例如,切尔诺卓科夫、迪米勒等人。(2018)和Athey,Tibshi-rai和Wager(2019)),模型估计(Maliar,Maliar和Wiat(2021),Ferádez-Villaverde,Hrtado和No(2019)和Darte(2018)),使用非传统数据的模型估计(Ferreira等人。(2021)),甚至是自己研究的主题(Fster等人。(2022年),詹诺内,兰扎和普里米特里(2021年))。gigado的功能可以在每个实例中使用。中央银行也一直在各种应用中使用机器学习(Arajo等人。(2023年)),行业中的从业者用例非常丰富和多样化。 为了展示实际应用,在线文档包括两个端到端的示例3(随着时间的推移):自动基准和模型文档功能用跨国数据集说明,其中有60多个变量用于分析人均GDP增长的驱动因素(Barro和Lee1994)。该数据集最近也被Giaoe,Leza和Primiceri(2021)用来研究稀疏模型与密集模型的不同预测能力。另一个例子侧重于预测汇率的尝试(Rossi(2013) ),说明如何使用gigado的实用程序来比较模型的不同滞后,从SDMX来源下载特定数据 ,使用其他相关数据扩充原始数据集,快速创建基准模型并使用它比较不同的替代方案,最后如何记录模型以促进负责任的模型维护和使用。这些例子说明了gigado可以帮助经济学家的工作流程的方式。 Thenextsectiondescribeshowgingadofacilitatedataaugmentation.Section3outlinestheautomaticbenchmarkprocess,followedbyadiscussionofrealandsimulateddatafunctionsinSection4.Section5describesgingado’smodeldocumentationframework.Thelastsend 2来自各个领域的因果推理技术的最新汇编是https://neurips.cc/virtual/2021/workshop/21871。 3可在以下网址查阅:https://dkgaraujo.github.io/gingado/。 在线文档介绍了如何安装最新版本的gingado。更高级的主题,如如何自定义自动基准模型和模型文档模板,也可以在线找到。 2数据增强 公开数据在经济学和金融学研究和实践中有着悠久的传统。例如,圣联邦储备银行路易斯的联邦储备经济数据(FRED)系统与互联网本身的广泛采用同步发展(有关FRED历史的有趣叙述,请参阅Stierholz(2014))。同样,许多其他中央银行,统计机构和国际金融机构以一种或另一种形式将数据集放在公共领域。许多统计组织在2000年初发起了一项旨在促进统计数据收集,汇编和传播的倡议,即统计数据和元数据交换(SDMX),该版本现已 3.0。4此外,BasedosDados和DBnomics等其他数据聚合器还拥有大量的经济和金融系列。 这些服务中的许多服务允许用户以编程方式访问数据,即设置计算机程序来下载数据,而不是用户手动访问网站,选择数据,将其下载到文件中并将数据纳入分析。由于SDMX以及FRED提供的用户友好数据API的广泛可用性,从可信来源查询数据以增强用户的原始数据集变得比过去容易得多。这允许更多的研究受益于编程数据访问的主要优势,而不是手动下载:数据采集是可重复的,可审计的和可扩展的。以编程方式访问数据还允许以可重复和透明的方式完成应用于数据集的任何数值转换、一致性检查和数据插补例程。 此外,对数据的编程访问还可以确保以一致的方式完成添加到原始数据集的任何数据。例如 ,SDMX包括“代码列表”的概念,这是适用于数据集域的标准化定义。一个特定的代码列表包含数据集频率的所有可能实现(即,每天,每周,每月等。),另一个代码列表包含特定货币的所有可能代码。该技术确保用户对要合并的数据集具有更大的控制。 Theconsiderationsaboveareevenmoreimportantwhenmodelsareintheproductionstage.Ineconomicsandfinance,MLmodelsareoccasionallydesigned 4找到了3.0版的技术描述这里:https://sdmx.org/wp -content/uploads/SDMX_3-0-0_SECTION_1_FINAL-1_0.pdf。 在生产设置中运行,而不是一次性执行;这通常由在开发过程中没有参与的用户执行,因此不熟悉模型的内部功能。例如,随着时间的推移,预测股票价格的模型可能会被股票交易者或投资组合经理而不是开发人员广泛使用。这些情况往往发生在ML模型需要未来观察用于训练的数据集的情况下。因此,以能够确保用于训练的数据集和以后用于推理的数据集之间的一致性的方