在使用student t分布的python中进行KS测试时要使用哪些参数?

时间:2016-06-01 17:32:35

标签: python scipy kolmogorov-smirnov

我有关于星星金属度的数据,我想将它与学生的t分布进行比较。要做到这一点,我在python上使用scipy.stats.kstest运行Kolmogorov-Smirnov测试     KSstudentst = scipy.stats.kstest(data,"t",args=(a,b)) 但我无法找到论据应该是什么。我知道学生需要一个自由度(df)参数,但是另一个参数是什么。另外两个中的哪一个是df参数。 在scipy.stats.t.cdf的文档中,输入是计算值的位置和df,但在KS测试中,提供位置没有任何意义。

2 个答案:

答案 0 :(得分:1)

对于标准t来说,这些似乎是scipy.stats.t.cdf(df, loc=0, scale=1)的论据。由于它们具有默认值,因此您需要传递一个元组,但它可以是一个单例(args = (2, )表示df = 2)

import scipy.stats as ss
import numpy as np
np.random.seed(0)
data = np.random.randn(100)
ss.kstest(data, "t", args = (2, ))
Out[45]: KstestResult(statistic=0.093219139130061066, pvalue=0.33069879934011182)

或者传递loc = 0和scale = 1,结果相同:

ss.kstest(data, "t", args = (2, 0, 1))
Out[46]: KstestResult(statistic=0.093219139130061066, pvalue=0.33069879934011182)

答案 1 :(得分:0)

args参数必须是元组,但它可以是单个变量。如果10是自由度,则可以使用ks_statistic, pvalue = scipy.stats.kstest(x, 't', (10,))进行测试。