Box-Cox变换详解

[复制链接]
查看881 | 回复0 | 2023-8-23 11:59:51 | 显示全部楼层 |阅读模式
Box-Cox变换详解

1 什么是 Box-Cox变换

   box-cox变换是一种广泛应用于数据转换和归一化的方法,可以使数据更接近正态分布。它由两位统计学家 box 和 cox 发明,实用于连续的、正值的、偏斜分布的数据。
  box-cox变换的数学公式为
                                                    y                                           (                                  λ                                  )                                                 =                                       {                                                                                                                                                                               y                                                          λ                                                                          −                                                       1                                                                      λ                                                                               ,                                                                                                                            if                                               λ                                              ≠                                              0                                                                                                                                                  ln                                              ⁡                                                               (                                                 y                                                 )                                                              ,                                                                                                                            if                                               λ                                              =                                              0                                                                                                             y^{(\lambda)}= \begin{cases} \dfrac{y^\lambda - 1}{\lambda}, & \text{if } \lambda \neq 0 \\ \ln{(y)}, & \text{if } \lambda = 0 \end{cases}                     y(λ)=⎩               ⎨               ⎧​λyλ−1​,ln(y),​if λ=0if λ=0​
此中,                                   y                              y                  y 是原始数据,                                   λ                              \lambda                  λ 是 box-cox变换的参数。当                                    λ                         =                         0                              \lambda=0                  λ=0 时,利用对数变换,否则就利用上述公式进行变换。
box-cox变换的重要作用:
   box-cox变换的重要作用是将数据进行归一化,使得数据更加符合统计假设。在实际应用中,box-cox变换常用于办理回归分析和方差分析中的数据不满意正态分布的标题,从而提高模型的正确度和可靠性。
  必要注意的是,box-cox变换的参数                                    λ                              \lambda                  λ 必要通过对原始数据进行多次实行和检验来确定。通常接纳最大似然法或交织验证法来选择最佳的                                    λ                              \lambda                  λ 值。

2 用python进行Cox-Box变换

  1. from scipy import stats
  2. # 假设有一组数据x
  3. x = [1, 2, 3, 4, 5]
  4. # 进行Box-Cox变换 convert_res是输出结果
  5. convert_res, _ = stats.boxcox(x)
  6. print(convert_res)
复制代码
输出结果为:
  1. [ 0.          0.82603196  1.44077472  1.98810691  2.48402687]
复制代码
此中,xt为变换后的数据,_为变换的参数。如果想要还原数据,可以利用inv_boxcox函数:
  1. # 还原数据
  2. from scipy.special import inv_boxcox
  3. x_inv = inv_boxcox(convert_res, _)
  4. print(x_inv)
复制代码
注意: boxcox函数只能处理处罚正数数据,如果数据中存在负数或零,必要先辈行平移或加一操纵。

3 Box-Cox变换和别的归一化方法的区别

   box-cox变换和其他归一化方法的重要差别点在于它们的目的应用方式
  3.1 box-cox变换



  • box-cox变换是一种通过对数据进行幂函数转换调解数据分布形态的方法。这个转换涉及到一个称为指数参数 lambda(λ)的值,该值可以主动优化以最大限度地提高数据的正态性或对称性。
  • box-cox变换实用于数据集具有偏斜或非正态分布特性的情况,并且可以或许使得数据更加符合线性模型的假设。 这是由于box-cox变换可以通过将数据压缩或扩展到一个更宽的区间内来归一化数据,以便更好地适应线性模型的假设。
3.2 其他归一化方法

在数据处理处罚中,常见的其他归一化方法包罗:


  • 最大最小归一化(min-max scaling):将数据缩放到[0,1]区间内。
  • z-score标准化(z-score normalization):将数据缩放到均值为0,方差为1的正态分布。
  • 中位数绝对毛病归一化(median absolute deviation normalisation, mad): 缩放数据到中位数±常数乘以mad的范围内。
   这些方法通常不会改变数据的分布形态,而只是调解它们的比例或位置,以便更好地适应某些算法或处理处罚步调。这些方法通常在特性缩放或预处理处罚数据时利用。
  总体来讲,box-cox变换和其他归一化方法都是调解数据分布形态和比例的方法,但是它们的目的和应用范围略有差别。box-cox变换可以更改数据分布形态以符合线性模型的假设,而其他归一化方法则重要用于调解数据比例或位置以适应各种算法或统计过程。

4 Box-Cox变换的优点与缺点

box-cox变换是一种数据转换方法,旨在使数据更符合正态分布。其优点和缺点如下:
优点:



  • 提高模型推测正确性:将非正态分布的数据进行box-cox变换后,可以使数据更加符合正态分布,从而提高模型推测的正确性。
  • 统计推断更可靠:在进行统计推断时,如果假设数据符合正态分布,但实际上并不符合,可能会导致结果的错误。通过box-cox变换将数据转换为正态分布后,统计推断的结果更加可靠。
  • 处理处罚异方差性:对于具有异方差性的数据,进行box-cox变换可以使数据更加平滑,从而更容易处理处罚异方差性。
缺点:



  • 数据必须为正数:box-cox变换要求数据必须为正数,因此无法处理处罚包罗负数的数据集。
  • 参数必要选择:box-cox变换中的参数λ必要根据数据集进行选择,差别的λ值可能会导致差别的结果。因此,必要进行多次试验来找到最适合的λ值。
  • 数据范围影响变换结果:box-cox变换对于数据的范围敏感,如果数据集范围较小,可能会导致变换结果不佳,大概导致出现数值标题。

5 box-cox变换后,模型性能可能会得到以下提拔:


  • 加强数据稳固性:box-cox变换可以把非正态分布的数据转换成近似正态分布的数据,如许可以低落数据的噪声和离群点对模型的影响,从而加强数据的稳固性。
  • 提高推测精度:由于非正态分布的数据在一些特定场景下(如线性回归)可能无法满意假设条件,因此通过box-cox变换可以提高模型的推测精度。比方,在线性回归标题中,如果变量不服从正态分布,则模型的残差也不会服从正态分布,这会导致置信区间和假设检验结果出现错误。而通过box-cox变换,可以使数据迫近正态分布,从而避免该标题的发生。
  • 镌汰过拟合的风险:box-cox变换可以压缩数据范围,并且可以删除负数值,使得数据更加符合模型的假设。如许可以镌汰模型的复杂性并镌汰过拟合的风险。

来源:https://blog.csdn.net/qq_42774234/article/details/130059235
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则