大家好,我是正在实战各种AI项目的程序员晚枫。
今天学习数据分布分析,重点掌握如何判断数据是否符合正态分布。
为什么重要?因为很多统计方法(如t检验)都假设数据正态分布。用错方法会导致错误结论。
什么是正态分布?
特征
- 钟形曲线,对称分布
- 均值 = 中位数 = 众数
- 约68%数据在μ±σ内,95%在μ±2σ内
为什么要检验正态性?
- t检验、ANOVA要求正态分布
- 线性回归假设残差正态
- 很多机器学习算法对分布敏感
可视化判断
直方图 + 密度曲线
1 | import numpy as np |
QQ图(Quantile-Quantile Plot)
原理
将数据的分位数与理论正态分布的分位数对比。如果点在一条直线上,说明符合正态分布。
Python实现
1 | import statsmodels.api as sm |
统计检验
Shapiro-Wilk检验(小样本推荐)
1 | from scipy import stats |
Kolmogorov-Smirnov检验
1 | # KS检验 |
Anderson-Darling检验
1 | result = stats.anderson(normal_data, dist='norm') |
偏度和峰度
1 | from scipy import stats |
数据变换
当数据不正态时,可以尝试变换:
对数变换(右偏数据)
1 | log_data = np.log(skewed_data[skewed_data > 0]) |
平方根变换
1 | sqrt_data = np.sqrt(skewed_data[skewed_data >= 0]) |
Box-Cox变换(自动选择最优变换)
1 | from scipy.stats import boxcox |
实战:完整分析流程
1 | import numpy as np |
下节预告
下一课我们将进入实战项目部分,第一个项目是销售数据分析报表。
💬 加入学习交流群
扫码加入Python学习交流群,和数千名同学一起进步:
👉 点击加入交流群
群里不定期分享:
- 数据分析实战案例
- Python学习资料
- 求职面试经验
- 行业最新动态
推荐:AI Python数据分析实战营
🎁 限时福利:送《利用Python进行数据分析》实体书
👉 点击了解详情
课程导航
上一篇: 假设检验入门-用数据验证你的猜想
下一篇: 项目1-销售数据分析报表自动化
PS:QQ图是判断正态分布最直观的方法。记住:点越接近对角线,越像正态分布。
