技术文章和新闻稿

基于MATLAB的自动数据分析系统欺诈检测

简·埃格斯(Jan Eggers), MathWorks出版社


正如麦道夫的庞氏骗局和最近备受瞩目的利率操纵丑闻所显示的那样,欺诈对金融机构、政府机构和个人投资者都是一个重大威胁。作为回应,金融服务和其他组织已经加大了检测欺诈的力度。

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

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

所描述的统计技术和工作流适用于任何需要详细分析来自多个来源的大量异构数据的领域,包括零售和物流分析、国防情报和医疗信息学中的数据挖掘和操作研究任务。

对冲基金案例研究

近年来,对冲基金的数量呈指数级增长:Eurekahedge数据库显示,全球大约有2万家活跃基金。1对冲基金是最低限度的投资车辆,因此,欺诈的主要目标。例如,对冲基金经理可能会伪造返回数据,以创造高利润的幻觉,并吸引更多的投资者。

我们将使用三家对冲基金从1991年1月至2008年10月的月回报数据:

  • 网关基金
  • 美国成长基金
  • Fairfield Sentry Fund.

费尔菲尔德哨兵基金(Fairfield Sentry Fund)是马多夫(Madoff)旗下的一家基金,据悉该基金曾报告虚假数据。因此,它为验证欺诈检测机制的有效性提供了一个基准。

收集异构数据

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

FraudDetection_fig1_w.jpg
图1. MATLAB数据导入工具,用于交互地从文件导入数据。

导入Gateway基金的导航后,我们使用以下代码计算每月返回:

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

对于美国的增长基金,我们使用DataFeed Toolbox™获取来自Yahoo!的数据金融,指定基金(AGTHX)的股票代码,相关领域的名称(调整关闭价格),以及兴趣的时间段:

%连接到雅虎并获取数据c =雅虎;data = fetch(c,“AGTHX”,'adj close',Startdate,Enddate);

不幸的是,雅虎没有提供1991年1月至1993年2月期间的数据。在这段时间内,我们必须手动收集数据。

使用financial Toolbox™中的金融时间序列对象,我们将导入的每日数据转换为所需的每月频率:

%转换为每月返回tsobj = fints(日期,agthxclose);tsobj = tomonthly(tsobj);

最后,我们从费尔菲尔德哨兵基金导入报告数据。我们使用两个免费的Java™类,PDFBoxFontBox,从PDF版本中读取文本费尔菲尔德哨兵基金情况说明书

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

导入文本后,我们提取包含感兴趣的数据的部分——即每月回报表。

一些对欺诈性数据的测试需要比较资金返回数据到标准市场数据。我们使用上述技术导入每个基金的基准数据。

导入数据后,我们可以通过比较所有三个基金的规范性能(图2)来评估其一致性 - 例如。

FraudDetection_fig2_w.jpg
图2。图表比较所考虑的基金的表现。

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

分析返回数据

由于对冲基金的不当行为或欺诈行为主要表现在错误报告的数据上,学术研究人员一直致力于设计方法来分析和标记潜在的操纵基金回报。我们计算由Bollen和Pool引入的度量2并使用它们作为报告对冲基金回报的欺诈潜在指标。例如:

  • 基金返回分布中的零中断
  • 与其他资产相关性低,与市场趋势相矛盾
  • 无条件和条件的串行相关性,表明比预期的趋势更顺畅
  • 返回的数量等于零
  • 负数,独特和连续相同的返回数量
  • 报告收益的第一个数字(是否符合本福德定律?)和最后一个数字(是否一致?)的分布

为了说明技术,我们将专注于零的不连续性。

在零中测试不连续性

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

这种不连续的一个测试是计算落在三个相邻箱中的返回观察的数量,零左侧和右侧的左侧。中间箱中的观测数量应大约等于周围两个箱的平均值。必须标记中间垃圾箱观察的重大缺口。

图3显示了基金回报的柱状图,其中两个箱子高亮显示为0。绿色条表示没有标志,红色条表示潜在的欺诈。只有马多夫的基金没有通过这个测试。

FraudDetection_fig3_w.jpg
图3.正在考虑的资金的每月回报的直方图。

正在考虑的资金结果

应用上述所有测试的所有测试产生每个基金的指示器表(图4)。

frauddetection_fig4_w.jpg.
图4.正在考虑的资金的测试结果。红色框表示提出旗帜的结果。

麦道夫基金在十次测试中有九次升了旗,但其他两家基金也升了旗。阳性测试结果不能证明某一对冲基金参与了欺诈活动。然而,如图4所示的表格指出了值得进一步调查的基金。

利用机器学习对分析结果进行分类

我们现在有一组可以用作欺诈指示器的标志。自动化分析使我们能够检查更大的数据集,并使用计算的标志将资金分类为欺诈性或非欺诈性的。这个分类问题可以用机器学习方法 - 例如,使用的袋装决策树treebagger在统计和机器学习工具箱™算法。TreeBagger算法将需要数据进行监督学习来训练模型。注意,我们的示例仅使用了三个基金的数据。将袋装决策树或其他机器学习方法应用于实际问题需要的数据要比这个小的说明性集合多得多。

我们希望建立一个模型,将基金分类为欺诈性基金或非欺诈性基金,并应用“分析退货数据”一节中描述的指标作为预测变量。为了创建模型,我们需要一组训练数据。让我们考虑M对冲基金,被称为欺诈或非欺诈。我们将这些信息存储在m × 1向量yTrain中,并计算指标对应的mxn矩阵xTrain。然后,我们可以使用以下代码创建一个袋装决策树模型:

%基于培训数据创建欺诈检测模型Fraudmodel = TreeBagger(NTREES,XTrain,YTRAIN);

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

现在,对于一个新基金,分类可以通过

%对新数据应用欺诈检测模型Isfraud =预测(FraudModel,Xnew);

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

更大的图景

本文概述了基于对冲基金返回开发全自动自动化欺诈检测算法的过程。该方法可以应用于使用大规模数据处理解决方案的更大的数据集,例如金宝搏官方网站MATLAB并行服务器™和Apache™Hadoop®.这两种技术都使您能够处理超过单个机器上可用内存数量的数据。

部署算法的上下文很大程度上依赖于应用程序用例。大多数使用Excel的基金经理可能更喜欢将算法部署为Excel插件。他们可以使用该模块调查正在考虑的未来投资基金。监管当局可以将欺诈检测计划集成到他们的生产系统中,它将定期对新数据进行分析,并在自动生成的报告中总结结果。

我们使用高级统计数据来计算单个欺诈指标,以及机器学习创建分类模型。除了这里讨论的袋装决策树外,MATLAB,统计和机器学习工具箱和深度学习工具箱™提供了许多其他机器学习技术,使您能够根据项目的要求扩展或改变建议的解决方案。

1Eurekahedge

2Bollen,Nicolas P. B.和Pool,Veronika K ..“对冲基金回报的可疑模式和欺诈风险”(2011年11月)。https://www2.owen.vanderbilt.edu/nick.bollen/

发布于2014 - 92196v00

查看相关功能的文章

查看相关行业的文章