数据预测统计分析产品 IBM SPSS Statistics 实例应用讲解
BM SPSS Statistics 是目前世界上主流的数据预测统计分析软件之一,本文从 IBM SPSS Statistics 的基本概念入手,对其在数据分析流程中的各个应用进行了简单介绍,通过针对一个实际问题的分析,并结合典型算法,介绍使用 IBM SPSS Statistics 进行数据分析的基本流程。读者可以在较短时间内了解如何使用 IBM SPSS Statistics 进行建模及数据预测分析。
IBM SPSS Statistics 简介及基本概念介绍
SPSS Statistics 统计分析预测软件是一款在调查统计行业,市场研究,医学统计,政府和企业的数据分析应用中久享盛名的统计分析工具,是世界上最早的统计分析软件,全球约有 28 万家产品用户,他们分布于通讯,医疗,银行,证券,保险,制造,商业,市场研究,科研教育等多个领域和行业,是目前世界上应用最广泛的专业数据预测统计分析软件。在 2009 年 IBM 收购 SPSS 公司之后,IBM SPSS Statistics 成为 IBM 商业智能分析优化解决方案的重要组成部分,最新的发布版本是 19.0 多国语言版。
基本概念
典型的 IBM SPSS Statistics 数据编辑器界面如下:
图 1 IBM SPSS Statistics 数据编辑器界面
变量视图:变量视图用于管理变量的属性,包括变量名称,类型,标签,缺失值,度量标准等 10 个属性。
数据视图:数据视图用于管理录入的数据,一行表示一条记录在不同变量下的值,一列表示相同的变量在不同记录中的值。
图 2 变量类型定义界面
变量类型:IBM SPSS Statistics 主要包括 3 种类型,分别是:数值型,字符型和日期型,根据不同的显示方式,数值型又被细分为 6 种,为了便于统计计算,通常尽可能将变量类型定义为数值型的。
度量标准:在 IBM SPSS Statistics 中,按照对事物描述的精确程度,可以将变量分为 3 种度量标准,度量(Scale),名义(Nominal),序号(Ordinal),因为不同的变量度量标准适用不同的统计模型,因此正确定义一个变量的度量标准很重要。
度量(Scale)变量:通常也称为连续变量,表示变量的值通常是连续的,无界限的,如员工收入,企业销售额等。
名义(Nominal)变量:通常也称为无序分类变量,表示变量的值是离散的,相对有限个数的,通常变量值的个数不超过 10 个,但值之间没有顺序关系的,如性别。
序号(Ordinal)变量:通常也称为有序分类变量,表示变量的值是离散的,相对有限个数的,但值之间是有顺序关系的,如教育水平取值有:1 — 8 年,2 — 10 年,3 — 15 年,这些值之间存在顺序大小关系。
图 3 变量值标签定义界面
变量值标签:在 IBM SPSS Statistics 中,可以对分类变量进一步说明每一个值的具体意义或者标签值,然后在数据视图中,可以通过菜单:视图 -> 值标签,来切换显示变量的值,或者值的具体标签意义。
图 4 缺失值定义界面
缺失值:在一个大型调查中,可能有一些选项为不知道或者拒答,这就需要把这个值定义为缺失值,或者一些数据录入时发生丢失,就默认定义为系统缺失值。
任何一个数据分析预测项目,按照整个分析过程的结构来看,都可以大致分解成 7 个阶段:计划阶段,数据收集,数据获取,数据准备,数据分析,结果报告,和模型发布预测阶段。
计划阶段
在该阶段需要弄清楚以下几个问题,以减少盲目的分析避免资源浪费:
1.确定研究问题
2.建立项目预算
3.确定研究范围及确定研究总体和个体
4.确定样本的抽取方法
5.分析评估所需样本量
6.确定数据的收集方式
7.确定与研究问题相关的数据
8.确定研究问题的分析方法和分析工具
数据收集阶段
如果已有现成数据则可以不必再进行数据收集,数据收集的方式有很多种,可以是电话访问,可以是面谈收集,也可以是拦截式访问,如果是从头进行数据收集,需要有一份标准的问卷,问题设计不仅要相关,还要能够从中得出有意义的结论。
数据获取阶段
该阶段的目的是将分散的,原始格式不同的数据读入分析工具中,使分析工具可以对数据进行分析。
数据准备阶段
该阶段的主要任务是:
1.清理数据以保证数据的准确性
2.对数据进行必要的转换,如生成新变量,将连续变量离散化,将字符变量数值化等
3.填充缺失数据
4.对数据进行合并,汇总等
数据分析阶段
利用各种数据分析方法对数据进行分析,得出结论,该阶段又可分为:
1.预分析:包括概括性统计描述和探索性统计描述推断两部分,前者是使用统计图和统计表对数据进行更好的理解,而后者则基于对数据的理解开始尝试进行分析,以寻找最终分析模型的雏形。
2.精确分析:基于上一步得到的各种信息,开始尝试拟合最佳的统计模型,以寻求对数据中所蕴含信息的最合理解释。
结果报告阶段
结果报告的目的是将整个数据分析项目的结果以图,表,文字的形式表达出来,使得决策者能够快速理解,基于此分析结果做出决策。
模型发布预测阶段
结果报告仅仅是对基于历史数据所建立的模型加以阐述,当需要利用该模型进行预测时,具体做法可以是在分析软件中加以预测,也可以将生成的模型编译成单独的模块,整合到应用平台中。
IBM SPSS 系列产品线对数据分析流程的支持
IBM SPSS 系列产品线对数据分析的各个阶段均有相应的产品支持,例如在计划阶段可以用 IBM SPSS Statistics 中的 Complex Sample 模块设定样本抽取计划;在数据收集阶段可以用 IBM SPSS Data Collection 产品来进行调查问卷设计和数据收集;在数据获取阶段,IBM SPSS Statistics 可以通过 ODBC 读写绝大多数业界常用的数据库,或者使用文件合并,文件重构等操作对数据进行整合;在数据准备阶段可以用 IBM SPSS Statistics 中的 Statistics Base,Missing Values,Prepare Data for Model 等模块来进行必要的整理和修补;数据分析阶段是 IBM SPSS Statistics 的核心功能,包含很多业界通用和最新的统计模型;而 IBM SPSS Statistics 同样提供清晰明了的统计图,统计表来很好的支持结果报告阶段的需求;在模型发布预测阶段,IBM SPSS Statistics 的评分向导功能提供了用已知模型进行预测的功能。总之,以上提到的各个阶段均可以在 IBM SPSS 系列产品线中获得支持,而 IBM SPSS Statistics 作为一个核心平台,在整个数据分析,解决方案实施中起着关键作用。
IBM SPSS Statistics 实例应用分析
在大多数分析过程中,可能不会经历所有数据分析的流程,例如,根据分析的目的,所需数据已经存在于日常工作中,则不必再经历数据收集和计划阶段,而直接进入数据获取阶段。本节针对一个实际问题的分析,并结合典型线性模型算法,介绍使用 IBM SPSS Statistics 进行数据分析的基本过程。
问题描述
某虚拟公司的人力资源部门中有以 Excel 表存储的员工信息,包括员工代码,性别,出生日期,教育水平(以年计),雇佣类别,当前薪金,起始薪金,雇佣时间,经验(以月计),是否少数民族等信息,如图 5 所示。
图 5 Employee Data.xls 概要信息
现在公司希望通过已有数据来分析员工当前薪金与其他变量之间的关系,并建立一个预测模型,从而能够通过其他变量来预测员工当前薪金,可以用于公司人员成本估计和控制,以及新员工薪资定位等问题。
数据获取
IBM SPSS Statistics 支持两种方式读取 Excel 文件,一种是直接选择菜单:文件 -> 打开 -> 数据,在文件类型中选择 Excel,打开文件,如图 6,因为 Excel 第一行是变量名,因此勾选“从第一行数据读取变量名”的选项,然后单击确定即可读入数据。
图 6 打开 Excel 数据
另外一种方式是选择菜单:文件 -> 打开数据库 -> 新建查询,通过 ODBC 的方式打开 Excel 文件,这种方式可以更灵活的选择导入数据的变量个数及数据记录个数,并且可以支持多个数据表之间的关联导入,详细操作可以参考 IBM SPSS Statistics 联机帮助。
数据准备
IBM SPSS Statistics 在读入 Excel 数据时,会自动根据变量值的个数和特点将变量定义为度量(Scale)变量,或者名义(Nominal)变量,但是变量值标签,缺失值等信息不会自动设置,但提供了非常方便的用户界面来设置变量属性,选择菜单:数据 -> 定义变量属性,如图 7 可以选择需要定义变量属性的变量,可以一次定义多个变量。在这个页面,我们用自动生成变量值的标签来生成性别和教育水平的值标签;手动设置雇佣类别中的值标签为,0= 缺失值,1= 普通职员,2= 高级职员,3= 经理,并勾选上 0 作为缺失值;因为教育水平和雇佣类别是有等级大小之分的,所以可以将这两个变量定义为序号(Ordinal)变量,单击确定完成操作。
图 7 定义变量属性选择页面
字符串变量通常不易于计算,而且很多模型需要变量用数字变量来计算,因此 IBM SPSS Statistics 提供了自动将字符串变量转换成数字变量的功能,选择转换菜单下的自动重新编码功能如图 8,选择“性别”作为需要转换的字符串变量,在新名称中输入 Gender,单击确定执行后,将会产生一个新的数值型变量 Gender,其值为 0 和 1,相对应的值标签为原来的字符串值,这样后续就可以用这个新变量来进行数值运算。
图 8 自动重新编码功能页面
数据预分析
经过数据准备阶段,就可以对数据进行必要的预分析,以便决定用什么样的模型更为合适,IBM SPSS Statistics 的图形菜单下提供了多种图形显示方式。一般来说针对连续变量,可以先使用散点图来观察预测变量与其他连续型变量的关系,选择菜单:图形 -> 图形画板模板选择程序,这个功能能够根据变量之间的特点自动为用户推荐一些适用的模型,现将连续型变量:当前薪金,起始薪金,雇佣时间,经验一起选上之后,可以看到只有两种图形适合描述这些变量之间的关系,选择散点图矩阵来进行描述这些变量的关系。
图 9 图形画板模板选择程序页面
通过图 10 可以看出,当前薪金与起始薪金的数值关系大概分布在一条 45 度的斜线上,当前薪金与雇佣时间的数值关系主要分布在一条水平直线上,同时当前薪金的数值分布大概服从半正态分布的图形,因此可以推断用线性模型作为预测模型。
图 10 连续型变量之间的散点矩阵图
应用自动化线性建模进行精确分析
一般用户经常会被统计分析软件中的复杂的参数设置而头疼,即使知道了选择合适的模型,也不知道该如何调整参数来进行使用,针对于此,IBM SPSS Statistics 19 加入了一个新的功能:自动化线性建模,这是对最经常使用的线性模型加以改进,让用户输入最少的参数而自动进行建立线性模型的功能,选择菜单:分析 -> 回归 -> 自动线性建模,在目标栏中设置当前薪金变量作为模型的目标预测变量,如果对剩余变量不能确定哪些变量与当前薪金变量有关系,可以全部选为输入预测变量,自动化线性建模会自动选择合适的预测变量来作为线性模型的输入变量,如图 11,单击运行按钮来产生线性模型。
图 11 自动线性建模设置页面
结果报告分析
在 IBM SPSS Statistics 的输出查看器中,双击产生的线性模型就可以打开一个模型浏览器来具体观察分析这个线性模型的情况。从图 12 模型概要页中可以看出,产生的线性模型的预测准确度达到了 80.3%,说明这个模型的预测准确度还是比较高的。
图 12 自动线性模型浏览器模型概要
在如图 13 的预测变量重要性页面中可以看到,起始薪金与当前薪金的关系最为密切,重要性也最高,接下来重要的是雇佣类别,而最不重要的是出生日期,可以看出,这与人们的一般经验也是相符合的。
图 13 自动线性模型预测变量重要性
残差是指预测出来的值与实际值之间的差距,在图 14 中描述的残差页面,可以看到,该预测模型的残差直方图比较好的接近与正态分布曲线图,而线性模型的残差就是基于正态分布模型的假设,通过此页面也可以看出前面在离散图进行预分析得出的结论是正确的,可以用线性模型较好的来进行当前薪金的预测。
图 14 自动线性模型的残差比较图
模型预测应用
通过之前的步骤已经产生了一个线性模型来预测当前薪金的值,如果需要将这个模型保存出来以便对今后的数据进行预测应用,可以在模型浏览器中,选择:文件 -> 导出 PMML,将该模型导出为一个名为:预测当前薪金的线性模型 .zip 的文件,如果解压该文件可以看到一个 xml 文件,该文件是符合 PMML 全称预测模型标记语言(Predictive Model Markup Language)规范的,可以将它用于任何支持 PMML 模型的程序当中。
在 IBM SPSS Statistics 当中,同样提供了模型预测应用的功能,选择菜单:实用程序 -> 评分向导,如图 15,选择刚才导出的“预测当前薪金的线性模型 .zip”文件作为评分模型,在模型详细信息中可以看到模型的一些基本信息,包括产生的应用程序,目标变量,预测输入变量,模型类型等,单击下一步按钮,进入模型变量匹配页面。
图 15 评分向导起始页面
当变量名相同时,IBM SPSS Statistics 会自动匹配模型中用到的预测输入变量和当前数据集中已有的变量,如图 16,如果需要改变数据集中的字段可以在这里进行设置,通常一个模型是适用于特定数据集的,因此最好使用数据集中相同的字段作为模型应用的变量。单击下一步,进入评分函数选择页面。
图 16 评分向导模型字段匹配到数据集页面
因为线性模型只有预测值函数可以选择,因此这里只有一个选项如图 17,对于其他模型,如最近邻元素分类模型,神经网络模型等会有多个函数可供选择,单击完成。
图 17 评分向导函数选择页面
如图 18,在结果数据集中会产生一个新的变量 PredictedValue,这个变量的值就是应用之前产生的线性模型在已有数据集后产生的预测当前薪金的结果变量,该公司今后可以根据该模型和方法来进行人员成本估计和控制,以及新员工薪资定位等问题。
图 18 模型预测应用结果数据集
小结
本文从 IBM SPSS Statistics 的基本概念开始入手,通过实例应用分析,结合自动线性建模的应用,将 IBM SPSS Statistics 用于数据预测统计分析的基本流程做了简单介绍,实际当中每个步骤可能不会全部使用,也可能会有各个阶段交叉进行,比如在第一次得到模型后,根据模型信息,可以重新进行数据准备,调整参数后建模,或者选择其他模型,从而选择到最适合用户应用场景的模型。本文所展示的只是 IBM SPSS Statistics 很基础的一部分使用。随着用户使用的加深,将会了解到 IBM SPSS Statistics 更为强大的功能,如 ADP(自动数据准备),GLMM(广义线性混合模型),神经网络模型等等。