分享

用 IBM SPSS Modeler 建立线性回归预测模型

 学习雪雪 2017-11-27


简介

回归分析(Regression Analysis)是一种统计学上对数据进行分析的方法, 主要是希望探讨数据之间是否有一种特定关系。线性回归分析是最常见的一种回归分析, 它用线性函数来对因变量及自变量进行建模(自变量和因变量都必须是连续型变量), 这种方式产生的模型称为线性模型。线性回归模型由于其运算速度快、直观性强以及参数易于确定等特点, 在实践中应用最为广泛,也是建立预测模型的重要手段之一。

IBM SPSS Modeler 是一组数据挖掘工具,通过这些工具可以采用商业技术快速建立预测性模型, 并将其应用于商业活动,从而改进决策过程。在后面的文章中,将通过一个理赔欺诈检测的实际 商业应用来介绍如何用 IBM SPSS Modeler 建立、分析及应用线性回归分析模型。

用线性回归建立理赔欺诈检测模型

在本例中,用于建立模型的数据存放在 InsClaim.dat 中,该文件是一个 CSV 格式的数据文件, 存储了某医院以往医疗保险理赔的历史记录。该文件共有 293 条记录,每条记录有 4 个字段, 分别是 ASG(疾病严重程度)、AGE(年龄)、LOS(住院天数)和 CLAIM(索赔数额)。 图 1 显示了该数据的部分内容。

图 1. 历史理赔数据文件
历史理赔数据文件

任务与计划

基于已有的数据,我们的任务主要有如下内容:

  • 建立理赔金额预测模型,该模型将基于病人的疾病严重程度、住院天数及年龄预测其索赔金额。
  • 假设模型匹配良好,分析那些与预测误差较大的病人资料。
  • 通过模型来进行索赔欺诈预测。

根据经验及对数据进行的初步分析(这个数据初步分析可以通过 IBM SPSS Modeler 的功能实现,此处不是重点, 故不做深入介绍),可以猜测理赔金额与疾病严重程度、住院天数以及年龄存在线性相关关系,因此我们将首先 选用线性回归模型进行建模,因此可以得到下面这样一个初步计划:

  • 应用线性回归分析来建立模型。
  • 如果模型匹配度不佳,则可能应用更加复杂的模型,例如神经网络、规则推导等。

基于上面的分析,我们容易得到目标模型的因变量为 CLAIM,自变量为 ASG、AGE 和 LOS。在建立模型之前,我们可以 对该模型进行一些猜测,以下是根据经验能想到的一些假设:

  • 随着住院天数的增加,索赔金额增加
  • 随着疾病严重程度的增加,索赔金额增加
  • 随着年龄的增加,索赔金额增加

在建立好模型后,我们会根据模型来验证或推翻这些假设。

用 IBM SPSS Modeler 创建 stream 文件

根据任务要求,我们在 IBM SPSS Modeler 中建立如图 2 所示的 stream 文件。在该 stream 中,InsClaim.dat 作为数据源节点, 它通过一个类型节点(type)进行数据处理后输入到模型节点(CLAIM),在本例中,输出节点(table)作为一个测试节 点,可以用于查看类型节点处理后产生的数据。

图 2. 理赔预测模型 stream 示例图
理赔预测模型 stream 示例图

设置类型(type)节点

从前面的分析可见,CLAIM 是因变量,在类型节点中须作为目标变量(Target),而其余三个字段(ASG、AGE 和 LOS) 则是自变量,在类型节点中须设置为输入变量(Input)。

需要注意的是,在线性回归分析模型中,要求所有变量(包括自变量和因变量)都是连续类型。 如果数据中有非数字类型,比如 Category 或者 Flag,则需要预先转换为数字型。图 3 显示了类型节点设置的具体情况。

图 3. 类型节点设置图
类型节点设置图

模型节点设置

在设置好类型节点后,我们可以双击 CLAIM 节点,对模型节点进行设置。首先设置 Model 标签页中的选项。 从图 4 可以看到设置的具体信息,Model Name 有自动和定制两种类型,在自动方式下,模型名称自动设置 为目标变量的名字(CLAIM)。本模型的输入信息并没有分组,因此 Use partitioned data 和 Build model for each split 的选择与否并无关系。Method 选项将选择输入字段的选择方式,由于本例中的输入字段较少,可以使用默认的 Enter 模式。 在字段较多的情况下,可以选择 StepWise、Forward 和 Backward 中的一种,它们会采用不同的统计学方式对输入字段进行筛选。 Include constant in equation 选项表示模型中是否包含常量(即截距),在本例中,由于每次理赔会有一个起始额度,因此选中该选项。

图 4. 模型节点的 Model 页设置图
模型节点的 Model 页设置图

在 Expert 页中可以设置一些模型的高级选项。在我们选择了专家模式后,可以设置两个选项内容:

  • Missing Values ——当选中该选项,会忽略那些含有 Missing Value 的记录。 (默认选项,通常应该使用这个选项,除非你非常有经验,清楚知道 Missing Value 对该模型的影响)
  • Singularity tolerance ——用来防止相关变量影响模型准确度。 该值越小,表示相似性越高,也就说明排除的可能性越低。有些统计师倾向于把 该值设置的稍大,比如 .05(在本例中是 .0001)

在点击 output 按钮后还可以选择输出的选项,这里不加以详细描述。

运行模型

在模型节点的编辑页面中点击 [Run] 按钮即可运行(也可以关闭设置后通过菜单和工具栏运行), 运行后将产生一个 Nugget,Nugget 是 IBM SPSS Modeler 对生成模型的称呼。双击该 Nugget 即可查看生 成模型的信息。图 5 显示了 stream 中产生的 Nugget 图。

图 5. 运行模型生成的 Nugget
运行模型生成的 Nugget

模型分析结果

双击 Nugget 打开的生成模型信息中,首先查看 Analysis Summary 窗口,这里可以看到模型的分析结果。 我们可以看到该模型的方程已经建立。但是在关注模型方程之前,应该首先看看该生成模型是否是统计学显著的。 从该模型的显著性分析可以看出(见图 6),该模型的显著几率 < 0.0005,可以说非常显著,因此生成的模型具有统计学意义。

图 6. 生成模型的显著性结果
生成模型的显著性结果

让我们回头再看所生成的模型方程(见图 7),可以看出理赔预测模型方程为:

CLAIM(E) = ASG*417.2 - AGE*33.41 + LOS*1105.6 + 3026.8

图 7. 生成模型的模型方程
生成模型的模型方程

模型解释

还记得我们在建模之前提出的假设么?让我们对之一一进行验证:

  • 随着住院天数的增加,索赔金额增加 --- YES
  • 随着疾病严重程度的增加,索赔金额增加 --- YES
  • 随着年龄的增加,索赔金额增加 --- NO!

从模型方程可以看出,索赔的金额随着住院天数和疾病严重程度的增加会相应增加,然而,当年龄增加时, 理赔金额反而会下降。可能的原因是:1)年龄越小,疾病越严重,因此理赔额越高;2)不同年龄段的医疗保 险政策不同,年龄越长的客户保险公司给出的理赔金额越低。当然,具体的真正原因,还要找领域专家确定。

预测因子之间的重要性也不尽相同,在统计学中,该重要性通过图 8 中的 Beta 检验值来确定,具体规则是, 根据 Beta 值的绝对值排序,值越大,越重要。由图 8 中可见,在理赔金额中,最重要的因素是住院天数,而 年龄因素的重要性最低。这也是符合一般的常识的。

图 8. 预测因子重要性及误差区间
预测因子重要性及误差区间

另外一个需要考量的因素是误差区间,该区间决定了应该怎样去预测未来的索赔金额是否合理。在图 8 中的 Unstandardized Coefficients 的 B 和 Std. Error 两列表示了一个预测区间,它的含义是 [B-Std.Error, B+Std.Error] 的区间具有 95% 的可信性。以住院天数(LOS)为例,它的 B 为 1105.646,Std. Error 为 103.6,这意味着如果住院天数每增加一天,那么理赔增加的金额将落在 [1105.646-103.6, 1105.646+103.6] 区间上, 即增加约 1000 到 1200 元之间,其可信性度为 95%。反之,若碰到的客户索赔增加的金额没有落在这个区间之内,那么 这种客户就有较大可能是索赔欺诈,那么工作人员就应该仔细审查。

在做完了这些之后,我们还可以对已有的历史记录进行分析,找出以往数据中的奇异点,以供领域专家进行分析。

找出奇异点

为了找出奇异点,我们可以创建一个 Derive 节点,让它的前向数据源为生成的 Nugget,它要衍生出来的字段名称为 DIFF,其数据值为实际的理赔额和预测的理赔额之差,即:

DIFF = CLAIM - '$E-CLAIM'

具体设置参见图 9。

图 9. Derive 节点设置图
Derive 节点设置图

观察 DIFF 数据,可以找出奇异点的数据,为了方便找出奇异点,可以使用直方图来帮助查找,从图 10 中, 可以看出,实际理赔额处在 5000-7500 之间的数据为明显奇异点,应找领域专家来对这些数据进行具体分析。

图 10. 用直方图帮助查找奇异点
用直方图帮助查找奇异点

结束语

通过本文,您了解了如何通过 IBM SPSS Modeler 创建基于线性回归分析的预测分析模型,并了解到如何设置、 创建、分析、理解和应用模型。这样,您就可以通过 IBM SPSS Modeler 简易的数据流风格方便快速地创建和应用一个模型。

本文中的理赔欺诈预测模型示例,用一个完整的流文件演示了怎样设置数据数据;怎样设置模型参数; 怎样通过 IBM SPSS Modeler 提供的数据分析和理解模型;并介绍了如何分析奇异点。通过此示例,您可以立刻就动手创建自己的模型。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多