现代化的风险管理
利用统一的方法来处理数据
和人工智能来缓解操作风险
金融服务行业
介绍
风险管理在金融服务,尤其是在银行业,已经在过去的几年中增加了复杂性。首先,新框架(如FRTB)被引入,可能需要巨大的计算能力和多年的历史数据分析的能力。与此同时,监管机构要求更高的透明度和explainability从其监管的银行。最后,引进新技术和商业模式意味着需要良好的风险管理是在一个高。然而,银行业的能力有效地满足这些需求没有一个轻松的任务。传统银行依靠本地基础设施不能有效地管理风险。银行必须放弃传统技术的计算效率低下,并构建一个敏捷的现代风险管理实践能够快速响应市场和经济波动通过使用数据和先进的分析。最近的经验表明,当出现新的威胁时,历史数据和聚合风险模型迅速失去预测值。风险分析师必须增强传统数据替代数据集,以探索的新方法识别和量化其业务所面临的风险,无论是在规模和实时。
短暂在这个解决方案中,我们将演示如何现代化传统风险价值(VaR)计算通过使用砖统一数据分析平台的各种组件——三角洲湖,Apache SparkTM和MLflow——为了使更敏捷和前瞻性的风险管理方法。bob体育客户端下载
风险管理解决方案加速器
在金融服务业中构建现代风险管理解决方案
采取更灵活的方法,风险管理在Lakehouse通过统一的数据和人工智能
这个解决方案有两个加速器。首先,它展示了三角洲湖和MLflow可以用于风险价值计算,显示银行可以通过流媒体的摄入现代化他们的风险管理实践,快速发展和蒙特卡罗模拟模型与Lakehouse规模。
第二个解决方案加速器显示如何执行聚合,val在规模和使用替代数据走向更全面,敏捷和前瞻性的风险管理和投资方法。
好处:
- 获得一个整体的观点:使用一个更完整的视图的风险和投资与实时和替代数据,可以随需应变分析
- 检测新出现的威胁:主动识别新兴威胁保护资本和优化曝光
- 实现速度规模:扫描通过大量数据的快速和彻底的反应时间和降低风险
解决常见的风险管理挑战
砖提供了一个统一的数据分析方法有效地解决最常见的挑战时,现代化的风险管理实践。在本节中短暂的解决方案中,我们将讨论以下解决方案:
- 使用三角洲湖市场数据的统一视图
- 利用MLflow作为模型的开发和部署的运载工具
- 使用Apache引发大规模分发蒙特卡罗模拟
现代化与三角洲湖数据管理
随着大数据和云计算技术的兴起,它的风景已经大大改变了过去十年。然而,大多数FSIs仍然依赖于主机和将数据库等核心业务风险的VaR计算和移动只有一些下游过程的现代数据湖泊和云基础设施。结果,银行落后技术曲线及其当前的风险管理实践已不再满足现代经济。现代化风险管理开始于数据。具体地说,通过将镜片的数据查看:不是成本,而是作为一种资产。
老方法:当数据被认为是成本,FSIs限制风险分析师的能力去探索“如果”场景和限制他们的聚合数据竖井只满足预定义的风险策略。随着时间的推移,维护竖井的刚性导致工程师分支新流程和创建新的聚合视图已经脆弱的工作流程的基础上,为了适应不断变化的需求。矛盾的是,不断努力保持数据作为一个低成本商品本地导致生态系统更加脆弱,因此更昂贵的维护。失败的流程(注释如下X符号)有太多的下游影响为了保证数据的及时性和可靠性。因此,盘中(可靠的)视图市场风险日益复杂和成本高昂的实现给出如下的系统化和相互依赖的所有移动组件图。
现代的方法:当数据被认为是一种资产,组织接受的多功能特性数据,多个用例(如风险价值和预期缺口),使各种特别的分析(如理解风险暴露在一个特定的国家)。风险分析师不再局限于一个狭窄的风险,可以采用更敏捷的风险管理方法。与三角洲湖一个开源存储层,规模风险分析人员可以确保数据一致性。统一流和批ETL、合规和模式的实施,确保酸三角洲湖湖给你带来性能和可靠性数据,逐渐增加的质量和相关性数据通过青铜,白银和黄金之间的鸿沟层和操作流程和分析数据。
在这个例子中,我们评估各种投资的风险水平在拉美股票投资组合由40仪器跨多个行业,将所有返回存储在一个集中的三角洲湖表,将推动我们所有的风险价值计算。
这个演示的目的,我们使用python访问每日近价格雅虎财经金融图书馆。在现实生活中,一个可能获取市场数据直接从源系统(如变化数据捕获从大型机)三角洲湖表,将原始信息存储在青铜和策划/银表,验证数据在实时。
三角洲湖上我们的核心数据,我们使用一个简单的窗口函数来计算每天的日志返回和输出结果返回给黄金表准备风险建模和分析。
在下面的示例中,我们将展示一种特定的投资担保的数据(Grupo AVAL accion y英勇s.a.),一个金融服务公司的操作在哥伦比亚。鉴于其股价下跌预期发布2020年3月,我们可以评估其影响整体风险的投资组合。
发展与MLFlow简化模型
虽然不是一个新概念,定量分析近期数据科学与数据量的爆炸式增长发现了主要银行的运作方式的低效率模型。没有行业标准,数据科学家经常操作在最大的努力的基础上。这通常意味着训练模型对数据样本单节点和手动跟踪模型在整个开发过程,导致发布周期长(可能需要6到12个月之间提供一个模型生产)。长模型开发周期阻碍的能力让他们快速适应新兴威胁和动态减少相关的风险。FSIs的脸在这个范式的主要挑战是减少模型开发到生产时间没有这样做的治理法规或导致数据科学的生态系统更加脆弱。
MLflow是事实上的标准来管理机器学习模型发展生命周期将不变性和透明度,但并不局限于人工智能。银行的定义模型通常是相当广泛的,包括任何金融从Excel宏模型基于规则的系统或先进的机器学习,他们将使中央模型提供的注册表内MLflow砖统一数据分析平台。bob体育客户端下载
复制模型开发
在这个例子中,我们要培养一个新的模型,预测股票收益给市场指标(如标准普尔500指数、原油和美国国债)。我们可以检索的数据,以确保完整的模型再现性和审计合规。这种能力的三角洲湖是通常被称为“时间旅行”。由此产生的数据集将保持一致的所有实验,可以访问现有用于审计。
为了选择合适的特征模型,定量分析师经常火花和熊猫dataframes之间导航。我们这里显示如何从pyspark python环境以提取我们的市场因素的相关性。砖互动的笔记本内置的数据可视化和也完全支持使用Matplotlib seaborn(或ggplot2 R)。
假设我们的指标不相关(它们)和预测我们的投资组合的回报(他们),我们想记录这张图作为我们成功的实验证据。这说明内部审计,模型验证功能,以及监管机构模型进行了探索与最高质量标准及其发展,领导与实证结果。
并行训练模型
随着仪器在我们的投资组合的数量增加,我们可能想要训练并行模型。这可以通过一个简单的熊猫UDF函数如下。为了方便(模型可能在现实生活中更复杂的),我们想训练一个简单的线性回归模型和聚合所有模型系数n x m矩阵工具的数量(n和m的数量特性来源于我们的市场因素)。
由此产生的数据集(重量为每个模型)可以很容易地收集回记忆和记录到MLflow作为我们的模型候选人的实验。在下面的图,我们报告的预测与实际股票为哥伦比亚S.A.返回来自我们的模型,哥伦比亚的石油和天然气生产商。
我们现在的实验是存储在MLflow与所有证据都需要一个独立的验证单位(IVU)提交可能你模型风险管理框架的一部分。是关键,这个实验不仅与我们的笔记本,但确切的修订,将独立专家和监管机构的全面跟踪我们的模型以及模型验证所需的所有必要的上下文。
蒙特卡罗模拟在规模与Apache引发™
风险价值是模拟随机漫步的过程,涉及可能的结果以及最坏情况(n)场景。风险价值95% (t)天是最好的情况最差的5%试验。因此我们要产生足够的模拟覆盖一系列可能的结果给出一个90天的历史市场波动观察所有仪器在我们的投资组合。鉴于模拟每个仪器所需的数量,这个系统必须设计具有高度的并行性,使风险价值完美的工作负载在基于云的环境中执行。风险管理是首要原因今天的顶级银行评估云计算分析并加速通过砖运行时的值。
创建一个多元分布
同时行业建议20到30之间产生成千上万的模拟,混合组合的主要计算风险价值的复杂性并不是衡量个人资产的回报,但它们之间的相关性。在组合层面,市场指标可以在本机python中优雅地操纵而无需复杂的矩阵计算转移到分布式框架。因为它是常见的有多个书籍和投资组合的操作,这个过程可以很容易地扩展并行分布矩阵计算。我们使用市场回报的最后90天来计算今天的波动(提取均值和协方差)。
我们通过采样点生成一个特定的市场条件下市场的多元投影(单个正态分布我们的市场因素的叠加)。这提供了一个特征向量,可以注入到我们的模型,以预测的回归我们的金融工具。
产生一致的和独立的大规模临床试验
另一个模拟的复杂性风险价值是通过精心修复随机数来避免自相关使用的“种子”。我们希望每个审判独立虽然一致工具(为每个模拟市场环境是相同的位置)。参见下面的一个例子创建一组独立的和一致的审判——运行相同的块会导致两次相同的一组向量生成的市场。
在分布式环境中,我们希望每个执行者集群负责多个模拟多个工具。我们定义我们的种子策略,以便每个执行者负责num_instruments x (num_simulations / num_executors)试验。鉴于100000年蒙特卡洛模拟,并行的50个执行人,和10个工具在我们的投资组合,每个执行器将运行20000仪器的回报。)
我们组的种子,每个执行者和生成试验模型通过使用熊猫UDF。请注意,可能有多种方式来达到相同的,但这种方法的好处完全控制水平的并行性,以确保没有热点发生和执行人将闲置等待其他任务完成。
白天我们追加试验分区到三角洲湖表这样,分析师可以很容易地访问一天的模拟和组个人返回由审判Id(即种子)为了访问每日收益分配模式及其各自的风险价值。
对原来的数据成为核心资产的定义(如反对作为成本),我们存储所有试验富含组合分类法(如行业类型和操作的国家),使一个更全面的和按需面临的风险投资策略的看法。
聚合,val规模和引入替代数据
这个解决方案的第一部分简要的解决相关的技术挑战现代化的风险管理实践与数据和先进的分析方法,涉及风险的概念模型和蒙特卡罗模拟使用MLflow和Apache火花。这部分的解决方案简单关注风险分析师角色和他们的需求有效地分割成风险模拟(按需)为了更好地理解项目组合风险作为新的威胁出现,在真正的时间。我们将讨论以下主题:
- 使用三角洲湖和SQL聚合风险价值的需求
- 使用Apache SparkTM MLflow val模型和向监管机构报告违反
- 探索利用替代数据更好地评估你的风险敞口
切割与三角洲湖风险价值
在这个例子中,我们发现不同的风险投资拉美股票投资组合由40多个行业工具。为此,我们利用大量的数据能够生成通过蒙特卡罗模拟(40仪器模拟x 50000 x 52周= 1亿条记录),白天分区,丰富投资组合分类。
风险价值
风险价值是模拟随机漫步的过程,涉及可能的结果以及最坏情况(n)场景。风险价值95% (t)天是最好的情况最差的5%试验。
作为我们的试验是分区的,分析师可以很容易地访问一个天的模拟试验Id和组个人返回的数据(即种子用于生成金融市场条件)为了访问我们的投资回报的每日分布及其各自的风险价值。我们的第一个方法是使用SQL聚合引发我们的模拟返回给定天(50000条记录),并在内存中使用python来计算通过一个简单的numpy 5%分位数的操作。
提供了最初的10000美元投资在我们所有的拉丁美洲的权益工具,风险价值的95%——在特定的时间点,将是3000美元。这是我们的业务将会准备好输了多少,(至少)在最差的5%的所有可能的事件。
这种方法的缺点是,我们首先需要收集所有日常试验在内存中以计算5%分位数。虽然可以轻松地执行这个过程使用价值1天的数据时,它迅速成为瓶颈时聚合value-atrisk更长一段时间。
一个务实和可伸缩的方法来解决问题
从大型数据集提取百分比是众所周知的挑战任何分布式计算环境。共同的(尽管低效)实践是1)你所有的数据和2)樱桃挑选一个特定行通过approxQuantile使用takeOrdered或找到一个近似方法。我们面临的挑战是略有不同,因为我们的数据并不构成一个数据集,但跨越多个日子,行业和国家,每个桶可能太大而不能有效地收集和处理在内存中。
在实践中,我们利用风险价值的本质和只关注最糟糕的n (n小)事件。鉴于50000模拟仪表和99%的VaR,我们感兴趣的是找到最好的最严重的500年的实验。为此,我们创建一个用户定义的聚合函数(UDAF)只返回最佳n最严重的事件。这种方法将大大减少内存占用和网络约束时可能出现的大规模计算VaR聚合。
我们通过spark.udf UADF通过注册。注册方法,我们让这些功能我们所有的用户,民主化风险分析对每个人都没有一个先进的知识scala / python /火花。只是一个group by审判Id(即种子)为了运用以上并提取相关的风险价值使用普通SQL功能在所有数据。
我们可以很容易发现COVID-19在我们的市场风险计算的影响。90天时间内经济波动导致更低的风险价值,因此更高的风险敞口2020年3月初以来整体。
我们的风险敞口的整体视图
在大多数情况下,理解整体风险价值是不够的。分析师需要了解风险不同的书籍、资产类别,不同行业或不同国家的操作。除了三角洲湖功能如时间旅行和ACID事务前面所讨论的,三角洲湖和Apache火花砖上高度优化的运行时提供快速聚合在阅读。高的性能可以通过使用我们的本地分区逻辑(按日期)和z顺序索引应用于国家和行业。这些额外的索引将充分利用在选择一个特定的块数据在一个国家或行业水平,大大减少了需要读取的数据量之前你的VaR聚合。
我们可以很容易地适应上面的SQL代码通过使用国家和行业作为我们的分组参数VALUE_AT_RISK方法为了有更细粒度的和描述性的观点我们的风险敞口。由此产生的数据集可以使用砖把“原样”设想为笔记本,可以进一步细化了解这些国家的具体贡献每个我们的整体风险。
在这个例子中,秘鲁似乎我们的整体风险敞口最大的贡献。看着相同的SQL代码在一个行业水平在秘鲁,我们可以探讨在行业风险的贡献。
的贡献接近60%在2020年3月,秘鲁的主要风险似乎与矿业有关。在应对日益严重的封锁COVID病毒一直在秘鲁,影响采矿项目中心的铜、金和银生产(源)。
延伸了本文的讨论范围,我们可能想知道如果我们能早点发现这一趋势使用替代数据和具体事件的全球数据库,位置和语气(GDELT)。我们报告在下面图在秘鲁矿业的媒体报道,颜色编码正面和负面趋势通过一个简单的移动平均线。
这清楚地展示一个积极的趋势在二月初,也就是15天前观察股票的波动,这可能是一个早期的迹象越来越多的风险。这种分析强调现代化风险价值计算的重要性,增强历史数据与外部因素来自替代数据。
模型,val
在应对2008年金融危机中,一个附加的措施是由巴塞尔银行监管委员会。99天VaR结果对日常损益表进行比较。val季度执行使用最近250天的数据。基于的数量超过数点经验在那段时期,VaR度量是归类为陷入三种颜色的区域。
水平 | 阈值 | 结果 |
---|---|---|
绿色 | 4 exeedances | 没有特别的担忧 |
黄色的 | 到9 exeedances | 监测要求 |
红色的 | 超过10 exeedances | VaR方法得到改善 |
的风险价值
鉴于我们之前定义的聚合函数,我们可以提取每日在我们整个投资组合的风险价值。作为我们的聚合风险值数据集很小(包含2年的历史,即365 x 2数据点),我们的策略是收集每日VaR和广播我们大组为了避免不必要的打乱。可以找到更多细节的功能博客民主化金融时间序列分析。
我们检索最近的风险价值实际返回通过一个简单的用户定义函数和执行一个250天的滑动窗口提取连续每日违反。
我们可以观察到一系列连续的17个漏洞从2月开始,需要报规定根据《巴塞尔协议III》(Basel III)框架。同样可以报告到一个图,随着时间的推移。
在2020年初,我们观察一段时间的异常稳定,似乎预示着我们现在面临的困难时期。我们也可以观察到危险值显著降低(随着我们的整体风险增加),但似乎并没有减少实际回报一样快。这个明显的滞后是由于我们的风险价值计算所需的90天的观察期的波动模型。
MLflow上注册与我们的模型,我们可能想要记录这些结果依据审计和监管,为他们提供一个真理的来源我们的风险模型,其精度、技术背景(透明度)以及他们最坏情况的场景作为标识。
强调VAR
引入“强调VaR“有助于减轻我们今天面临的风险,包括worstever交易日我们持续计算的一部分。然而,这不会改变的事实,这个方法是完全基于历史数据,无法应对实际波动率由新兴威胁。事实上,尽管复杂”强调VaR模型,银行不再是装备在所谓“前所未有的时代”,历史不再重演。结果,大多数的顶级银行目前报告严重违反其风险值计算如下发表在英国《金融时报》的文章。
华尔街银行的交易风险激增到2011年以来最高水平
[…]前五名华尔街银行的总“风险价值”,衡量潜在的每日交易损失,飙升至最高水平在34个季度在今年前三个月,据英国《金融时报》分析,季度VaR高披露银行的监管备案文件
https://www.ft.com/content/7e64bfbc - 1309 - 41 - ee - 8 d97 - 97 d7d79e3f57?sharetype=nongift
前瞻性的方法
正如前面演示的,一个现代的风险和投资组合管理实践不应仅仅基于历史回报,但今天也必须接受各种各样的信息,引入冲击蒙特卡罗模拟增强现实生活新闻事件,展开。例如,一个白皮书从阿特金斯等人描述了财经新闻可以用来预测股票市场波动比价格。通过上面的秘鲁的例子表明,使用替代数据风险可以大大增强情报分析师现代经济更具描述性的透镜”,使他们能够更好地理解和应对外部冲击。
结论
理解和减轻风险是任何金融服务机构的最前沿。然而,银行今天仍在努力跟上新兴业务面临的风险和威胁。受到本地基础设施和传统技术的局限性,银行直到最近还没有工具来有效地构建一个现代风险管理实践。幸运的是,存在一个更好的选择今天基于开源技术由原生云基础设施。
银行可以现代化他们的风险管理实践通过移动到云,采用统一的数据分析方法与砖。此外,与砖的力量,银行可以收回控制他们的数据(考虑数据作为一种资产,而不是一个成本)和丰富的观点对现代经济通过使用替代数据为了走向一个前瞻性和更敏捷方法风险管理和投资决策。
现代化的方法给风险管理:下一个步骤
如果你想学习如何统一数据分析可以使数据科学、业务分析和工程一起加速您的数据和ML的努力,看看按需车间-统一的数据管道、业务分析和机器学习与Apache火花。™
如果你准备加快现代化风险管理实践,试试下面的VaR和风险管理笔记本:
//www.neidfyre.com/notebooks/00_context.html
//www.neidfyre.com/notebooks/01_market_etl.html
//www.neidfyre.com/notebooks/02_model.html
//www.neidfyre.com/notebooks/03_monte_carlo.html
//www.neidfyre.com/notebooks/04_var_aggregation.html
//www.neidfyre.com/notebooks/05_alt_data.html
//www.neidfyre.com/notebooks/06_backtesting.html