Spec-Zone.ru › NumPy 1.12

numpy.random.standard_t

numpy.random.standard_t(df, size=None)

Генерация выборок из стандартного распределения Стьюдента с df степенями свободы.

Частный случай гиперболического распределения. По мере роста df, результат приближается к стандартному нормальному распределению (standard_normal).

Параметры:

df : int или array_like целых чисел

Степени свободы, должны быть > 0.

size : int или кортеж из целых чисел, необязательно

Форма выходных данных. Если заданная форма, например, (m, n, k), то генерируется m * n * k выборок. Если size не указан (по умолчанию), возвращается одно значение, если df является скалярным. В противном случае генерируется np.array(df).size выборок.

Возвращаемое значение:

out : ndarray или скаляр

Сгенерированные выборки из стандартного распределения Стьюдента.

Примечания

Функция плотности вероятности для распределения Стьюдента

P(x, df) = \frac{\Gamma(\frac{df+1}{2})}{\sqrt{\pi df}
\Gamma(\frac{df}{2})}\Bigl( 1+\frac{x^2}{df} \Bigr)^{-(df+1)/2}

Критерий Стьюдента основан на предположении, что данные получены из нормального распределения. Критерий Стьюдента позволяет проверить, является ли выборочное среднее (среднее, вычисленное из данных) хорошим приближением истинного среднего.

Вычисление распределения Стьюдента впервые было опубликовано в 1908 году Уильямом Гиссетом во время работы в пивоварне Гиннесс в Дублине. Из-за проблем с авторским правом он был вынужден публиковаться под псевдонимом, поэтому использовал имя Стьюдент.

Ссылки

[R267] (1, 2) Dalgaard, Peter, “Вводный курс статистики с R”, Springer, 2002.
[R268] Википедия, “Распределение Стьюдента” http://en.wikipedia.org/wiki/Student’s_t-distribution

Примеры

Из книги Dalgaard, страница 83 [R267], предположим, что суточная энергетическая потребность 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)

../../_images/numpy-random-standard_t-1.png

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.random.standard_t.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API