t分布是一个与正态分布 相似的概率分布,只是它的 "尾部 "比正态分布更重。
也就是说,与正态分布相比,分布中更多的数值位于尾端而不是中心。
本教程解释了如何在 Python 中使用 t 分布。
如何生成 t 分布
你可以使用**t.rvs(df, size)**函数从一个具有特定自由度和样本大小的 t 分布中生成随机值。
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的t分布。
如何使用t分布计算P值
我们可以使用t.cdf(x, df, loc=0, scale=1) 函数来找到与某个t检验统计量相关的p值。
例1:查找单尾P值
假设我们进行了一个单尾假设检验,最后得到的t检验统计量为**-1.5**,自由度=10。
我们可以使用下面的语法来计算与这个检验统计量相对应的P值。
from scipy.stats import t
#calculate p-value
t.cdf(x=-1.5, df=10)
0.08225366322272008
10个自由度的t检验统计量为-1.5,对应的单尾p值为0.0822。
例2:寻找双尾P值
假设我们进行了一个双尾假设检验,最后得到的t检验统计量是2.14,自由度=20。
我们可以使用下面的语法来计算与这个检验统计量相对应的P值。
from scipy.stats import t
#calculate p-value
(1 - t.cdf(x=2.14, df=20)) * 2
0.04486555082549959
自由度为20的t检验统计量为2.14,对应的双尾p值为0.0448。
注意:你可以通过使用反t分布计算器仔细检查这些答案。
如何绘制t分布图
你可以使用下面的语法来绘制一个具有特定自由度的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)
或者,你可以使用seaborn可视化软件包创建一个密度曲线。
import seaborn as sns
#create density curve
sns.kdeplot(x)
其他资源
下面的教程提供了有关t分布的额外信息。
The postHow to Use the t distribution in Pythonappeared first onStatology.