Box-Cox变化

一、何时使用?

答:在线性回归中使用

二、为何使用?

答:线性回归的前提是,数据服从正态分布。如果不服从正态分布,则必须经过Box-Cox变化,使得数据服从正态分布

三、Box-Cox公式

3.1 传统形式

其中:

  1. lambda (λ) 的范围是 [ -5,5 ],所有的 λ 会被尝试,直到找到最佳的近似曲线(即正态曲线)

  1. “y”是target variable(you want to transform),“y(λ)”是transformed variable

  1. y的取值必须 >= 0,不能为负数。(因为logy,y的取值不为负)

3.2 改进格式

其中:

  1. y的取值可以为负数

四、λ 取不同值

五、代码实现

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from scipy import stats

# Draw samples from a Beta distribution.
data = np.random.beta(1, 3, 5000)
fig = plt.figure(figsize=(15,8))
plt.subplot(1,2,1)
sns.distplot(data,fit=stats.norm)
# sns.displot(data,kde=True)
plt.legend(["data","stats.norm"])

plt.subplot(1,2,2)
transformed_data = stats.boxcox(data)[0]
sns.distplot(transformed_data,fit=stats.norm)
plt.legend(["transformed_data","stats.norm"])
plt.show()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值