statsmodels.stats.weightstats.ztest(x1, x2=None, value=0, alternative='two-sided', usevar='pooled', ddof=1.0)[source]

test for mean based on normal distribution, one or two samples

In the case of two samples, the samples are assumed to be independent.

x1array_like, 1-D or 2-D

first of the two independent samples

x2array_like, 1-D or 2-D

second of the two independent samples


In the one sample case, value is the mean of x1 under the Null hypothesis. In the two sample case, value is the difference between mean of x1 and mean of x2 under the Null hypothesis. The test statistic is x1_mean - x2_mean - value.


The alternative hypothesis, H1, has to be one of the following

‘two-sided’: H1: difference in means not equal to value (default) ‘larger’ : H1: difference in means larger than value ‘smaller’ : H1: difference in means smaller than value

usevarstring, ‘pooled’

Currently, only ‘pooled’ is implemented. If pooled, then the standard deviation of the samples is assumed to be the same. see CompareMeans.ztest_ind for different options.


Degrees of freedom use in the calculation of the variance of the mean estimate. In the case of comparing means this is one, however it can be adjusted for testing other statistics (proportion, correlation)


test statisic


pvalue of the t-test


usevar not implemented, is always pooled in two sample case use CompareMeans instead.