numpy.random.RandomState.standard_t
-
RandomState.standard_t(df, size=None) -
Генерация выборок из стандартного распределения Стьюдента с
dfстепенями свободы.Особый случай гиперболического распределения. По мере увеличения
df, результат приближается к стандартному нормальному распределению (standard_normal).Параметры: df : int
Степень свободы, должна быть > 0.
size : int или кортеж из целых чисел, необязательно
Форма выходных данных. Если заданная форма, например,
(m, n, k), тоm * n * kвыборок генерируются. По умолчанию None, в этом случае возвращается одно значение.Возвращаемое значение: samples : ndarray или скаляр
Сгенерированные выборки.
Примечания
Функция плотности вероятности для распределения Стьюдента:

Критерий Стьюдента основан на предположении, что данные поступают из нормального распределения. Критерий Стьюдента позволяет проверить, является ли выборочное среднее (то есть среднее, вычисленное по данным) хорошим приближением истинного среднего.
Вычисление распределения Стьюдента было впервые опубликовано в 1908 году Уильямом Гиссетом, работавшим в пивоваренной компании «Гинес» в Дублине. По причинам, связанным с правами собственности, он был вынужден публиковаться под псевдонимом, и поэтому использовал имя Стьюдент.
Ссылки
[R196] (1, 2) Dalgaard, Peter, “Вводная статистика с R”, Springer, 2002. [R197] Википедия, “Распределение Стьюдента” http://en.wikipedia.org/wiki/Student’s_t-distribution Примеры
Из работы Dalgaard на странице 83 [R196], предположим, что ежедневный энергетический прием для 11 женщин в КДж равен:
>>> intake = np.array([5260., 5470, 5640, 6180, 6390, 6515, 6805, 7515, \ ... 7515, 8230, 8770])
Отклоняется ли их энергетический прием систематически от рекомендуемого значения 7725 КДж?
У нас есть 10 степеней свободы, поэтому выборочное среднее находится в пределах 95% от рекомендуемого значения?
>>> s = np.random.standard_t(10, size=100000) >>> np.mean(intake) 6753.636363636364 >>> intake.std(ddof=1) 1142.1232221373727
Вычислите t-статистику, установив параметр ddof в значение для несмещенной оценки, так чтобы делитель в стандартном отклонении был равен степеням свободы, N-1.
>>> t = (np.mean(intake)-7725)/(intake.std(ddof=1)/np.sqrt(len(intake))) >>> import matplotlib.pyplot as plt >>> h = plt.hist(s, bins=100, normed=True)
Для одностороннего t-теста, насколько далеко в распределении находится t-статистика?
>>> np.sum(s<t) / float(len(s)) 0.0090699999999999999 #random
Таким образом, значение p составляет около 0,009, что означает, что вероятность того, что нулевая гипотеза верна, составляет около 99%.
(Исходный код, png, pdf)
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.random.RandomState.standard_t.html