gpt4 book ai didi

python - 获得 kolmogorov-smirnov 检验所需的临界值

转载 作者:太空宇宙 更新时间:2023-11-03 11:39:05 26 4
gpt4 key购买 nike

我说的是用 python 公式检索这个表媒体的值

https://www.soest.hawaii.edu/GG/FACULTY/ITO/GG413/K_S_Table_one_Sample.pdf

我已经找了一段时间了,但是 scipy 函数并没有寻找这个值,老实说,我在这里很困惑。

我一直在查看内置公式的 scipy,但没有成功。例如,在上述表格中,D[0.1, 10] == 0.36866。然而 scipy.stats.kstest 不会返回相同的值,无论我对我的数据玩了多少。

最佳答案

这可以通过 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)

打印临界值表:

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< 的这些组合的临界值alpha 是纯理论的,在实践中无法实现),以及(b)为什么 ksone.ppf 方法需要 alpha 来除以2?我将编辑此答案以包含该信息。

不过您可以看到,除了初始缺失值之外,此表生成的结果与 the table in your question 以及 this paper 第 16 页上的表相同。

关于python - 获得 kolmogorov-smirnov 检验所需的临界值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53509986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com