Python单侧T检验

  统计/机器学习 假设检验 Python    浏览次数: 1019
3

python里怎么做单侧T检验?我在网上查到一个是这样的。

>>>s = [1,2,-1,2,1,-4]

>>>from scipy.stats import ttest_1samp

>>>ttest_1samp(s,0)

Ttest_1sampResult(statistic=0.1762268, pvalue=0.8670311)

上面这个代码得到的p-value是双侧T检验的。

怎么做单侧的呢?我就是单样本,零假设是均值大于0.




 

雕牌   2017-02-28 16:12



   1个回答 
6

python的ttest_1samp同时返回T-statistic和p value。利用T检验的对称性,我们可以把双侧假设检验结果转化为单侧的。

如果T-statistic > 0,单侧pvalue = 1 - 双侧pvalue/2

如果T-statistic < 0,单侧pvalue = 双侧pvalue/2

可以根据上面的等式,自己定义个函数

def ttest_onesided(s):
    from spicy.stats import ttest_1samp
    (t, p) = ttest_1samp(s, 0)
    if t > 0:
        onesided_p = 1 - p / 2
    else:
        onesided_p = p / 2
    return onesided_p


高代兄   2017-03-09 23:52

补充一下,如果零假设是均值小于0,if else里面的条件要反一下。 - 高代兄   2017-03-09 23:55


  相关主题

python里用F检验来比较方差   1回答

多因素方差分析   2回答

F检验的使用场景   3回答

如何从假设检验的角度去理解AB testing   2回答

t检验,需要测试集验证集吗?   3回答

z test和t test什么区别?   1回答

单侧T检验p值与双侧T检验p值的关系   1回答

假设检验中的p值是什么意思?为什么越小越好?   2回答

多重检验中的FDR(false discovery rate, 错误发现率)是什么?   2回答

配对T检验和两样本T检验是一回事么?   1回答

假设检验的效力是什么?   1回答

多重比较校正   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!