大师兄的应用回归分析学习笔记(十):违背基本假设的情况(三)
大师兄的应用回归分析学习笔记(十二):违背基本假设的情况(五)
五、BOX-COX变换
- BOX-COX是由BOX与COX在1964年提出的一种应用非常广泛的变换。
- 它对因变量y做变换
- 其中
是待定参数
- 要求y的各分量都大于0,否可可用下面的推广的BOX-COX变换
- 即先对y做平移,使得y+a的各个分量都大于0后再做BOX-COX变换。
- 这是一个变换族,包含一些常用变化,如果:
- 对数变换
![]()
- 平方根变换
![]()
- 倒数变换
![]()
- 通过变换,寻找合适的
,使得变换后:
- 从而符合现行回归模型的各项假设:
- 误差各分量等方差。
- 不相关等
- BOX-COX变换不仅可以处理异方差问题,还能处理自相关、误差非正态、回归函数非线性等情况。
- 经过计算可得
的最大似然估计:
- 为找出
,使得
达到最大,只需使
达到最小即可。
1. 案例一
-
散点图如下:
- 从散点图可以看出,该线性回归有明显的异方差性。
- 用R语言计算
,取近似值0.6:
> library(MASS) # 加载MASS包
> data <- read.csv("C:\\Users\\KMI\\Desktop\\数据\\data2.csv",head=TRUE,fileEncoding = "GBK")
> re <- boxcox(财政收入.y.亿元.~地区生产总值.x.亿元.,data=data,lambda = seq(-3,3,0.1))
> lambda <- re$x[which.max(re$y)]
> lambda
[1] 0.5757576
- 得到回归方程
- 从残差图中可看到,残差呈随机分布,消除了异方差性。
- 由关系式
的原始变量间的回归方程为:
- BOX-COX变换是一个幂变换族,其中当变换参数
时称为对数变换,对数变换比幂变换应用更广泛。
- 从数据上看,如果:
- 数据中一些数值很大,但是小数值的数据更密集
- 个数也更多,大数值的数据较稀松,个数较少
这样的数据很可能服从对数正态分布,可以尝试对其做对数变换。
-
只对因变量做对数变换的残差图:
-
只对自变量做对数变换的残差图:
- 对于本例数据,只对因变量或只对自变量做对数变换的效果不好,残差呈非随机分布,有一定趋势,表明回归模型不正确。
-
同时取自变量和因变量对数的残差图:
- 同时对因变量和自变量做对数变换的效果则很好,残差完全随机分布,消除了异方差性。
- 本例的回归关系是正确的,只是存在异方差性,所以单独对因变量或自变量做对数变换可能会有很好的效果,在线性模型不适用、误差项非正态或者存在异方差性等多场合都适用。