stats.boxcox()函数详解

官方文档

scipy.stats.boxcox(x, lmbda=None, alpha=None)

返回一个通过Box-Cox次方转换的正的数据集

参数 数据类型 意义
x ndarray 输入数组。1维
lmbda {None, scalar}, optional 如果lmbda不是None,对这个值进行转换
如果lmbda是None,找到最大化对数似然函数的lambda并将其返回为第二个输出参数
alpha {None, float}, optional 如果alpha不是None,返回lmbda的置信区间作为第三个输出参数。必须是0.0~1.0
返回 数据类型 意义
boxcox nndarray Box-Cox次方转换数组
maxlog float, optional 如果lmbda参数是None,返回的第二个参数是最大化对数似然函数的lambda
(min_ci, max_ci) tuple of float, optional 如果lmbda参数是None并且alpha不是None,这个返回的浮点数元组表示在给定alpha下最小和最大置信限制

boxcox要求输入数据都是正的。转换公式为
y = ( x ∗ ∗ l m b d a − 1 ) / l m b d a    ,    f o r    l m b d a > 0        l o g ( x ) ,    f o r    l m b d a = 0 y = (x**lmbda - 1)/lmbda\; , \; for \; lmbda>0\\ \; \; \; log(x), \; for \; lmbda=0 y=(xlmbda1)/lmbda,forlmbda>0log(x),forlmbda=0

  • 意义解释:Box-Cox变换

    做回归分析时,通常假设回归方程的残差具有有齐性,即等方差。如果残差不满足齐性,即出现异方差(残差发散),此时就可以通过做Box-Cox变换实现回归方程残差齐性。

    Box-Cox变换实现两项工作:做变换、确定lambda的值(也就是boxcox()函数返回的前两个参数)

    boxcox是将数据分布正态化,使其更加符合后续对数据分布的假设。

    boxcox可以降低skewness值,达到接近正态分布的目标。


  • Reference

  1. box-cox变换
  2. R语言Box-Cox变换与多重共性线
  3. 数据挖掘中常用的数据变换方法总结

你可能感兴趣的:(小白学Python)