技术文章和通讯

在MATLAB系统的欺诈检测通过自动化数据分析

由扬•艾格斯MathWorks


马多夫庞氏骗局和最近的高调rate-rigging丑闻表明,欺诈是一种严重威胁金融机构、政府机构和个人投资者。对此,金融服务和其他组织加紧检测欺诈行为。

系统的欺诈检测提出了诸多挑战。首先,欺诈检测方法需要复杂的调查,涉及大量的异构数据的处理。来自多个数据源的数据和跨越多个知识领域,包括金融、经济、商业、和法律。人工收集和处理这些数据是非常耗时和容易出错。第二,欺诈是“大海捞针”的问题,因为只有一个非常小的比例的数据可能来自一个欺诈案件。产生大量的定期联系,数据从nonfraudulent sources-tends混合欺诈的情况下。第三,骗子不断改变他们的方法,这意味着检测策略经常几个步骤。

本文使用对冲基金数据为例,演示了如何用MATLAB®可用于自动获取和分析欺诈检测数据的过程。它显示了如何导入和总异构数据,构建和测试模型确定指标潜在的欺诈,和培训机器学习技术来计算指标对基金进行分类为欺诈或nonfraudulent。

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

对冲基金案例研究

对冲基金的数量呈指数级增长,近年来:Eurekahedge数据库表明全球共有大约20000个活跃的基金。1监管对冲基金最低限度的投资工具,因此,欺诈的主要目标。例如,对冲基金经理可能假返回数据创造高利润的假象,吸引更多的投资者。

我们将使用月度回报数据从1991年1月到2008年10月从三个对冲基金:

  • 网关基金
  • 美国增长基金
  • Fairfield Sentry基金

Fairfield Sentry基金是一个麦道夫基金已知报道假数据。因此,它提供了一个基准检验的功效欺诈检测机制。

收集异构数据

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

FraudDetection_fig1_w.jpg
图1所示。MATLAB交互式数据导入工具导入的数据文件。

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

%计算月度回报gatewayReturns = tick2ret (gatewayNAV);

对于美国增长基金,我们使用数据处理工具箱™从雅虎获得数据金融、指定基金的股票代码(AGTHX),相关字段的名称(调整后的价格),和感兴趣的时间:

%连接到雅虎和获取数据c =雅虎;data =获取(c,“AGTHX”,的亲密的startDate可以,endDate);

不幸的是,雅虎不提供数据,从1991年1月到1993年2月。在这个时期,我们必须手动收集数据。

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

%转换为月度回报tsobj =弗林特(日期、agthxClose);tsobj = tomonthly (tsobj);

最后,我们进口Fairfield Sentry基金的报告数据。我们使用两个免费的Java™类,PDFBoxFontBox,阅读文本的pdf版本Fairfield Sentry基金说明书:

%初始化必要的类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。情节比较考虑基金的表现。

简单的浏览这个情节允许定性评估。例如,麦道夫基金展品异常平稳增长,收益率高的利润。此外,没有明显迹象显示底层数据的不一致性。这意味着我们可以使用正式的方法来检测欺诈活动。

分析返回的数据

因为不当行为或欺诈在对冲基金主要体现在误报数据,学术研究人员专注于设计方法分析和标志可能操纵基金的回报。博伦和池计算指标2并使用它们作为潜在欺诈指标报道对冲基金的回报。例如:

  • 基金的收益分配不连续为零
  • 低相关性与其他资产,这与市场趋势
  • 无条件的和有条件的序列相关性,表明平滑比预期的趋势
  • 数量的回报等于零
  • 消极的,独特的,和连续相同的回报
  • 第一位数分布(遵循本福德定律吗?)和最后一个数字(制服吗?)报告的回报

为了说明的技术,我们将集中于零的不连续。

测试不连续为零

因为基金更多的正回报吸引更多资本,基金经理有动机错误的报道结果避免负回报。这意味着不连续在零可以潜在的欺诈指标。

一个测试对于这样一个不连续计算返回的数量的观察,在三个相邻的垃圾箱,2 - 0和1的左边到右边。观察中间仓的数量应该近似等于平均周围的两个箱子。中间出现巨大缺口本观测必须标记。

图3显示了直方图的基金的回报,两个箱子在零附近突出显示。绿色酒吧表示没有国旗,红色条指示潜在的欺诈行为。只有麦道夫基金没有通过这次考试。

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

基金正在考虑的结果

上面描述的所有测试应用到目前的数据为每个基金收益率指标表(图4)。

FraudDetection_fig4_w.jpg
图4。测试结果为基金正在考虑。红框显示的结果,提出了一个标志。

麦道夫基金募集了国旗在十之八九的测试中,但其他两个基金也提出了旗帜。积极的测试结果不能证明一个给定的对冲基金参与了欺诈活动。然而,一个表中所示的图4显示基金值得进一步调查。

分类分析与机器学习结果

我们现在有一组标记,可以用作欺诈指标。自动化分析使我们能够评估大数据集和使用计算国旗作为欺诈或nonfraudulent对基金进行分类。这种分类可以解决使用问题机器学习方法的例子,袋装决策树,使用TreeBagger在统计和机器学习算法工具箱™。TreeBagger算法为监督学习需要数据训练模型。请注意,我们的示例中使用的数据只有三个基金。应用袋装决策树或其他机器学习方法对一个实际的问题需要更多的数据比这小得多,说明设置。

我们想要建立一个欺诈或nonfraudulent模型对基金进行分类,应用部分中描述的指标分析返回的数据作为预测变量。创建模型,我们需要一个训练集的数据。让我们考虑米被称为欺诈或nonfraudulent对冲基金。我们这个信息存储在M-by-1-vector yTrain并计算相应的MxN-matrix xTrain的指标。我们可以创建一个袋装决策树模型使用下面的代码:

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

nTrees在哪里创建的决策树的数量基于引导训练数据样本。的输出nTrees聚合到单个分类决策树。

现在,一个新的基金,可以进行分类

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

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

更大的图景

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

算法部署的环境在很大程度上取决于应用程序的用例。基金经理的工作主要是与Excel可能更愿意作为一个Excel插件部署算法。他们可以使用模块来调查基金正在考虑为未来投资。监管当局可能将欺诈检测方案整合到他们的生产系统,在那里它将定期执行新的数据分析,总结的结果在一个自动生成的报告。

我们使用先进的统计数据来计算个人欺诈指标,和机器学习创建分类模型。除了这里讨论的袋装决策树,在MATLAB中,有许多其他的机器学习技术统计和机器学习的工具箱,深度学习工具箱™,使您能够扩展或修改建议的解决方案根据项目的需求。

1Eurekahedge的数据

2博伦,尼古拉斯·p·B。,和Pool, Veronika K.. “Suspicious Patterns in Hedge Fund Returns and the Risk of Fraud”(November 2011).https://www2.owen.vanderbilt.edu/nick.bollen/

2014 - 92196 v00出版

查看相关文章的能力

为相关行业观点文章