正态性检验
判断 pd.Series 数据是否符合正态分布,可以采用以下几种方法。
计算偏度
偏度(Skewness)是衡量数据分布对称性的统计量。如果偏度大于 0,则数据分布是右偏的(正偏斜);如果偏度小于 0,则数据分布是左偏的(负偏斜)。
import pandas as pdskewness = self.df_train['SalePrice'].skew()
if skewness > 0:print('Data presents a right skewed distribution.')
elif skewness < 0:print('Data presents a left skewed distribution.')
else:print('Data presents a normal distribution.')
Shapiro-Wilk 检验
Shapiro-Wilk 检验是一个常用的检验方法,可以用来检验数据是否服从正态分布。如果 p-value 值高于显著性水平(如 0.05),则不能拒绝数据服从正态分布的假设。
import pandas as pd
import scipy.stats as statsshapiro_test = stats.shapiro(self.df_train['SalePrice'])
if shapiro_test[1] > 0.05:print('Data presents a normal distribution.')
else:print('Data presents a skewed distribution.')
绘制图形
使用直方图和核密度估计图来直观地查看数据分布的形状。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as pltsns.displot(self.df_train['SalePrice'], kde=True)
plt.title('Data distribution of target variable')plt.show()
Shapiro-Wilk 等正态性检验对样本量较小的数据集可能不够敏感,而且某些类型的非正态分布数据也可能无法被检验准确识别。因此,图形方法和偏度计算可以作为补充手段,帮助我们更全面地理解数据的分布特性。