在Python中通过t分布和自由度计算双尾P值

10

我如何确定具有n度自由度的t分布的P值。

对此主题的研究指向了这个stackoverflow答案:https://dev59.com/A2Mm5IYBdhLWcg3whPPq#17604216

我假设np.abs(tt)是T值,但是如何考虑自由度,那是n-1吗?

提前致谢

1个回答

14

是的,在那个例子中,n-1 是自由度。

给定一个 t 值和自由度,您可以使用 scipy.stats.t 的 "survival function"(也称为补充 CDF)计算单侧 p 值。第一个参数是 T 值,第二个是自由度。

例如,此页面上表格的第一项 表明,对于 1 个自由度,p=0.1 的临界 T 值为 3.078。以下是如何使用 t.sf 验证:

In [7]: from scipy.stats import t

In [8]: t.sf(3.078, 1)
Out[8]: 0.09999038172554342   # Approximately 0.1, as expected.

对于双侧p值,只需将单侧p值翻倍即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接