新闻资讯
看你所看,想你所想

box-cox变换

Box-Cox变换是统来自计建模中常用的一种数据变换,用于连续的响应变量不满足正态分布的情况。Box-360百科Cox变换,变换之后,确世序突践磁况方可以一定程度上减小不可观测的误差和预测变量的相关性。

  • 中文名 box-cox变换
  • 外文名 Golden Section Method
  • 性质 变换
  • 目的 预测变量
  • 函数 lnx是x的单调函数

简介

  在做线性回归的过程中,不可观测的误差可能是和预测变量相关,于是给线性回归的最小二乘法估计系数的结果带来误差,为了解决命翻困置击正这样的方差齐性问题,所以考虑对相应因变量做Box-Cox变换,变换之后,可以一定程度上减小不可观测的误差和预测变量的相关性。但是选择的参数要适当,使用极大似然估计得到的参数,可以使上述过程的效果更好。当然,做过Box-Cox变换之后,来自方差齐性的问题不一定会范助消失,做过之后仍然需要敌利强济做方差齐性的检验,看是否还需要采用其他方法。

  在R语言中,可以使用car包中的powerTransform()函数进行转换。

变换

  在回归模型号中,Box-Cox变换是对因变量Y作如下变换360百科:

  (1.1) 这里是一个待定变换参数。对不同的,所做的变换把态会线天轻略调过衣立自然就不同,所以是一个变换族。它包括了对数变换(=0),平方根变换(=1/2)和倒数变换(=-1)等常用变换。对因变量的n个观测值,应用上述变换,得到变换后的向量

  (1.2) 即要确定变换参数,使得满足服从或近似服从正态分布

  (1.3) 也就是说,通过对因变量的变换,使得变换过的向量与回归自变量具有线性相依关系,误差也服从正态分布,误差各分量是等方差且相互独立。以极大似然法华边来确定。

  (1.4) 这里为变换Jacobi的行列式

  (1.5) 当固定时,是不依赖于参数和的常数因子。的其余部分关于和求导数,令其等于0,可以求得和的极大似然估计

  (1.6) 为了求的最大值,考虑到lnx是x的单调函数,对求对数。

  (1.剧零重攻往促频7)式对Box-Cox变换带来很大方便,因为为了求的最大值,只需求残差平方和的最小值。

单变量

  设变量经变换后, (2.1) 对固定的,,的似然函数为 (2.2) 同为变换Jacobi的行列式 (2.3) 求得和的极大似然估计为 (2.4) (2.5) 对极大似然函数作对数变换 (2.6) 化简得 (2.7来自) 其中 (2.8) (2.9) 360百科(2.9)亦即为几何平均值。 为格农丰务直相果团了简单起见,重新将Box-Cox变换定右视境义为 (2.10) 为了最大化,只须最小化。

黄金分割

  黄金分割法(G损架把延蒸进花先olden Section Me范祖杨thod),是用于在单峰函数机是区间上求极小值的一种方法。其基班点知训答室常么本思想是通过取试探点和函数值比较,使包含极坏直林教激准映小点的搜索区间不断减少,当区间长度缩短到一定程度时,就得到函数极小点的近似值。 设是一元二次方程 (3.1) 的正根,里微即。 对于函数,先在搜索区间[a,b]上确定两个试探点,其中左试探点为 (3.2) 右试探点为 及严天跳(3.3) 再分别计算这消半间两个试探点的函数值,。轻力势断由单峰函数的性质,若,则区间内不可能有极小点,因此去掉区间,秋降令a'=a,b'=,得到一个新的搜索区间。若,则区间内不可能有极小点,去掉区间,令a'=,b'=b,得到一个质苏易报到握末她时新的搜索区间。 类似上面的步骤,在区间[a',b']内再计算两个新的试探点 (3.4) (3.5) 比洋拉径仍普较函数值,得到新的区间。 在上述方中,事实上每次迭代并不需要计算两个试探点及函数值。下面对新的试探点进行分析。 (1) 若,则去掉区间,那么新的右试探点为 (3.6) 了他到注意到是方程(3.1)的根,因此有 (3三来满定半外占.7) 即原区间的左试探点。 (2) 若,则去掉区间,那么新的左试洋旧探点为 (3.8) 即原区间的右试探点。 因此在上述计算过程中,只需要计算一个新试探点和一个点的函数值。 算法: (1) 置初始搜索区间[a,b],并置精度要求,并计算左右试探点 ,,其中, 及相应的函数值,。 (2) 如果,则置 b=,=,, 并计算 , 否则 a=,, 并计算 , (3) 若|b-a|,如果,则置问题的解;否则置,停止计算。否解转到(2)继续计算。

分布检验

W检验

  W检验是S.S.Shapiro和M.B.Wilk1965年提出来的,这种方法在样本容量3n50时适用。 W检验即检验假设 :总体服从正态分布 利用W检验的方法检验原假设的步骤如下 (1) 把n个样本观测值按由小到大的次序排列成 (2) W检验的统计量为 (4.1) 其中表示样本均值,的值可查表得。表示数的整数部分。 将的值代入(3.1)式计算统计量W的值。 (3) 根据给定的检验水平和样本容量n查表得统计量W的的分位数。 (4) 作出间判断:若W<,则拒绝,认为总体不服从正态分布;若W,则不拒绝。

D检验

  W检验是一种有效的正态性检验方法,可惜它只适用于容量为3至50的样本。1971年D'Agostino提出了D'Agostino检验(简称D检验)。这种检验不需要附系数表,它所适用的样本容量n的范围为50~1000。 进行D检验的步骤如下: (1) 把n个样本观测值按由小到大的次序排列成 (2) D检验的统计量为 (4.2) 其中 (4.3) 按(4.2)和(4.3)式计算统计量Y的值。 (3) 根据给定的检验水平和样本容量n查表,得统计量Y的分位数和1-分位数; (4) 作出判断:若Y<或Y>,则拒绝,否则不拒绝。

  附:Box-Cox变换的R代码

  BoxCox_Trans<-function(x,interval,loop=1000,epsilon= .Machine$double.eps){

  Likelihood_Log<-function(x,lambda){

  y_lambda<-function(x,lambda){

  gm<-exp(mean(log(x)))

  if (lambda == 0)

  log(x) * gm

  else

  (gm^(1 - lambda)) * ((x^lambda) - 1)/lambda }

  y <- y_lambda(x, lambda) (length(y)/2) * log(((length(y) - 1)/length(y)) * var(y))

  }

  GoldenSecSearch<-function(f,x,interval,loop, epsilon) {

  t<-(sqrt(5) - 1)/2 a<-min(interval) b<-max(interval)

  a_l<-a+(1-t)*(b-a)

  a_r<-a+t*(b-a) f_l<-f(x,a_l)

  f_r<-f(x,a_r) i<-1

  while(abs(b-a)>epsilon){

  i<-i+1

  if(f_l<f_r){

  b<-a_r a_r<-a_l f_r<-f_l a_l<-a+(1-t)*(b-a) f_l<-f(x,a_l)

  } else {

  a<-a_l a_l<-a_r f_l<-f_r a_r<-a+t*(b-a) f_r<-f(x,a_r)

  } if(i>loop) break }

  Result<-list()

  if(f_l<f_r) {

  Result$minimum<-a_l Result$Objective<-f_l

  } else {

  Result$minimum<-a_r Result$Objective<-f_r

  } Result

  }

  Output<-list()

  Output<- GoldenSecSearch(Likelihood_Log,x,interval,loop,epsilon) Output

  }

  进行变换的R代码 > attach(Prestige)

  //car package > hist(income) > BoxCox_Trans(income,seq(-3,3))

  $minimum [1] 0.1792894 $Objective [1] 827.9459 > hist(income^0.1792894)

转载请注明出处安可林文章网 » box-cox变换

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com