原文地址:http://blog.kantli.com/theme/5
这一系列的文章,是小团队内的实务讨论稿,放出来以便有更多的交流与讨论。其中多是作为一个非专业人员的实际工作体会,必然存在许多错误或不当之处,请多指教!
一、问题
管理学上有句名言:如果你不能解决问题,说明你就是问题。
这两年数据分析的概念很流行,主要的原因,是前几年信息技术的快速发展,各种手机电脑之类的电子终端的普及使用,积累了不少数据,或者说,让数据采集的工作变得很简单了。
然而并没有什么用,目前来说,真正在数据分析方面应用得当,获得实质好处的,可能也就是一些大公司,而让数据分析深入普及,进入我们生活工作的方方面面细节之中,并且发挥作用,解决问题,才是我们的目标。
仓库现场的信息化程度正在快速发展,事实上可能已经有一个比较好的基础了,那么就有很多人说要多做数据分析,好像把一堆数据做成花花绿绿的图表,贴到PPT上,整个现场就变得高大上了。
我们天天待现场的人,对这种为数据而分析的思维,是难以认同的,最基本的原则就是,如果数据分析不能帮助现场解决问题,那么这个动作本身就是问题。
为数据而分析,本质上是为上级要求而分析,弄出花花绿绿的图表来,主要是为了应付领导交代的任务。
事实上数据分析对于解决现场的问题是有用的,有用的前提就是数据分析要根据现场的实际情况来,要跟着具体的操作流程走,要验证或者修正现场人员的直觉经验。
二、逻辑
之前我们说,数据是对事实的抽象,今天我们讨论数据分析,第一个要提醒的还是这个。
我们看到的每一个数据,都应该能表达成对事实的描述、推测或判断。
给出一个数据,就需要明白这个数据所代表的是什么意思。当我们开始追问每一个数据代表的具体意思的时候,就能轻易地看到很多数据指标的荒谬,也能快速地找到自己所需要的数据指标和分析逻辑,而这是进行现场数据分析的基础。
以我们讨论过的例子来说:代表库存压力的是什么数据?一般来说是库存数据。那么:
- 是期初库存、期末库存、最小库存、最大库存、还是平均库存?是一个月内的平均库存还是连续三天的平均库存?
- 统计库存的口径,是按SKU数、件数、重量还是体积?
如果我们不去思考每一个数据、每一种统计口径背后所代表的具体意思,和现场操作的基本关系,是回答不了这个问题的。
没有回答这个问题,最后统计出来一个所谓的结果,就不会有什么意义,很多时候和现场的直觉经验也完全不符,这样的数据分析,本身就是一个问题。
所以我们的主张是,现场数据分析应该由现场的人来做,没有丰富现场经验的人,甚至根本没去过现场的人,是不太容易做好的,可能辛辛苦苦做出来一个高度复杂的数据模型,得出一个振奋人心的结论,结果被现场的人一句简简单单的提醒击碎梦想。
那么反过来说,也就是现场操作人员有必要掌握基本的数据分析逻辑。
现场问题从开始到结束的的过程,大概可以分为四个步骤:发现问题、追溯问题、提出方案、检查结果。发现问题的前提是对现状的准确描述,追溯问题的过程也就是对某个现象的逆推分析,提出方案的基础是对未来的情况做出推断,检查结果也就是描述某种特定情况的变化。
数据分析的基本思路,也就是从这里出发的:
- 其一是数据描述,也就是查看现场流程,或者某个特定对象的具体情况,从而发现异常或者追踪结果;
- 其二是数据追溯,也就是发现一个值得关注的情况之后,去追查背后的线索关联,分析原因由来;
- 其三是数据推断,也就是预计某种情况的未来走向,推测某种方案实施后的影响;
三、数据描述——层层分解
数据描述有两个基本问题,首先是描述什么,其次是如何描述。相对来说,如何描述主要是一个技术问题,而描述什么则是问题的核心。
就数据的描述性分析而言,肯定不是从一堆繁杂的数据开始的——在真正开始采集数据或接触数据之前,我们要做的,是安安静静地坐下来,仔细地分析现场的流程结构,从而梳理出自己所需要描述的对象到底是什么。
这个分析梳理的过程,一般称为现象或问题的分解。分解的主要目的,是把大的流程分成一个个小节点,把大的问题分成一个个小枝节,一方面可以避免我们忽略事物内部的细节逻辑,另一方面也方便我们找到更为准确,更贴合实际的数据指标。
以对仓库的流程分析为例,我们的基本目标,是判断一定期间内,现场的操作流程是否运行顺畅,有没有什么值得关注的情况变化。
这个目标是比较笼统的,该用什么数据进行描述,怎样描述才能符合现场的实际情况呢?不好说。
有人认为可以用出入库操作量来表达,但操作量本身和是否顺畅关系不大;有人认为可以用操作团队的加班时间来看,也是一样的问题;或者有人说可以从操作异常情况来看,那么操作异常是什么?它是不是完整反映了整个流程的执行?异常的由来都是哪些地方?
因此,我们有必要把操作流程进行分解,可能得到入库流程、存储流程、加工流程、出库流程几个部分,为了了解这些流程部分,又有必要进行二次分解:
就入库流程来说,需要关注入库单证操作、卸货操作、暂存操作、入库操作分别运行得怎么样。就每一种操作而言,我们又关心它们的数量变化情况如何?结构上是不是有什么变动?整件的货物多了还是散装的货物多了?是哪种类别的货物增加了或减少了?有没有操作失误?这些操作失误主要是哪些原因造成的?
就存储流程来说,也可能分解为几个小的部分。比如说整件货物或散件货物的分别存储情况,或者托盘库区、重型货架库区、轻型货架库区的存储情况。针对每个小的部分,我们又提出更小的关注点,比如说库区环境的维护情况、库存空间的利用情况等等。
就加工流程来说,可能按照不同货品或不同加工动作进行分解,分别关注这些加工流程的操作效率情况、加工过程的产出率、耗材使用情况等。
就出库流程来说,大概要分成订单处理、拣货操作、打包操作、出库暂存、装车交接、配送过程、签收交接、单证管理等部分。而对每一个部分,我们可能再进行进一步的分解,或者分别提出有针对性的细节问题。
层层分解下来,我们的问题已经从一个变成了几十个,但对原始问题的内部结构和逻辑关系有了更具体的理解,并且这几十个问题,每一个都比最开始的那个更为简单,更为直接,更容易找到可用的数据进行回答。
有时甚至可以说,不经过这样一个层层分解的过程,是很难说我们已经清楚自己所需要描述的对象的。
比如我们说,我们想通过数据分析来了解仓库,那么仓库是什么?是一座房子?是库区的货架和操作工具?是里面存储的各种货物?是每天忙忙碌碌的操作团队?还是一套标准操作流程?
只有对我们要描述的对象进行分解之后,我们才能明确地回答,或者说有意地限定这个对象的范围和含义。至于如何分解,分解到哪一步,则完全取决于现场的流程设计,分析者的主要目标和数据采集的便利性。
四、基本描述统计概念
当我们对数据描述的对象有了一个层次分明、逻辑清楚的结构化理解之后,就可以逐步开始接触数据了。大多数情况下,我们对现场数据的描述性分析,只需要用到描述性统计里面的基础概念,事实上多半都是小学或初中数学课本上的知识。
一方面是因为我们对现场的具体情况有比较切实的认知,太过深入的数据抽象不一定容易结合现场情况进行理解,另一方面是仓库现场的总体流程模式比较简单,一些基础的概念就可以满足大多数的描述需求。
这些基本的描述统计概念主要包括几类:
- 一类是描述数据峰值的,也就是最大值和最小值。
对于现场操作,有些数据是需要参考峰值的。
一个例子是库存压力,比如说一些季节性货物仓库,库存量在一年内的起伏很大,真正有库存压力的时候是货物大规模存储的时候。我们分析这样的仓库,按平均值的指标或者某个特定时候的指标都没有什么意义,按平均库存量准备库存空间的结果,就是在库存量逐步接近最大值的过程中一步步崩溃。
对于非季节性仓库来说,库存压力的大小也需要参考库存最大值。当然,在实际操作中,如果只是大规模库存的短期存放,比如说只需要存储一天甚至一个晚上,一般不会对库存空间造成非常大的压力,因为可以临时占用现场的暂存或过道空间,要是临时存放的时间超过了某个临界点,就可能对现场操作造成比较大的麻烦。
因此,一个很实用的指标是连续三天库存均值,比如说一个月内的平均库存并不高,但某个连续三天的平均库存很高,就说明这三天的库存空间可能是压力很大的,值得我们的重点关注。
类似的例子是操作量数据,只看平均数据也不一定意义很大,一些操作量暴增或暴减的情况需要被识别出来并重点关注。
操作量数据和库存数据不一样的地方在于,它没有临界点的概念,很大的操作量在短时间内的集中一般都会对现场造成比较大的影响,也是我们极力避免的。但操作量的集中也可能可以通过比较灵活的方式进行解决,比如说预操作,也就是提前做好操作准备或者提前完成一部分操作动作。
在实际分析的时候,我们关注的峰值都是一段时间内的峰值,而不一定是总体的最大最小值。比如一个月内可能有一个操作量最大值,但一周内,一天内也有峰值的出现。许多情况下,峰值一般也就意味着某种不稳定因素的存在,意味着未来成为某种瓶颈的可能,因此是需要重点关注,必要的时候甚至要提出一些调节措施或备用方案。
最小值的应用相对比较少,一般应用于资源的临时调整上。比如说连续一段期间内,操作量都在某个阀值以下,就可能可以腾出部分操作资源做一些其它工作。
- 一类是描述数据中间值的,包括平均值、加权平均值、众数、中位数、分位数等概念。
- 平均值的使用比较普遍。一方面,有些数据差异是没有意义的,通过平均值可以直接得到一个基本的代表性数字,不用再关注个别数据的差异,当我们提供平均值的时候,也可以让别人迅速地得到对某个事物的整体印象。
不论是库存量还是操作量,当我们觉得没有必要进行更细化的分析的时候,可能就直接使用一个平均值作为代表,这种思路虽然有时比较危险,但多数时候都可以很省事。
另一方面,平均值也是个别数据在整体中位置的有效参照,一个人每天操作10个订单,并不能说明他操作得是快还是慢,如果我们知道团队的平均操作量是5个订单,可能就有一个基本判断了。
加权平均值的使用和平均值是一样的,只是在具体操作上有些不同。例如绩效考核方式,一般是将一个人在不同方面的表现分配不同权重,最后得到一个加权平均值的,对库区的考核也有可能采用加权平均的方式,以便把不同方面的结果转化为一个综合性的代表数据。
- 众数是指一组数据中出现次数最多的值,实际中用得不算多,但众数的思想却无时无处不在。众数的方便之处在于容易得到,一般不受特殊情况的影响,并且可用于非数值型数据。
比如说,我们统计仓库破损情况,可能涉及比较多个SKU,但比较集中的就是那么一两个,常见的表达方法是说,仓库现场80%的破损都发生于某个特定的SKU,这个SKU就是发生破损的SKU中的众数,值得我们的特别关注。
当我们对事物进行分类研究,判断需要重点关注的类别时,使用的也是众数的基本思想,比方说,我们判断库存货物中哪类物品最容易出现数量差异,这个最容易出现差异的物品类别,本质上也是众数的意思。
- 中位数和分位数其实是一个概念,中位数的意思就是二分位数。
分位的意思,就是说这个数据所处的位置,正好可以把这组数据分为不同的比例。比如说一共10个数字按顺序排列,第五和第六个数字的平均数就是二分位数(中位数),从这个数据往上下两边看,上面有一半,下面有一半,真正的比上不足比下有余。
在对比现场操作量的时候,我们也经常使用到分位数的概念。
比如说,一个月30天,其中有20天的操作量都在某个数值以上,这个数值,其实就是三分位数,把一个月的操作量数据做三等分,就可以得到两个三分位数,一个代表三分之一,一个代表三分之二。
或者我们在对比团队操作量的时候,我们说,80%的成员操作量都在某个数值以上,某个数值以下,也是一种分位数的概念。不论是四分位、五分位、百分位、千分位,我们在实际使用的时候可能没注意到,但其实基本思想是一致的。
分位数的使用,一般是让我们对事物的结构有一个相对具体的整体印象,比只用平均数要清楚一些。分位数的使用在许多情况下也能描述数据集中度的情况。
- 一类是描述数据离散程度的,常见的有极差、平均差、标准差等。
数据的离散程度有时候很重要。比方说,同样是拣货操作,一个人平均每天操作20个订单,一个人平均每天操作10个订单,排除订单本身不一致的情况,这个差异就有点大了,现场就有必要跟踪这两个人的具体操作,看看到底是什么原因导致了这个差异。
- 一组数据,最大值减去最小值,就是极差,一般情况下,极差越大,数据的离散程度就越大,意思也就是差异越大。
极差反映的是数据中的最大差异,有时候不一定适用,可能存粹是因为有个人天赋异禀导致的。
- 平均差的意思,是算出一组数据的平均数,让每个数据都和平均数对比差异,再得出一个平均差异值。平均差反映的是一组数据的整体差异程度,就拣货操作的例子来说,可以部分消除个别人天赋异禀带来的影响,而得到一个基本的结论。
平均差的使用,一般要和平均值一起,同样是差异10个订单,如果平均值是20个订单,这个差异就达到50%,大多数时候简直无法接受,而如果平均值是100个订单,差异就只有10%,相对是比较正常的。
标准差和平均差所代表的意思是一样的,只是出于计算的方便,进行了一些计算过程的处理。对于现场的一些简单数据,可能平均差用起来还要直观一些。
五、常见对比与图表
通过以上这些基本的描述统计概念,我们可以寻找一组数据可能存在的内部规律,形成基本印象。而就一组数据来说,通常内部观察是远远不够的,只有在外部对比的过程中,我们才能更准确地理解这些数据所代表的意义。
事实上,我们在进行简单的描述分析之后,为了理解或者更准确地表达这些数据所代表的意义,往往都要采用图表的方法。图表的好处,就在于方便对比,突出差异,可以给人以最直观的感受和冲击。
就具体的对比来说,我们常用的有结构性对比、时序对比、同类对比、基准对比等形式。
- 结构对比查看的是事物内部的组成结构。
- 我们查看库存量组成,可能常温货物占一半,冷藏货物占四分之一,冷冻货物占四分之一,就是一种结构;
- 我们分析订单,可能60%的订单在11点到13店间下达,上午占20%,下午占20%,也是一种结构;
- 我们梳理操作量,可能50%的操作量在出库动作,30%在入库操作,20%在库内其它操作,也是一种结构。
结构影响到现场操作资源的分配,因此是我们特别注重的内容。体现结构比较合适的图表是饼图,大家应该很熟悉。
- 时序对比查看的是事物的演变过程。
库存量的变化,操作量的变化等都属于时序上的变化。通过时序对比,我们可以看到它们整体的演变趋势或者有规律的起伏波动。
一些数据在时序上的变化是现场情况有新变动的信号,古人说要见微知著,我们的目标,就是在过往数据的小变动中发现未来更大变动的可能,找到变动发生的主导因素,削弱它或者增强它,从而让现场情况往更为理想的方向发展。
发现了变动,却不去追查这些变动发生的原因,或者抛开数据而根据自己的直觉做一个简单判断,都是不严谨,有时候甚至是不负责任的做法。时序对比中最为常用的是折线图。
- 同类对比查看的是事物之间的差异。
时序对比本质上也是同类对比的一种,只是有明确的时间次序,在应用上也有不同的侧重。我们查看同一个团队中不同个体的操作情况,就是同类对比;查看不同库区的存储情况和维护情况,也是同类对比。
同类对比的要点在于同类的定义,如果所谓的同类面对的具体条件非常不一致,我们把数据放在一起进行对比,就会有问题,这种不伦不类的对比容易得出一些不符合现实情况的结论。
因此,我们必须非常清楚,两个数据可以进行同类对比,一般是从某种程度或者某个特定角度来说的,超出这个程度或者角度的限定,就要谨慎一些了。同类对比往往使用柱状图或条形图来表现,使不同数据间的差异可以一目了然。
- 基准对比的目的是查看一个数据是否达到了某个确定指标。
不论是客户设定的及格线,还是现场按平均值等方式设定的操作要求,都是一种确定的指标,最终的结果数据是否达到这个指标,影响着我们对这个结果的评价,或者关系着我们之后需要采取的措施。
另一个基准指标的例子,是现场的一些操作阀值。比如说,如果连续三天平均库存量达到某个数值,就要考虑扩大仓库面积或者启用外租仓库等。基准对比在实践中还是比较常见的,我们一般使用柱形图或折线图来表示。
除了饼图、线图、条形图等基础图表,我们也经常会看到雷达图、散点图等,这些年数据展示技术越来越成熟,面积图、热力图也被越来越熟练地使用,不论如何,其进行对比的基本思路是一致的。
就我们上面没有说到的图表中,直方图是值得另外讨论的。
直方图本质上是对数据的集中度进行对比,查看数据在哪一个区间分布得最为密集。数据集中度和离散程度有比较密切的联系,但本质上还是两个概念,离散程度表示数据间的差异,我们之前已经提到过,而集中度的基本思想,则更接近于众数。
还以拣货操作为例,团队有10个人, 平均每人操作20个订单,其中5个人的操作量都在25到30个订单,另外5个人都在10到15个订单,数据离散程度其实是比较高的,但集中度也很高。通过直方图,我们可以很直观地看到这些数据在不同区间内的分布。
以上就是我们对数据分析中一些常用概念和思想方法的讨论,主要回答的是如何描述的问题。这些基本概念和方法的具体应用,则在分析者自己的掌握之中,很难说有什么标准的答案或必须要遵守的规则,并且更为纯熟的使用和更为深入的理解也只能来源于数据分析的具体实践。
六、 数据追溯
从数学概念和思想方法的使用上说,数据追溯与数据描述是基本一致的,但从现场实践上说,它们的过程恰恰相反。
数据描述是从事实出发,跟着流程一步一步往前走,目标是把事实描述清楚,发现其中一些值得注意的情况;数据追溯则是从问题出发,就已经注意到的情况,一步一步往回推,目标是把问题的具体情况和发生缘由整理出来,从而判断接下来所需要采取的措施。
数据追溯的第一步当然也是问题的分解。
比如说,我们看到这个月的库存量大规模上涨,第一反应可能不是打电话给客户咨询原因,而是要搞清楚库存上涨的具体情形:
- 首先,到底是哪一类库存在上涨,是整体的上涨还是个别种类的上涨,或者只是个别SKU的大规模库存变动导致的,这是结构上的分解;
- 找到具体的上涨品类以后,我们可能需要在时序上进行分解,是什么时候开始出现上涨的趋势的?到目前为止上涨的数量是多少?
- 之后,我们又可以在流程上进行分解,看看这些库存上涨的主要原因是入库量的增加还是出库量的减少;
又比如说,一定期间内的操作异常集中出现,已经超出了正常范围,我们进行追查的第一步也是对这个现象进行分解:
- 一个是结构上的分解:
- 可能是货物类别上的结构,我们查看这些操作异常主要集中在哪些SKU;
- 也可能是操作人员上的结构,就要清楚这些异常主要是谁造成的;
- 甚至可能是操作位置上的结构,看看这些异常主要是在仓库的哪个区域发生的;
一个是时序上的分解,判断这些操作异常是不是集中在某几天发生的,在整个时间区间内的变化趋势是怎么样的,或者说,是集中在一天中的哪个时间段发生的;
一个是流程上的分解,有可能这些异常主要是在入库流程中的上架动作中发生的,也有可能是在出库打包时发生的;
经过层层分解的过程,我们对问题就有了比较清楚的了解,结合现场的具体情况,或者与客户沟通得到的信息,要找到问题的缘由,决定接下来所需要采取的措施就有了一个基本的依据。
当然,我们上面所说的,是比较规范的分析流程,而在具体实践中,一般都不需要这么复杂,可能对天天待在现场的人来说,在数据上看到一点端倪,马上就能联系实际想到可能的原因。
我们需要提醒的是,可能的原因毕竟只是一种可能,要验证这种可能,还是需要回到数据上来:
- 比如说,我们猜测库存上涨的原因是某种季节性农产品的大规模入库,那么,可能就可以直接查看这种农产品的库存量变化来进行验证;
- 又比如说,我们猜测操作异常的增多可能是某位新员工操作不熟练所致,那么,或许直接查看这位员工的操作异常情况就可以得到结论了。
另一个需要注意的地方是,我们猜测一个原因,并在数据上得到了证实,并不一定说明这个问题就彻底解释清楚了。
比如说,库存量上涨了100吨,季节性农产品的入库可以解释其中的50吨,那么,剩下的50吨库存上涨是不是正常现象呢?如果不是正常现象的话,又是什么原因导致的呢?如果验证自己的一个猜想后就抛开这个问题,不进行下一步的分析,就容易有一个问题遮盖另一个问题的现象,有时候,这种现象还是比较危险的。
比如说,操作异常的增多有50%是由于新员工不熟练造成的,剩下的50%又是什么因素导致的呢?如果是一些安全相关的因素导致的,那么忽视这个问题就可能造成比较严重的后果了。
推测与验证一般来说是数据描述中不太常用的办法,不过在我们实际进行数据描述的时候,肯定也会受一些推测的影响,我们推测哪些地方更容易出现问题,可能在这些地方就会进行更加细化的数据分解,从而得到更加准确的描述结论以供参考。
推测与验证的过程,其实是我们带着一种既定的判断去分析数据,而一般性的数据描述则比较少会有这种既定的判断。因此,一般性的数据描述分析是容易通过自动化的办法完成的。
事实上,我们的主张是,可以自动化执行的动作应该尽量自动化,一方面是得到的结果更为标准,不太容易有人为操作的失误,另一方面,可以自动化执行的工作通常都没有什么发挥个人能动性的空间,长期执行是极为无聊枯燥的。
对于现场人员来说,其启示有两个:
一个是除了基本的数据分析公式,最好还要能掌握一些数据自动化处理的方法。不论是VBA(过气了,不推荐,但还常用)也好,其它编程语言(比如python、R)也好,只有自动化之后,长期执行一些已经高度标准化的数据分析流程才不会无聊,说得明白一些,也就是才能真正执行下去。
第二个启示是,现场人员需要在推测与验证方面更多地发挥自己的才能,结合自己在现场操作的切身体会,深入繁芜的数据丛中,于寻常处发现不寻常,在规范分析流程注意不到的地方找到解决问题的线索。
七、数据推测
与数据描述或数据追溯相比,数据推测的逻辑不太一样,我们的意思是说,它的逻辑不太稳固。不论是数据描述还是数据追溯,主要关注的都是过去的事情,不论我们能不能发现,它们其实是有确切的结论的。
但未来是不确定的,数据推测都需要一些基本的前提假设,这些前提假设在未来是否真的成立,还需要经过时间的验证。这可能是我们在讨论数据推测时最不能忽视,也是最容易忘记的要点。
数据追溯关注的是一个现象的现状与由来,数据推测关注的则是这个现象的趋势与未来。
对于未来,在没有其它信息支持的情况下,可能我们的一个基本假设是它会以之前的趋势继续发展。那么在计算方法上,比较常用的方法有线性拟合、移动平均、指数平均等。
- 线性拟合是大家比较熟悉的方法。其基本的思路,是假设存在一个函数,以时间为基本因子,我们所讨论的对象数据是按照这个函数发展的,通过二分法求得标准差最小的函数结果,就是我们需要的函数。
标准差最小的意思,就是至少从之前的数据看,这个函数是最接近我们的对象数据的,如果未来趋势不变,那么这个函数在下一个时间点的值就可以作为我们的预测值。
线性拟合考察的是数据的长期发展趋势,而不太关注这个趋势在最近的变化,有其优势,也有其不足。我们在现场实际上用得不是很多,如果真要说使用,只能说对平均数的使用比较多。
我们用平均数推测未来,本质上也是一种线性拟合方式,只是规定了这条线是不存在上升或下降趋势的——有些时候,如果规定趋势是平直的,平均数那条线就是进行拟合的最优解,或者至少是比较接近最优解的线,而它的计算方法要比二分法求最小标准差的方法简单得多。
- 对事物最近的发展趋势考虑得比较多的是移动平均法。
假如我们手中有一年的数据,平均数取的是这一年中所有数据的平均值,但很多时候,我们发现太久以前的数据没什么参考意义,如果只取最近三个月的数据做一个平均,就是移动平均。
之所以说移动,是因为“最近”这个概念的具体意思是在不断变化的,在4月份的时候,最近三个月就是1、2、3月,而在5月份的时候,最近三个月变成了2、3、4月。
移动平均的方法本质上还是预计未来的发展没有什么上升或下降的趋势,只是稳定在目前所处的水平。具体的使用,要取决于具体情况,对于仓库库存来说,可能前期有一个从少到多的过程,但一段时间后趋于稳定了,那么可能用移动平均值预测的结果要比线性拟合更为接近。
事实上,移动平均是一种思想方法,让我们摆脱太久之前的、已经不符合当前趋势的数据的束缚,直接使用最近的数据进行分析,至于是不是使用平均值进行预测,则全看我们自己。可能一种SKU的库存,开始几个月的时候有多条生产线在生产,存储量是快速上升的,最近几个月则只有一两条生产线生产,存储量也在上升,只是比较慢,那么我们就可以按最近几个月的数据进行线性拟合,而完全抛开之前的数据,避免受其误导。
- 预测都是有一定误差的,比如说,我们上个月按线性拟合或者移动平均的方法得到的一个预测值,但实际的结果比预测值大一些或小一些。这个月我们学聪明了,当我们取得一个预测值后,又加上了上个月预测值与实际值间的差异,希望得到一个更准确的结果,这种思路就是指数平均。
指数平均的方法实际上是对事物最近的发展趋势有了更多的考虑——之前的预测值和实际值间的差异有可能代表的是一种趋势而不是一个偶然,那么把这种趋势考虑进去显然是合理的。
线性拟合、移动平均、指数平均这几种思路在现实中的具体应用,很多时候都是相互结合,相互补充的。结合现场的具体情况,很多时候我们也很容易判断我们使用哪种预测方式更为准确。
在这里,我们判断的基本原则,就是考察这几种预测思路背后所需要的前提假设,比如说:
- 平均值方法的基本假设是:事物发展的趋势是平直的,不会上升也不会下降;
- 线性拟合方法的基本假设是:以我们进行拟合的所有数据为基础,未来会顺着一个整体的趋势发展下去;
- 抛开比较远的数据而只使用最近数据的基本假设是:最近数据的发展趋势与较远前的发展趋势不一致,并且未来是按照最近趋势发展的;
- 在得出预测值之后进行二次修正的基本假设是:事物发展的趋势在不断变化,之前的预测值与实际值间的差异代表的是一种趋势变化而不是偶然情况;
在现场的人,对于现场的情况容易有比较直观的感受与经验,哪些假设是满足的,哪些假设是不满足的,我们使用哪种预测方式可能存在哪些问题,都可以有一个基本的判断。
以上是我们对数据推测的一些基本方法的讨论。
就现场的角度来看,进行数据推测的目的:
- 一个是外部因素主导的,即预知到某种变化的存在,想更准确地理解这种变化,从而提前做好准备;
- 另一个是内部因素主导的,即团队本身打算做一些事情,想提前预测一下做这种事情可能会有什么结果。
前面讨论的数据推测思路主要是应对外部因素变化的,而在预测行为结果方面,恐怕没有什么规范的系统分析方法。或者说,能够数据化的终究只是一部分,还是有相当部分的结果是不太好数据化的,那么就有更多的对直觉和经验的依赖。
预测行为结果的例子,我们在讨论现场计件制和承包责任制的时候已经提到过。其基本的假设,是现场的操作量和操作效率情况在接下来的时间里会保持稳定。
那么,就可以把总的操作量做一个比较均衡的划分,从而让每个人专门负责一部分,进行承包责任制;或者按目前的成本除以目前的操作量,得到单次操作成本,也就是计件价格,统计每个人的操作量,乘以计件价格,判断未来每个人的收入水平是不是能保持在可接受范围内,从而推进计件制。
这一类的预测办法,理解起来简单,执行起来也相对容易,在现场是比较常用的。
八、总结
不论是数据描述、数据追溯,还是数据推测,其基本的过程,都是把问题层层分解,其基本的原则,都是贴合现场实际,明确每一个数据所代表的具体意思,其基本的方法,都是描述统计和推断统计中一些基本的思想概念。
数据是一种工具,一条路径,是对现实的抽象,一方面我们依赖数据,使用数据,另一方面,我们也警惕数据:
- 最根本的,是不能被数据所误导,而要时刻关注事实,关注直觉。
理解每一个数据在现场的具体意思,如果数据与直觉相违背,一定要深入探究,找到数据或直觉的问题所在。
- 其次,是不能沉迷于数据,终日里研究数据本身是没有意义的。
基于数据发现问题、提出方案并不意味着问题的解决,问题的解决虽然终究要反映到数据上来,其过程,却在一点一滴的现场操作之中,现场操作有着各种各样的现实条件限制,要比查看抽象数据艰难得多。
- 第三,是在数据分析时要保持明确的方向,要有整体的逻辑和基本的结构。
也就是说,数据分析必须开始并终结于现场、流程或问题的分析与分解。一头扎进繁芜的数据丛中,有时可以消耗无限的时间,最后却不知道需要哪些方面的结果,没有整体的思路和安排,偶尔得出一个结论,也没有什么意义。这是新手比较常见的误区。
- 最后,我们知道数据展示方面有一些技巧——全天下人都知道。
它们可以让小问题变大,让大问题变小,突出自己的观点,引导别人的认知。
但在使用这些技巧的时候,数据分析者一定要非常清楚自己在做什么,想要表达什么,希望实现什么目的。如果不能立足现实,立意真诚,那么在使用这些技巧的时候难免被这些技巧所误,一方面缺乏对他人智商的尊重,另一方面,也可能反而误导了自己对数据本身的理解。