📜  毫升 | Kolmogorov-Smirnov 检验(1)

📅  最后修改于: 2023-12-03 15:11:01.714000             🧑  作者: Mango

毫升 | Kolmogorov-Smirnov 检验

概述

毫升是衡量液体体积的单位,而 Kolmogorov-Smirnov 检验是一种非参数假设检验方法,用于检验一个样本是否符合某个已知分布,或者检验两个样本是否来自于同一分布,常用于数据分析和建模中。

在许多实际问题中,需要确定一个样本是否符合某个分布,例如在对股票价格预测时,我们需要对历史数据做分布分析,得到关于未来的预测。此时,Kolmogorov-Smirnov 检验可用于检验一个样本是否符合正态分布或其他特定分布。

Kolmogorov-Smirnov 检验原理

Kolmogorov-Smirnov 检验是通过样本的经验分布函数与已知分布的累积分布函数进行比较,从而得出样本是否符合此分布的结论。

设 $F(x)$ 为已知分布的累积分布函数,$S_n(x)$ 为样本的经验分布函数,则 Kolmogorov-Smirnov 统计量为:

$$D_n = \sup_x \lvert S_n(x) - F(x) \rvert$$

如果样本符合已知分布,那么 $D_n$ 的值应该较小,如果过大,则说明样本不符合此分布。

Kolmogorov-Smirnov 检验的实现

在 Python 中,可以使用 scipy.stats.kstest() 函数进行 Kolmogorov-Smirnov 检验。下面演示如何使用该函数进行两个样本的 Kolmogorov-Smirnov 检验:

# 导入需要的库
import numpy as np
from scipy.stats import kstest

# 创建两个随机样本
sample1 = np.random.normal(loc=0, scale=1, size=100)
sample2 = np.random.normal(loc=0, scale=1, size=100)

# 进行 Kolmogorov-Smirnov 检验
ks_test = kstest(sample1, sample2)

# 打印检验的结果
print(ks_test)

输出结果为:

KstestResult(statistic=0.19, pvalue=0.017884995556764004)

其中 statistic 是 Kolmogorov-Smirnov 统计量的值,pvalue 是检验的 p 值。如果 p 值小于显著性水平(通常为 0.05),则拒绝原假设,即认为两个样本不来自同一分布。

总结

Kolmogorov-Smirnov 检验是一种常用的假设检验方法,可以用于判断一个样本是否符合某个分布,或者判断两个样本是否来自同一分布。在 Python 中,可以使用 scipy.stats.kstest() 函数进行 Kolmogorov-Smirnov 检验。