Какие аргументы использовать при выполнении теста KS на python с t-распределением студента?
У меня есть данные о металличности в звездах, я хочу сравнить их с t распределением студента. Для этого я запускаю тест Колмогорова-Смирнова, используя scipy.stats.kstest на python KSstudentst = scipy.stats.kstest(data,"t",args=(a,b))
Но я не могу найти аргументы. Я знаю, что студенту требуется параметр степени свободы (df), но каков другой параметр. Также, какой из двух является параметром df. В документации к scipy.stats.t.cdf входные данные - это позиция, в которой должно быть рассчитано значение, и df, но в тесте KS указывать позицию нет смысла.
2 ответа
Это похоже на аргументы 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)
Аргумент args должен быть кортежем, но он может быть единственной переменной. Вы можете сделать свой тест, используя ks_statistic, pvalue = scipy.stats.kstest(x, 't', (10,))
если 10 это степени свободы.