怎么展示kstest(x, cdf="norm")
时间: 2023-07-06 09:11:20 浏览: 128
可以使用 `scipy.stats.kstest()` 方法来计算并展示 Kolmogorov-Smirnov 测试结果。该方法的第一个参数 `x` 表示待测试的数据,第二个参数 `cdf` 表示用于计算累积分布函数的分布类型,如果不指定,则默认为正态分布。
以下是一个示例代码,展示如何使用 `scipy.stats.kstest()` 方法计算并展示 Kolmogorov-Smirnov 测试结果:
```python
import numpy as np
from scipy.stats import kstest, norm
import matplotlib.pyplot as plt
# 生成一组随机数据
np.random.seed(123456789)
x = norm.rvs(size=100)
# 计算 Kolmogorov-Smirnov 测试结果
test_stat, p_value = kstest(x, cdf="norm")
# 绘制数据的累积分布函数
plt.hist(x, density=True, cumulative=True, alpha=0.5, bins=20)
plt.plot(np.linspace(-3, 3, 100), norm.cdf(np.linspace(-3, 3, 100)), 'r-', lw=5, alpha=0.6, label='norm cdf')
plt.legend(loc='best', frameon=False)
# 显示测试结果
plt.title('KS test: D={:.4f}, p-value={:.4f}'.format(test_stat, p_value))
plt.show()
```
上述代码中,我们首先使用 `numpy.random` 模块生成了一组随机数据 `x`,然后使用 `scipy.stats.kstest()` 方法计算了 `x` 对于正态分布的 Kolmogorov-Smirnov 测试结果,并将其展示在了图表中。其中,`plt.hist()` 方法用于绘制数据的累积分布函数,`plt.plot()` 方法用于绘制正态分布的累积分布函数,`plt.legend()` 方法用于添加图例,`plt.title()` 方法用于添加测试结果的标题。最终,我们使用 `plt.show()` 方法将图表显示出来。
阅读全文