如何在python中使用t分布


t 分布是一种类似于正态分布的概率分布,只不过它比正态分布有更重的“尾部”。

换句话说,与正态分布相比,分布中位于末端的值多于位于中心的值:

正态分布与 t 分布

本教程介绍如何在 Python 中使用 t 分布。

如何生成分发

您可以使用t.rvs(df, size)函数从具有特定自由度和样本大小的分布生成随机值:

 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分布计算P值

我们可以使用函数t.cdf(x, df, loc=0, scale=1)来查找与 t 检验统计量相关的 p 值。

示例 1:查找单边 P 值

假设我们执行单方面假设检验并得到检验统计量-1.5和自由度 = 10

我们可以使用以下语法来计算与此检验统计量对应的 p 值:

 from scipy. stats import t

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

0.08225366322272008

与自由度为 10 的 -1.5 检验统计量对应的单侧 p 值为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

与具有 20 个自由度的检验统计量 2.14 对应的两侧 p 值为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 )

Python 中的 t 分布图

或者,您可以使用seaborn可视化包创建密度曲线

 import seaborn as sns

#create density curve
sns. kdeplot (x)

在Python中绘制t分布曲线

其他资源

以下教程提供了有关该发行版的其他信息:

正态分布与 t 分布:有什么区别?
逆 t 分布计算器

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注