正态数据

Python 实验设计

James Chapman

Curriculum Manager, DataCamp

正态分布

 

  • 熟悉的"钟形曲线"
  • 与 z 分数相关

$$ {z} = \frac{x-\mu}{\sigma}$$

  • 均值 = 0,标准差 = 1
    • "该点距均值多少个标准差?"
    • "得到该分数的概率是多少?"

 

典型钟形曲线:白底上蓝色曲线。

Python 实验设计

正态数据与统计检验

 

  • 参数检验需要正态性
  • 非参数检验:不假设正态

 

典型钟形曲线:白底上蓝色曲线。

Python 实验设计

正态、Z 与 α

 

  • 与显著性水平($\alpha$)密切相关
  • 比较 p 值与 $\alpha$
  • 一类错误的概率

 

正态分布,两个尾部小区域填充为黑色

Python 实验设计

可视化正态数据

 

sns.displot(data=salaries,
            x='salary',
            kind="kde")
plt.show()

 

一个比典型更瘦更高的钟形曲线分布,但仍保持典型的钟形轮廓

Python 实验设计

QQ 图

QQ 图:将数据与某分布比较

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • 理想:点紧贴直线
  • 不佳:两端外拱

 

一个 QQ 图,大多数点紧贴中间的45度直线

一个 QQ 图,中间的点贴近45度线,但两端的点向内弯曲形成曲线

Python 实验设计

正态性检验

 

  • Shapiro–Wilk(适合小样本)
  • D'Agostino $K^2$(用峰度偏度
  • Anderson–Darling(返回一组阈值)

 

$H_0$ = "数据来自正态分布"

Python 实验设计

Shapiro–Wilk 检验

 

from scipy.stats import shapiro
alpha = 0.05

stat, p = shapiro(salaries['salary']) print(f"p: {round(p,4)} test stat: {round(stat,4)}")
p: 0.8293 test stat: 0.9956
  • p > alpha
    • 不能拒绝 $H_0$ → 可能正态
Python 实验设计

Anderson–Darling 检验

from scipy.stats import anderson
result = anderson(x=salaries['salary'], dist="norm")
print(round(result.statistic,4))
print(result.significance_level)
print(result.critical_values)
0.2748
[15.  10.   5.   2.5  1. ]
[0.572 0.651 0.781 0.911 1.084]
  • 0.2748 < [0.572 0.651 0.781 0.911 1.084]
    • 不能拒绝 $H_0$ → 可能正态
Python 实验设计

Passons à la pratique !

Python 实验设计

Preparing Video For Download...