# -*- coding:utf-8 -*-
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#第一步画分布图像
mean = 36.66
std = 5.215
# 根据均值、标准差,求指定范围的正态分布概率值
def normfun(x):
pdf = stats.norm.cdf(x,mean,std)
return pdf
X = np.arange(0, int(2*mean), 0.01)
Y= [normfun(x) for x in X]
# 设定 y 轴,载入刚才的正态分布函数
plt.plot(X, Y) # 这里画出理论的正态分布概率曲线
plt.show()
#分别求千分之一 万分之一 十万分之一 百万分之一的特
p= stats.norm.ppf(0.001,mean,std)
str = "qian fenzhiyi: "
print(str,round(p,3))
p= stats.norm.ppf(0.0001,mean,std)
str = "wan fenzhiyi: "
print(str,round(p,3))
p= stats.norm.ppf(0.0001,mean,std)
str = "shiwan fenzhiyi: "
print(str,round(p,3))
p= stats.norm.ppf(0.0001,mean,std)
str = "baiwan fenzhiyi: "
print(str,round(p,3))
#求置信度区间
#65%
conf_intveral = stats.norm.interval(0.65, loc=mean, scale=std)
intveral = [round(x,3)for x in conf_intveral]
print("65%: ",intveral)
conf_intveral = stats.norm.interval(0.95, loc=mean, scale=std)
intveral = [round(x,3)for x in conf_intveral]
print("95%: ",intveral)
conf_intveral = stats.norm.interval(0.99, loc=mean, scale=std)
intveral = [round(x,3)for x in conf_intveral]
print("99%: ",intveral)
conf_intveral = stats.norm.interval(0.999, loc=mean, scale=std)
intveral = [round(x,3)for x in conf_intveral]
print("99.9%: ",intveral)