双样本t检验python实现_如何用numpy/scipy进行双样本单尾t检验

在试图将一些见解作为评论添加到已接受的答案中,但由于对评论的一般限制,无法正确地将其写下来之后,我决定将我的两分钱作为完整答案。

首先,让我们适当地提出我们的调查问题。我们正在调查的数据是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。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值