defmean_interval(mean=None, std=None, sig=None, n=None, confidence=0.95):"""
mean:样本均值
std:样本标准差
sig: 总体方差
n: 样本量
confidence:置信水平
功能:构建总体均值的置信区间
"""
alpha =1- confidence
z_score = scipy.stats.norm.isf(alpha /2)# z分布临界值
t_score = scipy.stats.t.isf(alpha /2, df =(n-1))# t分布临界值if n >=30and sig !=None:
me = z_score*sig / np.sqrt(n)# 误差
lower_limit = mean - me
upper_limit = mean + me
if n >=30and sig ==None:
me = z_score*std / np.sqrt(n)
lower_limit = mean - me
upper_limit = mean + me
if n <30and sig ==None:
me = t_score*std / np.sqrt(n)
lower_limit = mean - me
upper_limit = mean + me
return(round(lower_limit,3)