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

hos*_*shi 7 python statistics scipy p-value

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

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

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

提前致谢

War*_*ser 7

是的,n-1在这个例子中是自由度.

给定一个的t值和自由度,可以使用"生存函数" sfscipy.stats.t(又名互补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.
Run Code Online (Sandbox Code Playgroud)

对于双侧p值,只需将单侧p值加倍.