众所周知,我们常用“磨刀不误砍柴工”来比喻要办成一件时,不一定要立即着手干活,而是先要进行一些筹划和安排,充分做好准备工作,创造出有利条件,这样不但不会浪费时间,反而会大大提高整体的办事效率。这个道理在我们做数据分析时也是适用的。在当今信息技术高度发达的社会很多企业往往不愁没有数据,但是唾手可得的数据却不一定可以直接拿来分析,生搬硬套的分析往往失之毫厘谬以千里。西方人所说的“Rubbish in, rubbish out.”反映的也是同样的现象。
总之,没有高质量的数据,就不能保证有高质量的数据分析结果。对与统计质量管理而言,如果被分析的数据本身不可靠,很可能就会得到错误的分析结果和无效的质量改进方案,不仅会使质量改进工作无功而返,而且还极有可能伤害原有的质量管理水平。如果把数据分析看作砍柴的话,那么磨刀指的就是数据准备了。越来越多的专业人士已经开始意识到数据准备的重要性,现在的问题已经不是数据准备要不要做,而是数据准备应当如何做。
那么,数据准备究竟应当如何做呢?总的来说,可以遵循如图一所示的五步循环法来进行。接下来,我们将逐一解释每个步骤的含义,具体的实例将借助高端统计质量管理及六西格玛软件JMP来实现。
第一步,获取数据。
数据是进行分析工作的原材料,获取数据是数据准备工作的第一步。一般来说,企业常用的数据来源可以有四类。以JMP为例,一是通过手工输入和创建原创数据文件,这往往在新建数据文件时采用。二是从外部读取,比如读取Excel、MS Access、dBase、Text、SAS以及其他一些格式的现有数据源,这也是一种常见的方式。三是从大型数据库获取,如JMP可以通过ODBC访问现有的大型数据库文件,如Oracle、DB2、Sybase、SQL Server等等,必要时还能调用SQL命令构建查询条件,这在信息化建设比较成熟的企业中应用较多(参见图二)。四则是直接访问含有数据表格的互联网主页来获取数据。
第二步,整合数据。
有时候,需要分析的数据保存在不同的数据文件中。例如:我们在需要分析今年第三季度的生产数据时,很有可能会发现七月、八月和九月的生产数据分别保存在三个不同的文件中;或者需要对产品的两个质量特性进行关联性分析时,却发现这两个质量特性分别保存在两个不同的文件中。这时候,我们就有需要做数据整合了。数据整合的方法很多,如连接、合并、堆叠等等。从操作对象上看有行与行的连接(JMP软件中称为合并Concatenate),列与列的连接(JMP软件中称为连接(Join))等。刚才说的第一种情况就适合用“合并(Concatenate)”整合数据(参见图三),第二种情况则适合用“连接(Join)”来整合数据。
第三步,清洗数据。
如同烧菜之前常常要洗菜一样,分析数据之前常常也要对数据进行必要的清洗。根据数据类型的不同,常用的数据清洗方式可以有两种。第一种适用于字符型数据(在JMP中称为列表检查(List Check))。例如当列变量是“性别”时,列表中的选项可以设定为“男”、“女”,让软件自动检查“性别”列中的所有行记录,任何不符合这些设定的内容均会被剔除。第二种叫范围检查(Range Check),适用于数值型数据。例如当列变量是“身高”时,范围可设定为“100<=身高<=200”(参见图四),让软件自动检查“身高”列中的所有行记录,任何超出这些设定的内容也均会被剔除。
第四步,定义数据。
定义数据是指为了以后的分析工作方便准确,同时预防一些不必要的操作错误而在分析数据之前对数据进行的一系列设置,这是一个内容非常丰富的工作,包括定义建模类型(如连续型(Continuous)、保序型(Ordinal)、记名型(Nominal)),数据格式(如固定小数位型、百分位型、货币型、日期型、时间型等),初始数据值(如随机数、序列数据、缺失值等)以及更多的列性质(如编写公式、增加注释、更改值排序、自定义值颜色等)等等(参见图五)。
第五步,探索数据。
探索数据实际上是分析数据中最基本但很有效的一种形式,它不强调分析过程的精确性,但强调简单快捷、通俗易懂、数据发现效率高,快速形成对数据的直观认识,主要可以通过汇总制表和可视化方式来实现。汇总制表是指根据分层变量分层后计算各子集数据的均值、标准差、总和、合计百分比和变异系数等统计量,并以直观的方式显示(参见图六)。可视化是指从简单的柱状图、饼图、折线图等到专业的动态多维图形(如JMP的动态泡泡图)、三维散点图、交互式数据探索工具(如JMP的图形生成器)等多种有效方法。JMP软件是进行探索性数据分析(EDA)的理想载体,它的交互性和可视化特征可以让探索数据的过程变得非常生动,帮助更直观地从数据中获取有价值的发现。
当然,以上的五个步骤并不是每一次数据准备都必须做的,但却是代表性很强一个过程。我们可以灵活掌握它的核心思想,在实际工作中根据已有数据的现状,选择合适的步骤和实现手法,以起到“事半功倍”的效果,为随后的数据分析以及基于分析结果的决策打下成功的基础。