简介

编辑

Box-Cox变换的一般形式为:

式中

  

为经Box-Cox变换后得到的新变量,

  

为原始连续因变量,

  

为变换参数。以上变换要求原始变量

  

取值为正,若取值为负时,可先对所有原始数据同加一个常数

  

使其

  

为正值,然后再进行以上的变换。对不同的

  

所作的变换不同。在

  

时该变换为对数变换,

  

时为倒数变换,而在

  

时为平方根变换。Box-Cox变换中参数

  

的估计有两种方法:(1)最大似然估计;(2)Bayes方法。通过求解

  

值,就可以确定具体采用哪种变换形式。

变换过程

编辑

Box-Cox变换是对回归因变量Y的如下变换:

在这里

  

是一个待定变换参数。对于不同的

  

,所作的变换也不相同,所以Box-Cox变换是一族变换,它包括了平方根变换(

  

),对数变换(

  

)和倒数变换(

  

)等常用变换,对因变量的n个观测值

  

,应用上述变换,可得变换后的向量

我们要确定变换参数

  

,使得

  

满足

即要求通过因变量的变换,使得变换过的向量

  

与回归自变量具有线性相依关系,误差也服从正态分布.误差各分量是等方差且相互独立,故Box-Cox变换是通过参数

  

的适当选择。达到对原来数据的“综合治理”,使其满足一个正态线性回归模型的所有假设条件。

用极大似然方法来确定

  

,由于

  

,故对固定的

  

  

  

的似然函数为

其中,

  

为变换的Jacobi行列式

  

固定时,

  

是不依赖于参数

  

  

的常数因子,

  

的其余部分关于

  

  

求导数,令其等于零,可求得

  

  

的极大似然估计

残差平方和为

对应的似然最大值为

该式为

  

的一元函数,通过求它的最大值来确定

  

,因为

  

是x的单调函数,问题可转化为求

  

的最大值,对式(3)求对数,略去与

  

无关的常数项,得

其中,

式(4)对Box-Cox变换在计算机上实现带来很大的方便,因为我们只要求出残差平方和

  

的最小值,就可以求出

  

的最大值,虽然很难找出使

  

达到最小值的

  

的解析表达式,但是对一系列的

  

给定值,通过最普通的求最小二乘估计的回归程序,很容易计算出对应的

  

,画出

  

关于

  

的曲线,可在图上近似地找出

  

达到最小值的

  

Box-Cox变换变换的具体步骤如下:
(1)对给定的

  

值,计算

  

,如果

  

,用式(6)计算,否则用式(7);

(2)利用式(5)计算残差平方和

  

(3)对一系列的

  

值,重复上述步骤,得到相应的残差平方和

  

的一串值,以

  

为横轴,作出相应的曲线,用直观的方法,找出使

  

达到最小值的点

  

(4)利用式(2),求出

  

意义

编辑

Box-Cox变换的一个显著优点是通过求变换参数

  

来确定变换形式,而这个过程完全基于数据本身而无须任何先验信息,这无疑比凭经验或通过尝试而选用对数平方根等变换方式要客观和精确。

Box-Cox变换的目的是为了让数据满足线性模型的基本假定,即线性、正态性及方差齐性,然而经Box-Cox变换后数据是否同时满足了以上假定,仍需要考察验证 [2]  。

Box-Cox变换的更多相关文章

  1. Kaggle比赛(二)House Prices: Advanced Regression Techniques

    房价预测是我入门Kaggle的第二个比赛,参考学习了他人的一篇优秀教程:https://www.kaggle.com/serigne/stacked-regressions-top-4-on-lead ...

  2. CSS3中文手册基础知识

    CSS3手册是学习CSS3的最佳文档,不管是自己写博客,还是买书,手册少不了.今天我给大家介绍一些CSS3有哪些分类及其使用. 具体参考:http://caibaojian.com/css3/ 上来进 ...

  3. SAS PROC MCMC example in R: Logistic Regression Random-Effects Model(转)

    In this post I will run SAS example Logistic Regression Random-Effects Model in four R based solutio ...

  4. QuantLib 金融计算——数学工具之随机数发生器

    目录 QuantLib 金融计算--数学工具之随机数发生器 概述 伪随机数 正态分布(伪)随机数 拟随机数 HaltonRsg SobolRsg 两类随机数的收敛性比较 如果未做特别说明,文中的程序都 ...

  5. stacking method house price in kaggle top10%

    整合几部分代码的汇总 隐藏代码片段 导入python数据和可视化包 导入统计相关的工具 导入回归相关的算法 导入数据预处理相关的方法 导入模型调参相关的包 读取数据 特征工程 缺失值 类别特征处理-l ...

  6. CSS学习笔记2-2d变换和过渡属性

    前言:今天又是一个周末,心情不错,趁着闲暇之余,把剩下来的CSS3学习的内容全部整理出来,练习用的源码也稍微整理了一下. 2D转换 transform:translate||rotate||scale ...

  7. 好吧,CSS3 3D transform变换,不过如此!

    一.写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容.看过海贼王的都知道,带D的家伙都不是好惹的,2D我辈尚可以应付,3D的话,呵呵,估计我等早就在千里之外被其霸气震晕了 ...

  8. css3 3D变换和动画

    3D变换和动画 建立3D空间,transform-style: preserve-3d perspective: 100px; 景深 perspective-origin:center center ...

  9. css3 过渡和2d变换——回顾

    1.transition 语法:transition: property duration timing-function delay; transition-property 设置过渡效果的css ...

  10. css3 3d变换和动画——回顾

    1.transform-style 属性指定嵌套原始是怎样在三维空间中呈现. 语法:transform-style: flat | preserve-3d flat 表示所有子元素在2D平面呈现. p ...

随机推荐

  1. springboot Service层单元测试

    两个实现类实现同一个Service接口 public interface CustomUrlService { List<ShopMetrics> getShopMetrics(); } ...

  2. bzoj 3517翻硬币

    我们lv老师有点毒瘤啊... n为偶数... 离AC只差一张草稿纸233 挖个坑...

  3. 2018年分享的Spring Cloud 2.x系列文章

    还有几个小时2018年就要过去了,盘点一下小编从做做公众号以来发送了273篇文章,其中包含原创文章90篇,虽然原创的有点少,但是2019年小编将一如既往给大家分享跟多的干货,分享工作中的经验,让大家在 ...

  4. logging自定义模板

    import logging logger=logging.getLogger('这是一个日志')#先生成一个日志 formatter=logging.Formatter('%(asctime)s % ...

  5. BZOJ-3495 前缀优化建图2-SAT

    题意:有n个城镇被分成了k个郡,有m条连接城镇的无向边.要求给每个郡选择一个城镇作为首都,满足每条边至少有一个端点是首都. 解法:以前没学过,参考https://blog.csdn.net/linkf ...

  6. #ifdef 宏定义一个main编译客户端服务端2套代码

    #include <iostream> using namespace std; #include "ProWrapper.h" #include "Serv ...

  7. java中接口有什么用

    1.通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类. 2.通过接口可以指明多个类需要实现的方法. 3.通过接口可以了解对象的交互界面,而不需了解对象所对应的类. 另:Java是单继承, ...

  8. .babelrc配置例子

    { "presets":[ ["es2015",{"modlues":false}], "react", ], &quo ...

  9. Java中的时间日期Date和Calendar

    日期时间类 Date: Date类的构造方法: 可以发现Date类的toString方法被重写了. Date类的方法: SimpleDateFormat 它提供了解决Date输出问题的解决方案--格式 ...

  10. QDomDocument::clear()的调用,会导致关闭程序时崩溃!!!

    //读一份xml前,先清理m_Doc[QDomDocument] bool XmlIO::xmlRead(QString &errmsg) { m_mutex.lock(); // m_Doc ...