How to perform two-sample one-tailed t-test with numpy/scipy

前端 未结 5 1022
[愿得一人]
[愿得一人] 2020-12-07 20:35

In R, it is possible to perform two-sample one-tailed t-test simply by using

> A = c(0.19826790, 1.36836629, 1.37950911, 1.46951540, 1.481977         


        
5条回答
  •  佛祖请我去吃肉
    2020-12-07 21:21

        from scipy.stats import ttest_ind  
        
        def t_test(x,y,alternative='both-sided'):
                _, double_p = ttest_ind(x,y,equal_var = False)
                if alternative == 'both-sided':
                    pval = double_p
                elif alternative == 'greater':
                    if np.mean(x) > np.mean(y):
                        pval = double_p/2.
                    else:
                        pval = 1.0 - double_p/2.
                elif alternative == 'less':
                    if np.mean(x) < np.mean(y):
                        pval = double_p/2.
                    else:
                        pval = 1.0 - double_p/2.
                return pval
    
        A = [0.19826790, 1.36836629, 1.37950911, 1.46951540, 1.48197798, 0.07532846]
        B = [0.6383447, 0.5271385, 1.7721380, 1.7817880]
    
        print(t_test(A,B,alternative='greater'))
        0.6555098817758839
    

提交回复
热议问题