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

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


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

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

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

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

对冲基金案例研究

近年来,对冲基金的数量呈指数级增长:Eurekahedge数据库显示,全球大约有2万家活跃基金。1对冲基金是监管最低的投资工具,因此也是欺诈的主要目标。例如,对冲基金经理可能会伪造回报数据,制造高利润的假象,吸引更多的投资者。

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

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

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

收集异构数据

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

图1所示。MATLAB数据导入工具,交互式地从文件导入数据。

导入Gateway基金的资产净值后,我们使用以下代码计算每月的回报率:

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

对于美国增长基金,我们使用Datafeed Toolbox™从Yahoo!金融,指定基金的股票代码(AGTHX),相关字段的名称(调整后的收盘价),以及利息的时间段:

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

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

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

%转换为每月收益tsobj = fints(date, 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)。

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

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

分析返回数据

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

  • 基金收益分配的零间断点
  • 与其他资产相关性低,与市场趋势相矛盾
  • 无条件和条件序列相关,表明趋势比预期更平稳
  • 返回数等于零
  • 负的、唯一的、连续的相同的返回数
  • 报告收益的第一个数字(是否符合本福德定律?)和最后一个数字(是否一致?)的分布

为了说明这些技术,我们将集中讨论0点的不连续。

零点间断检验

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

对于这种不连续的一种测试是计算落在三个相邻的箱子(0的左边两个,右边一个)中的返回观察的数量。中间箱子的观察数应该近似等于周围两个箱子的平均值。中间箱观测值的显著不足必须加以标记。

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

图3。考虑中的基金的月回报直方图。

审议中的资金结果

将上述所有检验方法应用于目前的数据,得出了每个基金的指标表(图4)。

图4。正在考虑的资金测试结果。红框表示结果升起了一面旗帜。

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

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

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

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

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

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

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

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

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

更大的图景

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

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

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

1Eurekahedge的数据

2尼古拉斯·博伦和维罗妮卡·K·普尔。“对冲基金回报的可疑模式和欺诈风险”(2011年11月)。https://www2.owen.vanderbilt.edu/nick.bollen/

发布于2014 - 92196v00

查看相关功能的文章

查看相关行业的文章