numpy.random.RandomState.standard_t
-
RandomState.standard_t(df, size=None) -
Выборка значений из стандартного распределения Стьюдента с
dfстепенями свободы.Особый случай гиперболического распределения. По мере увеличения
df, результат приближается к стандартному нормальному распределению (standard_normal).Параметры: -
df : float or array_like of floats -
Степени свободы, должны быть > 0.
-
size : int or tuple of ints, optional -
Форма выходных данных. Если заданная форма, например,
(m, n, k), то генерируютсяm * n * kзначения. Если размер равенNone(по умолчанию), возвращается одно значение, еслиdfявляется скаляром. В противном случае, генерируютсяnp.array(df).sizeзначений.
Возвращает: -
out : ndarray or scalar -
Выбранные значения из параметризованного стандартного распределения Стьюдента.
Примечания
Функция плотности вероятности для распределения Стьюдента:
Критерий Стьюдента основан на предположении, что данные взяты из нормального распределения. Критерий Стьюдента позволяет проверить, является ли выборочное среднее (среднее, вычисленное по данным) хорошим приближением истинного среднего.
Вычисление распределения Стьюдента было впервые опубликовано в 1908 году Уильямом Госсетом, работавшим в пивоваренной компании Гиннесс в Дублине. Из-за вопросов интеллектуальной собственности он был вынужден публиковаться под псевдонимом, поэтому использовал имя Стьюдент.
Ссылки
[1] (1, 2) Dalgaard, Peter, “Вводная статистика с R”, Springer, 2002. [2] Википедия, “Распределение Стьюдента” http://en.wikipedia.org/wiki/Student’s_t-distribution Примеры
Из книги Dalgaard на странице 83 [1], предположим, что суточная энергетическая ценность потребления для 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, density=True)
При одностороннем тесте, насколько далеко в распределении находится t-статистика?
>>> np.sum(s<t) / float(len(s)) 0.0090699999999999999 #random
Таким образом, p-значение составляет около 0,009, что говорит о том, что нулевая гипотеза имеет вероятность около 99% быть истинной.
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.random.RandomState.standard_t.html