Как использовать дистрибутив t в Python

Как использовать дистрибутив t в Python

Распределение t — это распределение вероятностей, похожее на нормальное распределение , за исключением того, что у него более тяжелые «хвосты», чем у нормального распределения.

То есть больше значений в распределении находится в конце, чем в центре, по сравнению с нормальным распределением:

Нормальное распределение против t-распределения

В этом руководстве объясняется, как использовать распределение t в Python.

Как генерировать при раздаче

Вы можете использовать функцию t.rvs(df, size) для генерации случайных значений из распределения at с определенными степенями свободы и размером выборки:

from scipy. stats import t

#generate random values from t distribution with df=6 and sample size=10
t. rvs (df= 6 , size= 10 )

array([-3.95799716, -0.01099963, -0.55953846, -1.53420055, -1.41775611,
 -0.45384974, -0.2767931 , -0.40177789, -0.3602592 , 0.38262431])

В результате получается массив из 10 значений, следующих при распределении с 6 степенями свободы.

Как рассчитать P-значения, используя t-распределение

Мы можем использовать функцию t.cdf(x, df, loc=0, scale=1) , чтобы найти p-значение, связанное с некоторой статистикой t-теста.

Пример 1. Найдите одностороннее P-значение

Предположим, мы выполняем одностороннюю проверку гипотезы и в итоге получаем статистику проверки -1,5 и степени свободы = 10 .

Мы можем использовать следующий синтаксис для вычисления p-значения, соответствующего этой тестовой статистике:

from scipy. stats import t

#calculate p-value
t. cdf (x=-1.5, df=10)

0.08225366322272008

Одностороннее p-значение, соответствующее тестовой статистике -1,5 с 10 степенями свободы, равно 0,0822 .

Пример 2: найти двустороннее P-значение

Предположим, мы выполняем двустороннюю проверку гипотезы и в итоге получаем статистику теста 2,14 и степени свободы = 20 .

Мы можем использовать следующий синтаксис для вычисления p-значения, соответствующего этой тестовой статистике:

from scipy. stats import t

#calculate p-value
(1 - t. cdf (x=2.14, df=20)) \* 2

0.04486555082549959

Двустороннее p-значение, соответствующее тестовой статистике 2,14 с 20 степенями свободы, равно 0,0448 .

Примечание : Вы можете перепроверить эти ответы, используя Калькулятор обратного t-распределения .

Как строить планы при раздаче

Вы можете использовать следующий синтаксис для построения графика распределения с определенными степенями свободы:

from scipy. stats import t
import matplotlib.pyplot as plt

#generate t distribution with sample size 10000
x = t. rvs (df= 12 , size= 10000 )

#create plot of t distribution
plt.hist (x, density= True , edgecolor='black', bins= 20 )
график распределения t в Python

Кроме того, вы можете создать кривую плотности с помощью пакета визуализации Seaborn :

import seaborn as sns

#create density curve
sns.kdeplot (x)
построить кривую распределения t в Python

Дополнительные ресурсы

Следующие руководства предлагают дополнительную информацию о распределении t:

Нормальное распределение и t-распределение: в чем разница?
Калькулятор обратного t-распределения

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.