数据分析做到分布拟合这一步时,不能一看到某条曲线跟直方图贴得比较近,就急着下结论。正态分布、对数正态分布、Weibull分布、Gamma分布,还有其他常见的候选模型,对于偏斜的数据、长尾的数据,还有那些只能取非负值的数据,解释起来差异其实不小。JMP的Distribution平台可以同时比较好几种连续分布,并且在Compare Distributions结果里给出AICc、BIC这类指标。不过要想选好模型,需要同时看业务上的含义、图形贴合得怎么样,以及拟合优度的结果,几样东西一起参考。
一、在JMP里怎么选择合适的分布
在正式开始拟合之前,需要先摸清数据的取值范围和类型。数值如果只能在0到1之间,或者全都得是正数,再或者有明显的长尾巴,甚至带有删失数据,那么从一开始,候选模型的清单就不一样了,得根据这些特征去缩小范围。
1、先打开分布分析窗口
顺着【Analyze】→【Distribution】这条路径点进去,把要分析的数值列拖进【Y,Columns】这个区域,再点【OK】就行。结果页面会给出直方图、分位数和简单的描述统计量,这时候不用急着去拟合,先看看数据是不是对称的,有没有朝一个方向明显偏斜,有没有跑得很远的异常值,以及直方图上是不是只有一座高峰,还是好几座峰堆在了一起,这些都是后面挑选模型时的重要线索。
2、把连续分布拟合的功能调出来
在变量名的旁边,会有一个红色的三角形按钮,点一下这个按钮,顺着【Continuous Fit】往下看,可以先一个一个地试,比如【Fit Normal】看看正态分布的效果,【Fit Lognormal】看看对数正态,【Fit Weibull】看看Weibull分布,还有其他候选分布。如果想一口气把所有可用的分布都拿来集中比较,就直接点【Fit All】或者功能差不多的那个入口,点了之后,JMP会自动把这些分布放进Compare Distributions列表里,这样就能横向比较不同分布之间的差异,不用来来回回翻页。
3、根据数据特点去缩小候选范围
如果数据看起来大致对称,上下波动也比较均匀,那先看正态分布是合理的。要是数据全部都是正数,而且右边拖着一条长尾巴,那就可以重点比较对数正态、Weibull和Gamma这几个分布。还有一种情况,如果数据本身就是比例或百分比,被限制在0到1之间,那么Beta分布往往更对口,JMP的官方帮助里也提到,Beta分布比较适合处理限制在0到1范围里的变量。
二、怎么理解拟合优度的结果
拟合优度的那些指标,不能只抓住一个数字就下结论,因为单看某一个,容易把人带偏。比较好的习惯是,先看一下AICc和BIC这两个数值,心里有了大概的排名之后,再回到图形和实际业务里去核实一遍。
1、优先比较AICc
在【Compare Distributions】列表里,能看到每个模型对应的AICc值,这个指标专门用来衡量模型拟合好坏,通常来说,数值更小的模型更值得优先考虑。JMP除了给出AICc本身,还会给出一个叫AICc Weight的权重,所有模型的权重加起来等于1,哪个模型的权重越接近1,就说明在当前这几个候选模型里,它的支持度相对更高,可以作为重点观察对象。
2、把BIC也结合进来
BIC同样是用来比较模型的,也是数值越小越好,不过它跟AICc有点不一样的地方,就是对模型复杂程度的惩罚更重。如果一个复杂模型的AICc只比简单模型低那么一点点,但它的BIC却明显高出一截,那就不要急着用复杂模型,可以再回到拟合图形上多看一看,同时也结合手头样本量的多少去判断,这样更稳妥。
3、别忘了看一眼拟合曲线和概率图
有时候从AICc和BIC上看,某个模型好像占优,但把它的拟合曲线叠到直方图上一看,尾巴部分偏离得厉害,那心里就得打个问号。除了直方图上的拟合线,JMP还会给出概率图,我们就看那些点是不是大体上沿着一条直线在走,如果很多点都偏离了,就说明这个分布对数据的描述其实有问题。
三、模型选定之后还要再检查些什么
挑出一个看起来最合适的模型之后,还不能就算完事了,因为后面如果要拿这个模型去做过程能力、可靠性预测,或者写进质量报告里,光留下一个分布名字是不够的,还得把基础踩实一点。
1、看看异常值的影响
有一些跑得很远的极大值或极小值,会明显拉扯分布的尾部形态。碰到这些点,先不要为了让曲线更好看就直接删掉,而是要去搞清楚它们到底是怎么产生的,是录入错误、测量问题,还是业务中真实存在的情况,把原因弄明白之后,再决定是保留、修正还是单独拿出去处理。
2、观察数据是不是多峰的混合体
如果直方图上明显出现了两个或更多的山峰,那就要留意,数据可能不是从同一个来源产生的,也许是把不同设备、不同批次或不同工艺条件下的数据混在了一起。这时候如果强行去拟合一个单一分布,解释起来会很勉强,更合适的做法是按条件把数据拆分开,再分别去做拟合。
3、把比较的结果保存下来
为了以后做报告方便,记录结果的时候,别只记一个最终的分布名字,最好把样本量、都比较过哪些候选分布、每个分布的AICc、BIC、AICc Weight,还有关键的拟合图形,全都保留下来。这样以后数据更新了,还可以用同一套标准重新比较,避免每次都凭感觉选模型,导致前后不一致。
总结
总结起来就是:先进入【Analyze】→【Distribution】看数据的基本特征,然后用【Continuous Fit】去比较候选分布,优先去看AICc和BIC都比较小的模型,同时结合AICc Weight、拟合曲线和概率图来综合判断。模型选定后,还要回去检查异常值、多峰情况,以及业务的适用范围,这样得到的拟合结论才会更稳当。
