一、查看因变量的分布
(一)连续
sns.displot(y) # defaul kde=True有和密度曲线
(二)离散
df.x.value_counts()
二、修正因变量的分布
(一)查看因变量的分布
大部分模型,尤其是线性模型,需要因变脸y服从正态分布。如果y不服从正态分布,可以尝试用
import scipy.stats as st
y = Train_data['price']
plt.figure(2); plt.title('Normal')
sns.distplot(y, kde=False, fit=st.norm) # kde=False不显示核密度曲线,查看直方图与指定分布地贴合程度
plt.figure(1); plt.title('Johnson SU')
sns.distplot(y, kde=False, fit=st.johnsonsu) # 无界约翰逊分布
plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False, fit=st.lognorm)
(二)log变换
- 问题:随着时间序列,y的方差变大
- 建模需要满足的假设:方差齐性假设,使y的变换更加平滑
- 方法:log变换
(三)正态变换
- 方法:box-cox变换