Python(numpy、scipy等)中是否有t检验表?

6
我正在尝试编写一个脚本,它会获取一个数字样本池,并使用来自表格的t值制作比stdev更准确的标准差。这是一个练习,因为我还比较新于Python和编程。
例如:10个样本,我想要从0.975列中获取t表的值。在这种情况下,它是10-1,第9行在0.975列中具有t值2.262。
是否有一种简单的方式可以在Python中直接输入需要的X行0.975列的t值,并在进一步的计算中使用它?
还是必须找到CVS文件并尝试以那种方式导入值?我已经尝试了scipy.stats函数,但对于刚开始学习并且没有做过p值或类似统计学的人来说,它有点令人不知所措。

1
我相信您正在寻找https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html。 - Terry Jan Reedy
2个回答

16
你可以使用scipy.stats.tppf方法(即分位函数):
In [129]: from scipy.stats import t

In [130]: alpha = 0.025

In [131]: t.ppf(1 - alpha, df=9)
Out[131]: 2.2621571627409915

t.ppf() 最终调用了scipy.special.stdtrit,因此您也可以使用该函数来避免通过 t.ppf() 的轻微开销:

In [141]: from scipy.special import stdtrit

In [142]: alpha = 0.025

In [143]: stdtrit(9, 1 - alpha)
Out[143]: 2.2621571627409915

(如果您想知道为什么该函数被命名为stdtrit,则是针对T的学生T分布函数的反函数。清楚吗?)

嗯,有趣的解决方案。顺便问一下,我能否将“1-alpha”替换为例如: alpha = 0.975 df = 9 t.ppf (alpha, df)并获得相同的结果? - MrZwing
是的,您可以用实际值替换1-alpha。我这样写是因为通常将t检验的显著性水平称为“alpha”(例如https://onlinecourses.science.psu.edu/statprogram/node/137,https://onlinecourses.science.psu.edu/statprogram/node/137)。 - Warren Weckesser
啊,我是自学的,所以不知道真正的实践。但如果我有什么东西要分享的话,这很好知道。 - MrZwing

0

我在Python中找不到一个直接的方法,但是我找到了rpy2,它可以让很多R功能在Python中使用,包括他们的t.test功能。


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