简介

编辑

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. 《Javascript权威指南》学习笔记之十七:BOM新成就(1)--client存储数据(Storage实现)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u011043843/article/details/30255899     数据构成了web网站的 ...

  2. Makefile中几种赋值

    =  延时变量,只有被使用时才展开定义 := 立即变量,定义时的赋值立即有效 ?= 条件变量,当变量为空时才赋值 += 追加赋值

  3. Oracle使用存储过程返回查询游标

    如果报表逻辑非常复杂的话, 可以把报表逻辑放到存储过程里,加工一个全局临时表.前端查询的时候只查询临时表即可.只是第一次查询需要忍受加工的时间. --创建存储过程,返回SYS_REFCURSOR CR ...

  4. java全栈商业小程序开发

    此次开发只为学习和巩固,第一次学习开发 一.开发前需要了解: 开发框架MVVM.痛点.开源工具.VUE前端框架.微信支付模块.uni-app前端框架.小程序申请.开发工具下载.编写测试小程序.小程序结 ...

  5. Nodejs去掉/favicon.ico的请求

    const http=require("http"); const server=http.createServer(); server.on("request" ...

  6. CSIC_716_20191217【事务、视图、触发器、存储过程、索引】

    事务: 事务保证对数据操作时的安全性,事务中的代码要么一起成功,要么一起失败. 事务以  start transaction  开始,中间可以写诸多个sql 语句对数据库进行操作, 以rollback ...

  7. Python Class (一)

    继承 class Character(object): def __init__(self, name): self.health = 100 self.name = name def printNa ...

  8. H5新属性 contenteditable

    contenteditable 属性规定元素内容是否可编辑 <div contenteditable style="width: 100px;height:100px"> ...

  9. C/C++ 智能指针线程池

    //这个线程池存在一定的BUG 如果没有多线程编程基础的先生请谨慎使用 //我放弃了这种模板方式的线程池,最好不要使用!!!!!!! ThreadPool.h { #ifndef __THREADPO ...

  10. Android中监听ListView滑动到底部

    Android中的应用就是ListView中向下滑动加载更多的功能,不要再onScroll方法中进行判断,那样当滑动到底部的时候,触摸屏幕就会又去加载更多,效果很差,可以自行测试一下: listvie ...