标准正态分布表
两总体均值Z检验
自己实现
def twoSampZ(u1, u2,sd1, sd2, n1, n2):from numpy import sqrt, abs, roundfrom scipy.stats import normpooledSE = sqrt(sd1**2/n1 + sd2**2/n2)z = (u1 - u2)/pooledSEpval = 2*(1 - norm.cdf(abs(z)))return round(z, 3), round(pval, 4)
norm.cdf
调用stats
statsmodels.stats.weightstats.ztest(x1,x2, value=0, alternative=‘two-sided’, usevar=‘pooled’, ddof=1.0)
插眼
x1:待检验数据集; x2:待检验数据集;默认为None,双样本检验时不为None;
value:在一个样本中,value是原假设下x1的均值。在两个样本中,value为原假设下x1均值与x2均值之差;
alternative:str,默认为’two-sided’,双尾检验;右尾检验,‘larger’;左尾检验,‘smaller’;
usevar:str,默认为’pooled’,此时认为样本的标准偏差是相同的
两总体比率指标Z检验
自己实现
def twoSampZ_rate(p1, p2,n1, n2):from numpy import sqrt, abs, roundfrom scipy.stats import normpooledSE = sqrt(p1*(1-p1)/n1 + p2*(1-p2)/n2)z = (p1 - p2)/pooledSE# 双尾检验pval = 2*(1 - norm.cdf(abs(z)))return round(z, 3), round(pval, 4)
调用stats
statsmodels.stats.proportion.proportions_ztest(count, nobs, value=None, alternative='two-sided', prop_var=False)
插眼
z_score,p_value=statsmodels.stats.proportion.proportions_ztest([count1,count2], [n1,n2], value=0, alternative='two-sided',)