我正在尝试在 Python 中模拟 MS Excel 的 t-probe 函数。我需要这样做,因为我必须自动化一些以前在 Excel 中完成的计算。这是我的测试程序:
import scipy.stats
a = [5, 0.9, -0.4, -0.9, 0.5, 0.8, 0.2, 0.2, 0, -0.8]
b = [1.1, 0.9, -0.5, -0.7, 0.6, 0.7, 0.3, 0.1, -0.1, -0.7]
print scipy.stats.ttest_ind(a,b, equal_var=True)
这是结果:
(array(0.6661542796363409), 0.51376033318001801)
但是,Excel 为相同的输入给出了这个值:0.35844407
我注意到他们使用了 tail=2 参数(参见http://office.microsoft.com/en-us/excel-help/ttest-HP005209325.aspx)。不幸的是,我不知道如何用 scipy 计算两个有尾 t 检验。(其实我也不知道是什么。)
另一个非常奇怪的事情是,在 scipy 中,当我改变样本的顺序时,我得到了一个截然不同的结果。例如,如果我将 -0.7 移动到 b 的头部,那么我得到 0.51376033318001824 而不是 0.51376033318001801。差别不大,但还是有的。
对于 Excel,这是一个全新的故事——当样本顺序不同时,看起来两个有尾 t 检验给出了显着不同的结果。
问题是:如何在 scipy 中模拟 Excel 的两个尾 t 检验版本?