通过MATLAB中的自动数据分析进行系统的欺诈检测

作者:Jan Eggers, MathWorks

由于麦道夫的庞氏骗局以及最近高调率操纵丑闻已经证明,欺诈是金融机构,政府机构和个人投资者显著的威胁。金融服务和其他组织通过加紧努力,以检测欺诈回应。

系统欺诈检测提出了几个挑战。首先,欺诈检测方法需要复杂的调查,需要处理大量的异构数据。数据来自多个来源,跨越多个知识领域,包括金融、经济、商业和法律。手工收集和处理这些数据非常耗时,而且容易出错。其次,欺诈是“大海捞针”的问题,因为只有非常小的一部分数据可能来自欺诈案。大量的常规数据——即来自非欺诈来源的数据——往往会排除欺诈的情况。第三,欺诈者不断改变他们的方法,这意味着侦查策略常常落后几步。

以对冲基金数据为例,本文演示了MATLAB如何实现®可用于自动获取和分析欺诈检测数据的过程。它展示了如何导入和聚合异构数据,如何构建和测试模型来识别潜在欺诈的指标,以及训练机器学习技术来将计算出来的指标分类为欺诈或非欺诈基金。

描述的统计技术和工作流程适用于需要大量从多个来源,包括数据挖掘和在零售和物流分析运筹学任务,国防情报和医学信息异构数据的详细分析任何区域。

对冲基金的案例研究

对冲基金的数量已成倍增长在最近几年:在Eurekahedge的数据库表明全球共有约20,000的主动型基金。1对冲基金监管最小的投资工具,因此,诈骗的主要目标。例如,对冲基金经理可能会假回的数据来创建高利润的假象,吸引更多的投资者。

我们将使用月度收益数据,从1991年1月至2008年10月从三家对冲基金:

  • 网关基金
  • 美国成长基金
  • 费尔菲尔德哨兵基金

费尔菲尔德哨兵基金为已知患有报假数据的麦道夫基金。因此,它提供了用于验证的欺诈检测机制的有效性的基准。

收集异构数据

网关基金的数据可以从微软的Natixis网站下载®Excel®包含基金每月资产净值(NAV)的档案。使用MATLAB数据导入工具,我们定义如何导入数据(图1)。数据导入工具可以自动生成MATLAB代码,以重现定义的导入样式。

图1. MATLAB数据导入工具交互从文件导入数据。

导入NAV为网关基金后,我们用下面的代码来计算每月的回报:

计算每月收益%gatewayReturns = tick2ret(gatewayNAV);

对于美国的成长基金,我们用数据传送专线工具箱™获得来自雅虎的数据金融,指定股票代码为基金(AGTHX),相关领域(调整后收盘价)的名称,感兴趣的时间段:

%连接到雅虎和获取数据C =雅虎;数据=取(C,“AGTHX”,“调关闭”,的startDate,结束日期);

不幸的是,雅虎并没有从1991年1月至1993年2月为周期的数据对于这个时间段,我们必须手动收集数据。

在金融工具箱使用金融时间序列对象™,我们进口的每日数据转换为所需的每月频率:

%转换为月收益tsobj = fints(日期,agthxClose);tsobj = tomonthly(tsobj);

最后,我们进口从费尔菲尔德哨兵基金报告的数据。我们用两个免费提供的Java™类,PDFBox的FontBox,来读取的PDF版本的文本费尔菲尔德岗哨基金简介:

%实例化必要的类pdfdoc = org.apache.pdfbox.pdmodel.PDDocument;读者= org.apache.pdfbox.util.PDFTextStripper;
%读取数据pdfdoc = pdfdoc.load (FilePath);pdfstr = reader.getText (pdfdoc);

导入文本后,我们提取了包含利息数据的部分,即月度收益表。

欺诈性数据的一些测试需要资金的回报数据,以规范的市场数据进行比较。我们进口的基准数据,使用上述技术每个基金。

一旦数据被导入并可用,我们可以评估其一致性,例如,通过比较所有三个基金(图2)的归一化的性能。

图2。用图表比较所考虑的基金的表现。

简单地观看情节允许定性评估。例如,马多夫基金表现出异常平稳的增长,产生了高额利润。此外,在基础数据中没有明显的不一致迹象。这意味着我们将能够使用正式的方法来检测欺诈活动。

分析返回数据

由于对冲基金常表现为主要集中在误报数据的不当行为或欺诈行为,学术研究都集中于设计方法分析和标志可能操控基金的回报。我们通过计算和博伦介绍游泳池指标2并把它们作为潜在的指标进行诈骗所报告的对冲基金的回报。例如:

  • 在基金连续零的收益分配
  • 与其他资产相关性低,矛盾的市场趋势
  • 无条件的和有条件的序列相关性,比预期的趋势表明更顺畅
  • 返回数等于零
  • 消极的,独特的,连续的相同回报的数
  • 报告收益的第一个数字(是否遵循本福德定律?)和最后一个数字(是否一致?)的分布

为了说明这个技术,我们将专注于间断为零。

在零供测试间断

由于正回报较多的基金吸引更多资本,基金经理就有动机谎报业绩,以避免负回报。这意味着,不连续性在零可能是舞弊的潜在指标。

对于这样的不连续性一个测试计数落在在三个相邻的箱中,两个到左侧的零和一向右返回观测值的数量。观察中间仓数应大致相等周围的两个区间的平均值。中间仓意见0显著短缺必须标记。

图3显示了基金的回报率的直方图,周围零两个箱突出。绿条表示没有标志,红柱表示潜在的欺诈行为。只有麦道夫的基金并没有通过这个测试。

图3.在考虑基金的月度回报率的柱状图。

结果资金项下代价

施加上述所有的本发明的数据测试产生的每个基金指标(图4)的表。

图4.测试结果所考虑的资金。红色方框指示提出一个标志结果。

马多夫基金在十次测试中有九次升了旗,但其他两个基金也升了旗。检测结果呈阳性并不证明某对冲基金参与欺诈活动。但是,如图4所示的表表示值得进一步研究的资金。

分类分析结果与机器学习

我们现在有一组可作为指标进行诈骗的标志。自动化的分析使我们能够回顾更大的数据集,并使用计算的标志进行分类的资金为欺诈nonfraudulent。这种分类问题可以用得到解决机器学习方法,例如,袋装决策树,使用TreeBagger算法在统计和机器学习工具箱™。该TreeBagger算法将需要的数据监督学习训练模式。请注意,我们的例子中使用的数据仅三只基金。应用袋装决策树或其他机器学习方法的实际问题,将需要比这个小,组说明性相当多的数据。

我们要建立一个模型进行分类资金为欺诈nonfraudulent,在应用的“分析返回数据”预测变量一节所述的指标。要创建模型,我们需要数据的训练集。让我们考虑的是被称为欺诈或nonfraudulent中号的对冲基金。我们存储在M×1矢量yTrain此信息和计算的指标对应的M×N个矩阵xTrain。然后,我们可以使用下面的代码创建一个袋装决策树模型:

%根据训练数据创建欺诈检测模型fraudModel = TreeBagger(nTrees,xTrain,yTrain);

其中ntree是基于训练数据的bootstrap样本创建的决策树的数量。nTrees决策树的输出被聚合为单个分类。

现在,对于一个新的基金,分类可以由

%对新数据应用欺诈检测模型isFraud =预测(fraudModel,xNew);

我们可以使用欺诈检测模型来对他们的回报数据纯粹基于分类的对冲基金。由于模型是自动化的,它可以扩展到大量的资金。

更大的图景

本文概述了开发基于对冲基金回报的欺诈检测一个完全自动化的算法的过程。该方法可以应用到更大的数据使用的大型数据处理解决方案,例如设置万博 尤文图斯MATLAB并行服务器™和Apache™Hadoop®。这两种技术都使您能够处理超过一台机器上可用内存量的数据。

算法部署的上下文在很大程度上取决于应用程序用例。经常使用Excel的基金的基金经理可能更愿意将算法部署为Excel插件。他们可以使用这个模块来调查未来投资考虑中的资金。监管机构可以将欺诈检测方案集成到生产系统中,定期对新数据进行分析,并在自动生成的报告中总结结果。

我们采用先进的统计计算个人舞弊指标,而机器学习创建分类模型。除了袋装决策树这里讨论,许多其他的机器学习技术在MATLAB,统计和机器学习工具箱和深度学习工具箱中可用™,使您能够延长或修改根据项目的要求提出的解决方案。

1Eurekahedge的

2博伦,尼古拉斯P. B.和游泳池,纯美K。。“在对冲基金回报可疑模式和欺诈风险”(2011年11月)。https://www2.owen.vanderbilt.edu/nick.bollen/

发布时间2014 - 92196v00


查看文章的相关能力

查看文章为相关行业