从Python中的t分布和自由度中寻找双尾P值

时间:2014-05-26 23:40:15

标签: python statistics scipy p-value

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

关于这个主题的研究向我指出了这个堆栈交换答案:https://stackoverflow.com/a/17604216

我认为np.abs(tt)是T值,但我如何在自由度上工作,是n-1?

提前致谢

1 个答案:

答案 0 :(得分:6)

是的,n-1是该示例中的自由度。

给定t值和自由度,您可以使用scipy.stats.t(也称为互补CDF)的“生存函数”sf来计算单侧p值。第一个参数是T值,第二个参数是自由度。

例如,the table on this page的第一个条目表示对于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值加倍。