Какие аргументы использовать при выполнении теста 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 это степени свободы.

Другие вопросы по тегам