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.
1个回答
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
				补充一下,如果零假设是均值小于0,if else里面的条件要反一下。
				- 
             高代兄
           
				
          
          2017-03-09 23:55
			
    
  相关讨论
  随便看看