使用学生 t 分布在 python 中进行 KS 测试时使用什么参数?

What Arguments to use while doing a KS test in python with student's t distribution?

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

这些似乎是 scipy.stats.t.cdf 的参数:(df, loc=0, scale=1) 标准 t。由于它们具有默认值,因此您需要传递一个元组,但它可以是单例(args = (2, ) for 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)

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