在试图将一些见解作为评论添加到已接受的答案中,但由于对评论的一般限制,无法正确地将其写下来之后,我决定将我的两分钱作为完整答案。
首先,让我们适当地提出我们的调查问题。我们正在调查的数据是A = np.array([0.19826790, 1.36836629, 1.37950911, 1.46951540, 1.48197798, 0.07532846])
B = np.array([0.6383447, 0.5271385, 1.7721380, 1.7817880])
用样本法A.mean() = 0.99549419
B.mean() = 1.1798523
我假设,因为B的平均值明显大于A的平均值,所以您需要检查这个结果是否具有统计学意义。
所以我们有一个无效的假设H0: A >= B
为了支持另一种假设,我们想拒绝H1: B > A
现在,当您调用scipy.stats.ttest_ind(x, y)时,这将对x.mean()-y.mean()的值进行假设测试,这意味着为了在整个计算过程中获得正值(这简化了所有考虑事项),我们必须调用stats.ttest_ind(B,A)
而不是stats.ttest_ind(B,A)。我们得到的答案是t-value = 0.42210654140239207
p-value = 0.68406235191764142
因为根据documentation这是双尾t-检验的输出,所以对于单尾检验,我们必须将p除以2。所以取决于你所选择的重要程度p/2 < alpha
为了拒绝无效假设H0。对于alpha=0.05来说,情况显然不是这样,因此您不能拒绝H0。
另一种不用对t或p做任何代数就可以决定是否拒绝H0的方法是查看t值,并将其与适用于您的问题的自由度df的期望置信度(例如95%)下的临界t值t_crit进行比较。因为我们已经df = sample_size_1 + sample_size_2 - 2 = 8
我们从一个类似this one的统计表中得到t_crit(df=8, confidence_level=95%) = 1.860
我们显然有t < t_crit
所以我们又得到了同样的结果,即我们不能拒绝H0。