python标准正态分布函数,正态分布的概率密度函数 python
在文章目录中定义gddkf拟合方法的原理。python代码实现参考
gddkf的定义
本文为博主原创文章,未经博主允许不得转载。
double gddkf的累积分布函数CDF为f(x)=1 exp)xba)f)x)=1-exp(--(frac { x } { b } a)f)x)=1 exp)bxa)
概率密度函数如下:
f(x))ab)a1exp(XB)a)f)x)=)frac(a)b))^{a-1}exp(-)frac { x } b }))a-1)frac)x
这里,a0是形状参数,b0是比例参数。
拟合方法的原理是用最小二乘法求解参数A和B:
如果取累积分布函数两边的对数,就会得到ln[ln(1f(x)]=a l n]。
x)a l n b ln[-ln(1-F(x))]=a ln(x)-a lnb ln[ln(1 F(x))]=AlN(x)-alnb
覆盖到Y=Bx A,则:
Y=l n[l n(1 F(x))]Y=ln[-ln(1 F(x))]Y=ln[1 F(x))]
X=l n ( x ) X=ln(x) X=ln(x)
B=a B=a B=a
A=A l n b A=-alnb A=alnb
用最小二乘法求解系数:
b=(x I xˇ)(y I yˇ)(x I xˇ)2 b=\ frac { \ sum(x _ I-\ bar x)(y _ I-\ bar y)} { \ sum(x _ I-\ bar x)^2} b=(Xi xˇ)2(Xi xˇ)(yi yˇ)
A=Yˇb XˇA=\ bar { Y }-b \ bar { X } A=Yˇb Xˇ
a=B a=B a=B
B=e X p[(YˇB Xˇ)/a]B=exp[-(\ bar { Y }-B \ bar { X })/a]B=exp[(YˇB Xˇ)/a]
大蟒代码实现来自scipy。统计导入exponweibimport作为NP导入统计模型。API作为SMI导入matplotlib。py绘图为pltimport mathdef Cal _ Weibull _ CDF(数据):CDF=sm。分发。ecdf(数据)data _ min=min(数据)data _ max=max(数据)X=NP。Lin空间(data _ min 1.0,data_max-1.0,num=100,endpoint=True)X=NP。log(X)# X=ln(X)Y用exponweib生成符合(统计学家)威伯尔(或韦布尔)分布的随机数组n=100 #样本数sk=2.89 # shape lam=1.95 # scale OBS=expon weib。RVs(k,lam,scale=20,size=n)ocdf=sm。分发。ecdf(OBS)#拟合fcdf=Cal_Weibull_CDF(obs) #画图x=np.linspace(0,50,num=100,endpoint=True)y1=ocdf(x)y2=fcdf(x)PLT。图()PLT。plot(x,y1,color=蓝色,label=O)plt.plot(x,y2,color=黑色,label=F)plt.legend()plt.show()拟合结果:
参考(统计学家)威伯尔(或韦布尔)分布参数估计方法及其应用_张精明的曲奇
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。