python 如何检验数据正态分布_用 Python 检验数据正态分布的几种方法
时间: 2023-09-24 22:13:52 浏览: 102
python 实现检验33品种数据是否是正态分布
Python 中可以使用多种方法来检验数据是否服从正态分布,以下是几种常用的方法:
1. Shapiro-Wilk检验
Shapiro-Wilk检验是一种常用的正态性检验方法,能够检验样本是否符合正态分布。在 Python 中可以使用 `scipy.stats` 库中的 `shapiro` 函数来实现。
示例代码:
```python
from scipy import stats
data = [1, 2, 3, 4, 5] # 假设数据为正态分布
stat, p = stats.shapiro(data)
print('stat=%.3f, p=%.3f' % (stat, p))
alpha = 0.05
if p > alpha:
print('样本符合正态分布')
else:
print('样本不符合正态分布')
```
2. Kolmogorov-Smirnov检验
Kolmogorov-Smirnov检验也是一种常用的正态性检验方法,能够检验样本是否符合正态分布。在 Python 中可以使用 `scipy.stats` 库中的 `kstest` 函数来实现。
示例代码:
```python
from scipy import stats
data = [1, 2, 3, 4, 5] # 假设数据为正态分布
stat, p = stats.kstest(data, 'norm')
print('stat=%.3f, p=%.3f' % (stat, p))
alpha = 0.05
if p > alpha:
print('样本符合正态分布')
else:
print('样本不符合正态分布')
```
3. Anderson-Darling检验
Anderson-Darling检验也是一种常用的正态性检验方法,能够检验样本是否符合正态分布。在 Python 中可以使用 `scipy.stats` 库中的 `anderson` 函数来实现。
示例代码:
```python
from scipy import stats
data = [1, 2, 3, 4, 5] # 假设数据为正态分布
result = stats.anderson(data)
print('stat=%.3f' % result.statistic)
for i in range(len(result.critical_values)):
sl, cv = result.significance_level[i], result.critical_values[i]
if result.statistic < cv:
print('%.3f: %.3f, data looks normal (fail to reject H0)' % (sl, cv))
else:
print('%.3f: %.3f, data does not look normal (reject H0)' % (sl, cv))
```
以上是常用的几种方法来检验数据是否符合正态分布,具体使用哪种方法需要根据实际情况来选择。
阅读全文