http://onlinestatbook.com/2/transformations/box-cox.html
摘要:至于说什么时候应该用哪个函数来作变换,原文也针对常见的几种情况给出了一些建议。当然,我们会遇到的数据纷繁复杂,究竟用什么函数效果比较好,还是得通过反复尝试并实际验证才知道。
读过两天前推送的《样本分布不正态?数据变换来救场!》,你一定已经熟悉了数据变换的目的和意义,也了解了常用的若干种数据变换函数,如、
、
等。
至于说什么时候应该用哪个函数来作变换,原文也针对常见的几种情况给出了一些建议。当然,我们会遇到的数据纷繁复杂,究竟用什么函数效果比较好,还是得通过反复尝试并实际验证才知道。
就好像用单反照相机的手动模式拍照一样,这可是一件需要经验、知识和运气的事儿。你的内心在呼唤:
能不能有自动模式(或者干脆来个傻瓜卡片机)呢?
这里我们就来简单介绍一下一种根据数据自动寻找「最佳」变换函数的方法——
Box-Cox 变换
Box-Cox 变换在上世纪六十年代由两位英国统计学家 George E.P. Box 和 David Cox 提出( Box 他老人家几年前刚刚谢世,而 Cox 现已 92 岁高龄)。他们两位葫芦里卖的是什么药呢?
我们先来看看 Box-Cox 变换的数学形式。和以前一样,假设样本里一共有 n 个数据点,分别是
。
如果我们把变换后新的数据点记为
![数据变换的万能钥匙:Box-Cox变换-数据分析网](http://www.afenxi.com/wp-content/uploads/2016/08/c736dbe0861b745febd034cca319d84c.png)
(你会问这个 λ 是哪里冒出来的?别着急,我们马上解释),那么有:
![数据变换的万能钥匙:Box-Cox变换-数据分析网](http://www.afenxi.com/wp-content/uploads/2016/08/b4e8d848600a35656ee8254ca675a38e.png)
看着很复杂?我们来把它解剖一下,你会发现其实挺简单。这里出现的 λ,是一个有待确定的常数。这个常数如何确定我们稍等一会再说,现在我们先假设 λ 的值已经给定了,变换会是个什么样子?
把目光投向上述定义的第二行,你会看到一位老熟人——对数变换。不错,如果 λ 取 0,那么 Box-Cox 变换让我们做的正是对样本取对数。
如果 λ≠0,观察第一行的算式,我们能看到它的核心部分其实就是,后边的 -1 和分母的 λ 只是两个对
进行拉伸和平移的常数,并不会影响分布的形状。
是什么呢?不就是个关于 y 的幂函数嘛!当 λ 分别取下列数值时,我们会得到一系列耳熟能详的函数:
![数据变换的万能钥匙:Box-Cox变换-数据分析网](http://www.afenxi.com/wp-content/uploads/2016/08/fb0c1e9adb7d3fe623d5a1007fd558a5.png)
…
你看,我们之前说过的常用的变换函数几乎都出现了!写到这里其实并没有什么神奇的,无非只是利用 λ 把这些不同的函数写出一个统一的表达式而已。最关键的问题在于怎样选定一个最优的 λ,使得变换后的样本(及总体)正态性最好。
设想一下,在最理想的情形下,经过变换以后,新的样本中数据点服从正态分布。我们以前讲过,要确定一个正态分布,只需要两个参数,一是均值(确定分布所在的位置),二是标准差(确定分布的形状有多宽)。根据转化后的数据,我们可以估计出这两个参数(估计方法参看《想玩转t检验?你得从这一篇看起》),进而用正态分布的概率密度函数算出每个数据点在该正态分布下出现的概率。由于各个数据点是互相独立的,因此所有这些单个数据点的概率的乘积就是整个样本出现的概率(即似然函数值)。
如果变换以后新的样本并不服从正态分布呢?我们仍然可以通过上面的方法算出似然。然而,变换后的样本实际并不服从正态分布,这个似然函数是生搬硬套进去的,似然函数值就会很小。
就好比说,你认为在北京生活的人 99% 都是女的,结果你随便一出门,视野范围内有 7 男 4 女,立马就傻眼了,因为根据你的理论,随机遇到 11 个人里只有 4 个女性的概率(似然)非常低。反过来,如果你认为男女各占一半,11 人中有 7 男 4 女就很稀松平常(即似然函数值比较大)。
所以,要找到使变换后样本正态性最好的那个 λ,我们只需在所有的 λ 里找出使得正态假设下似然函数最大的那一个。听起来是不是有点耳熟?这个解决方案的思想与我们在《算术平均数:简单背后有乾坤》中介绍的「极大似然估计」是一样的。有了思路,找 λ 这样的脏活累活交给计算机来干就好了,现在许多数据分析和统计软件都已实现了一键式 Box-Cox 变换的操作。
说了这么多,咱也得是骡子是马拉出来遛遛是吧?你也许还记得之前两集文章里我们碰到过一个很难缠的尾巴很长的总体分布,其抽样分布逼近正态分布的速度很慢,对数变换也搞不定它。这里我们就用它来试一试 Box-Cox 变换(图1)。容易看到,Box-Cox变换取得了相当好的效果,变换后频率直方图基本对称,而 q-q 图上各点基本在一条直线上。
![数据变换的万能钥匙:Box-Cox变换-数据分析网](http://www.afenxi.com/wp-content/uploads/2016/08/fb4c3f23ee4304ff3fdabf59e7f537e3.jpg)
图1 Box-Cox 变换效果示例
第一列:原数据的总体分布、样本频率直方图和 q-q 图。
第二列:将样本进行 Box-Cox 变换后,新样本的频率直方图和 q-q 图(总体分布略)。
那么,是怎样的 λ 才能有这样好的效果呢?答案是0.16,大致相当于开6次方根。如果光靠瞎碰,估计找到这个变换不太容易吧?
最后,我们还要提个醒儿,尽管 Box-Cox 变换十分强大,但是它依旧不是全能的。它只能在幂函数和对数函数中「搜索」出最好的变换,但不能保证一定能达到正态性。同时,我们之前说过数据变换方法的局限性,也都适用于它。
所以,虽然利器在手,要把它用好,还是得自己功夫深哦!
注:文中图片为作者自绘。