boxcox数据转换

定义

Box-Cox变换是Box和Cox在1964年提出的一种广义幂变换方法,是统计建模中常用的一种数据变换,用于连续的响应变量不满足正态分布的情况。Box-Cox变换之后,可以一定程度上减小不可观测的误差和预测变量的相关性。Box-Cox变换的主要特点是引入一个参数,通过数据本身估计该参数进而确定应采取的数据变换形式,Box-Cox变换可以明显地改善数据的正态性、对称性和方差相等性,对许多实际数据都是行之有效的。
box-cox转换

数学公式

box-cox转换数学公式如下
y(\lambda)=\left\{\begin{array}{l} \frac{y^{\lambda}-1}{\lambda}, \lambda \neq 0 \\ \ln y, \lambda=0 \end{array}\right.
其中λ是一个固定的常数,在计算中可以通过最大似然估计估计方法算出。当λ≠0的情况下,y(λ)等于y的指数次方减去常数。可以看做为该数据的指数变换。
而当lambda为0的时候,可以看做数据的对数转换。因而box-cox为数据的指数、对数转换。
box-cox转换是在数据处理中常用的方法之一,通过box-cox转换,可以是整体数据呈正态分布,便于使用后续的差异分析。

Box-cox的python实现

box-cox转换在python统计分析包scipy已有实现,具体见以下代码

import matplotlib.pyplot as plt
import scipy.stats as st
import matplotlib
matplotlib.use("agg")
import seaborn as sns

#使用scipy生成具有偏态分布的loggamma分布的数据
x = st.loggamma.rvs(5, size=500) + 5
xt,_ = st.boxcox(x) 
#boxcox会同时返回两个参数,转化后的数据和最合适的λ值,此示例不需要返回λ值,因而设置为空
fig = plt.figure()
ax1 = fig.add_subplot(211)
sns.distplot(x,rug=True)
ax2 = fig.add_subplot(212)
sns.distplot(xt,rug=True)
plt.savefig("test22.png",dpi=300)
plt.close()
test22.png

上图为偏态分布的loggamma数据的密度分布图,下图为经过boxcox转换的数据密度分布图,从图中可以看出,经过boxcox转换,数据呈正态分布。
在scipy中boxcox转换中,会自动使用最大似然估计方法去计算做合适的λ值去转化数据。在scipy中special包中boxcox以及boxcox1p两个同样的功能。需要进一步的去学习。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容

  • 特征工程(feature engineering):利用领域知识和现有数据,创造出新的特征,用于机器学习算法;可以...
    rowcolumn阅读 688评论 2 1
  • Author: 杜七 一、前言 数据挖掘过程中,不同变量数据单位不一,比如,我们想知道一个人身体健康状况,其身高是...
    杜七阅读 30,785评论 0 12
  • 1、数据分桶(分桶后需要编码) 连续值经常离散化或者分离成“箱子”进行分析, 为什么要做数据分桶呢? 离散后稀疏向...
    堂堂正正的大号阅读 858评论 0 5
  • 夜莺2517阅读 127,718评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,887评论 1 6