获得 kolmogorov-smirnov 检验所需的临界值
obtaining the critical values needed for the kolmogorov-smirnov test
我说的是检索此 table 媒体的值 python 公式
https://www.soest.hawaii.edu/GG/FACULTY/ITO/GG413/K_S_Table_one_Sample.pdf
我已经找了一段时间了,但是 scipy 函数没有寻找这个值,老实说,我在这里很困惑。
我一直在查看 scipy 内置公式,但没有成功。比如前面提到的table中,D[0.1, 10] == 0.36866。然而 scipy.stats.kstest 并没有 return 这个相同的值,无论我如何使用我的数据。
这可以通过 scipy
来完成,使用 ksone
分布及其 ppf
(percent point function) 方法,而不是 kstest
:
from scipy.stats import ksone
def ks_critical_value(n_trials, alpha):
return ksone.ppf(1-alpha/2, n_trials)
正在打印 table 个临界值:
from __future__ import print_function # For Python 2
trials = range(1, 41)
alphas = [0.1, 0.05, 0.02, 0.01]
# Print table headers
print('{:<6}|{:<6} Level of significance, alpha'.format(' ', ' '))
print('{:<6}|{:>8} {:>8} {:>8} {:>8}'.format(*['Trials'] + alphas))
print('-' * 42)
# Print critical values for each n_trials x alpha combination
for t in trials:
print('{:6d}|{:>8.5f} {:>8.5f} {:>8.5f} {:>8.5f}'
.format(*[t] + [ks_critical_value(t, a) for a in alphas]))
if t % 10 == 0:
print()
部分输出:
| Level of significance, alpha
Trials| 0.1 0.05 0.02 0.01
------------------------------------------
1| nan nan nan nan
2| 0.77639 0.84189 nan nan
3| 0.63604 0.70760 0.78456 0.82900
4| 0.56522 0.62394 0.68887 0.73424
5| 0.50945 0.56328 0.62718 0.66853
6| 0.46799 0.51926 0.57741 0.61661
7| 0.43607 0.48342 0.53844 0.57581
8| 0.40962 0.45427 0.50654 0.54179
9| 0.38746 0.43001 0.47960 0.51332
10| 0.36866 0.40925 0.45662 0.48893
11| 0.35242 0.39122 0.43670 0.46770
12| 0.33815 0.37543 0.41918 0.44905
13| 0.32549 0.36143 0.40362 0.43247
14| 0.31417 0.34890 0.38970 0.41762
15| 0.30397 0.33760 0.37713 0.40420
16| 0.29472 0.32733 0.36571 0.39201
17| 0.28627 0.31796 0.35528 0.38086
18| 0.27851 0.30936 0.34569 0.37062
19| 0.27136 0.30143 0.33685 0.36117
20| 0.26473 0.29408 0.32866 0.35241
我们需要统计学家对 (a) 为什么我们得到前两行的 np.nan
值的一些额外反馈(我假设是因为 n_trials
和 [= 的这些组合的临界值19=] 纯粹是理论上的,在实践中无法实现),以及(b)为什么 ksone.ppf
方法需要 alpha
除以 2?我将编辑此答案以包含该信息。
不过您可以看到,除了初始缺失值之外,此 table 生成与 the table in your question, and to the table on page 16 of this paper 相同的结果。
我说的是检索此 table 媒体的值 python 公式
https://www.soest.hawaii.edu/GG/FACULTY/ITO/GG413/K_S_Table_one_Sample.pdf
我已经找了一段时间了,但是 scipy 函数没有寻找这个值,老实说,我在这里很困惑。
我一直在查看 scipy 内置公式,但没有成功。比如前面提到的table中,D[0.1, 10] == 0.36866。然而 scipy.stats.kstest 并没有 return 这个相同的值,无论我如何使用我的数据。
这可以通过 scipy
来完成,使用 ksone
分布及其 ppf
(percent point function) 方法,而不是 kstest
:
from scipy.stats import ksone
def ks_critical_value(n_trials, alpha):
return ksone.ppf(1-alpha/2, n_trials)
正在打印 table 个临界值:
from __future__ import print_function # For Python 2
trials = range(1, 41)
alphas = [0.1, 0.05, 0.02, 0.01]
# Print table headers
print('{:<6}|{:<6} Level of significance, alpha'.format(' ', ' '))
print('{:<6}|{:>8} {:>8} {:>8} {:>8}'.format(*['Trials'] + alphas))
print('-' * 42)
# Print critical values for each n_trials x alpha combination
for t in trials:
print('{:6d}|{:>8.5f} {:>8.5f} {:>8.5f} {:>8.5f}'
.format(*[t] + [ks_critical_value(t, a) for a in alphas]))
if t % 10 == 0:
print()
部分输出:
| Level of significance, alpha
Trials| 0.1 0.05 0.02 0.01
------------------------------------------
1| nan nan nan nan
2| 0.77639 0.84189 nan nan
3| 0.63604 0.70760 0.78456 0.82900
4| 0.56522 0.62394 0.68887 0.73424
5| 0.50945 0.56328 0.62718 0.66853
6| 0.46799 0.51926 0.57741 0.61661
7| 0.43607 0.48342 0.53844 0.57581
8| 0.40962 0.45427 0.50654 0.54179
9| 0.38746 0.43001 0.47960 0.51332
10| 0.36866 0.40925 0.45662 0.48893
11| 0.35242 0.39122 0.43670 0.46770
12| 0.33815 0.37543 0.41918 0.44905
13| 0.32549 0.36143 0.40362 0.43247
14| 0.31417 0.34890 0.38970 0.41762
15| 0.30397 0.33760 0.37713 0.40420
16| 0.29472 0.32733 0.36571 0.39201
17| 0.28627 0.31796 0.35528 0.38086
18| 0.27851 0.30936 0.34569 0.37062
19| 0.27136 0.30143 0.33685 0.36117
20| 0.26473 0.29408 0.32866 0.35241
我们需要统计学家对 (a) 为什么我们得到前两行的 np.nan
值的一些额外反馈(我假设是因为 n_trials
和 [= 的这些组合的临界值19=] 纯粹是理论上的,在实践中无法实现),以及(b)为什么 ksone.ppf
方法需要 alpha
除以 2?我将编辑此答案以包含该信息。
不过您可以看到,除了初始缺失值之外,此 table 生成与 the table in your question, and to the table on page 16 of this paper 相同的结果。