技术文章及通讯

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

作者:Jan Eggers, MathWorks


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

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

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

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

对冲基金案例研究

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

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

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

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

收集异构数据

Gateway基金的数据可以从法国外贸银行(Natixis)的网站上下载®Excel®载有该基金每月资产净值的档案。使用MATLAB数据导入工具,我们定义了如何导入数据(图1)。数据导入工具可以自动生成MATLAB代码来重现定义的导入样式。

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

导入Gateway Fund的NAV后,我们使用以下代码来计算每月的收益:

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

对于美国增长基金,我们使用Datafeed Toolbox™从雅虎获取数据。财务,说明基金的股票代码(AGTHX),相关领域的名称(调整后的收盘价),以及兴趣期限:

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

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

使用财务工具箱™中的财务时间序列对象,我们将导入的每日数据转换为所需的每月频率:

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

最后,我们从Fairfield Sentry基金导入报告数据。我们使用两个免费的Java™类,PDFBox而且FontBox,以阅读PDF版本的文本费尔菲尔德哨兵基金情况说明书

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

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

一些欺诈数据的测试要求将基金的收益数据与标准市场数据进行比较。我们使用上述技术导入每个基金的基准数据。

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

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

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

分析退货数据

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

  • 基金收益分布在零处的不连续性
  • 与其他资产相关性低,与市场趋势相矛盾
  • 无条件和条件序列相关,表明趋势比预期平稳
  • 返回值等于0的个数
  • 负的、唯一的和连续相同的返回数
  • 报告收益的第一位数字(是否遵循本福德定律?)和最后一位数字(是否均匀?)的分布

为了说明这些技术,我们将重点讨论零点处的不连续。

零点间断测试

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

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

图3显示了这些基金的收益直方图,突出显示了在零附近的两个类别。绿条表示没有标志,红条表示可能存在欺诈。只有马多夫的基金没有通过测试。

FraudDetection_fig3_w.jpg
图3。考虑中的基金每月收益直方图。

审议中的基金的结果

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

FraudDetection_fig4_w.jpg
图4。审议中的基金的测试结果。红色方框表示产生标志的结果。

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

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

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

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

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

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

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

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

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

大局

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

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

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

1Eurekahedge的数据

2博伦,尼古拉斯·p·B,普尔,维罗妮卡·K。《对冲基金收益的可疑模式与欺诈风险》(2011年11月)。https://www2.owen.vanderbilt.edu/nick.bollen/

发布日期:2014年9月19日

查看相关功能的文章

查看相关行业的文章

Baidu
map