来自t统计的Python p值

And*_*ham 25 python statistics

我有一些t值和自由度,并希望从它们中找到p值(它是双尾的).在现实世界中,我会在统计教科书的背面使用t检验表; 我如何在Python中执行等效操作?

t-lookup(5, 7) = 0.00245 或类似的东西(虚构的数字).

我知道在SciPy中我是否有可以做的阵列scipy.stats.ttest_ind,但我没有.我只有统计数据和自由度.

And*_*ham 35

来自 http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html

作为练习,我们也可以直接计算我们的测试而不使用提供的函数,这应该给我们相同的答案,因此它确实:

tt = (sm-m)/np.sqrt(sv/float(n))  # t-statistic for mean
pval = stats.t.sf(np.abs(tt), n-1)*2  # two-sided pvalue = Prob(abs(t)>tt)
print 't-statistic = %6.3f pvalue = %6.4f' % (tt, pval)
t-statistic =  0.391 pvalue = 0.6955
Run Code Online (Sandbox Code Playgroud)


San*_*Dey 7

我们t.cdf()也可以使用该函数进行计算:

from scipy.stats import t
t_stat = 2.25
dof = 15
# p-value for 2-sided test
2*(1 - t.cdf(abs(t_stat), dof))
# 0.03988800677091664
2*(t.cdf(-abs(t_stat), dof))
# 0.03988800677091648
Run Code Online (Sandbox Code Playgroud)

下图显示了 2 边 t 检验的 5% 显着性水平的关键区域。对于上面的例子,我们可以看到原假设可以被拒绝。

在此输入图像描述