Python单侧T检验

  统计/机器学习 假设检验 Python    浏览次数:10376        分享
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个回答 
8

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


SofaSofa数据科学社区DS面试题库 DS面经

高代兄   2017-03-09 23:52

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


  相关讨论

多因素方差分析

python里用F检验来比较方差

怎么利用python实现配对t检验?

spss的检验分了t,卡方,非参数,分类的依据和目的是啥

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

多重比较校正

T检验的effect size是什么?有什么含义吗?

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

z test和t test什么区别?

F检验的使用场景

  随便看看

点击率的95%置信区间该怎么算?

柯西分布没有数学期望

ARIMA模型中的三个参数(p, d, q)都是什么意思?

numpy.array从行向量转为列向量

非方阵的逆是什么