Weibull分布

标签:
杂谈 |
Matlab Statistics Toolbox的Help里关于Weibull分布的pdf
话说 Weibull分布的形状参数决定其分布的形状,如果其等于1的话,等同于指数分布,大概等于3左右形状类似于正态分布。的确如下图,形状参数较大程度的影响着Weibull分布概率密度曲线形状。(此图形来源于Weibull++)
http://www.weibull.com/LifeDataWeb/ch6weibu__73.gif
方法一从“最相似”的角度求解
我们利用前不久介绍的 fminsearch 方法通过拟合曲线来求一个最适合的形状参数,使之形状最符合正态分布。
基本方法是先给定一个正态分布的尺度参数,然后不断调整Weibull分布的两个参数和正态分布的位置参数,使这两条曲线最接近。在实际应用中,把需要变化的三个参数组成一个数组,然后利用fminsearch去求方差函数的最小值即可得到解。
这是计算的主程序:
sigma=1;
t=-2:0.001:10;
opt=optimset('fminsearch');
opt.TolX=0.00001;
opt.Display='off';
[p mse]=fminsearch(@wblparase,[max(t)/2 2 max(t)/2],opt,t,sigma)
nf=normpdf(t,p(3),sigma);
wf=wblpdf(t,p(1),p(2));
plot(t,nf,'b-');
hold on
plot(t,wf,'r-');
legend('normal pdf','weibull pdf')
function se= wblparase(p,t,sigma)
f=normpdf(t,p(3),sigma);
se=var(wblpdf(t,p(1),p(2))-f);
结果如下:
p =
mse =
http://www.newsenst.com/upload/201001211632450323.png
从图中可知,当威布尔分布的形状参数取3.458时,其分布形状最接近于正态分布。从图中可以看到,这时候,两个分布的形状非常相似。这时候的最小方差为mse=1.201e-5,如果想继续减小方差,可以在optimset变量opt中设置。
再来看看这两个分布的均值和均方差:
正态分布:mu=3.02212033838185,sigma=1
威布尔分布:mu=p(1)*gamma(1+1/p(2))=3.02380226105978
(后者可通过wblstat函数得到)从这些统计特征可以看到,这两个分布还是非常接近的。
这是fminsearch的又一个应用。这个函数非常强大,但它是无约束优化,对初始值的要求比较严格。因此,很多情况下这个方法只能找到初值附近的极小值,所以使用的时候需加小心。
方法二从概率密度函数偏度系数角度求解
在一般情况下,比较有说服力的计算方法是采用偏度系数来计算的。我们从Weibull分布的概率密度曲线随着形状参数的变化可知。当形状参数较小时,相对于正态分布,它右偏(或正偏),即是在右边有较长的尾巴,当形状参数较大时,它左偏(负偏),即是在左偏有较长的尾巴。这个偏度系数对应于此偏向分别为正和负。那么,这就可以说,当偏度系数为0时,就是最“像"正态分布了。事实上,正态分布的偏度系数就为0。这个定义也是符合官方的,权威的定义。因此,我们来演示一下用matlab解出这个形状参数,以和上面的方法作一对比。
Weibull分布的偏度系数的定义为:
http://www.newsenst.com/upload/201001212043432255.gif
要让偏度系数等于零,等价于:
http://www.newsenst.com/upload/201001212114134207.gif
解此方程可用matlab的fzero函数。程序如下;
scl=1;
t=linspace(0,4);
opt=optimset('fzero');
opt.TolX=0.00001;
opt.Display='off';
msp=fzero(@wblskewness,3,opt)
[mu sig]=wblstat(scl,msp);
sig=sqrt(sig);
nf=normpdf(t,mu,sig);
wf=wblpdf(t,scl,msp);
plot(t,nf,'b-');
hold on
plot(t,wf,'r-');
legend('normal pdf','weibull pdf')
function sk=wblskewness(shp)
scl=1;
lam=scl;k=shp;
[mu sig]=wblstat(scl,shp);
sig=sqrt(sig);
sk=gamma(1+3/k)*lam^3-3*mu*sig^2-mu^3;
计算结果如下:
msp=
图形对比如下:
http://www.newsenst.com/upload/201001212049531624.PNG
此结果表明,当形状参数为3.602时,Weibull分布的偏度系数为0,按理应最符合正态分布。从图像中可以看出,两条曲线在两端吻合很好,在中间较差。而和方法一恰好相反(中间大部分拟合较好,两端拟合较差)。但总体来看,这两个方法的优劣很难分辨。这时候,我们看看这两条曲线的方差:
se=var(wf-nf)
se =
这时候得到的方差并没有方法一得到的小(1.201e-5).说明这两者之间是有差异的。
然而,为何大部分书籍上采用的都是3.602而没有采用第一个结果呢?这与很多因素有关。其中最主要的两个因素是:
1.方法一不稳定,取不同的区间范围得到不同的拟合值;
2.方法二是由偏度系数的定义的来,具有较高的稳定性。
偏态和峰度的测定
峰度(Kurtosis)和偏度(Skewness)
峰度是描述总体中所有取值分布形态陡缓程度的统计量。这个统计量需要与正态分布相比较,峰度为0表示该总体数据分布与正态分布的陡缓程度相同;峰度大于0表示该总体数据分布与正态分布相比较为陡峭,为尖顶峰;峰度小于0表示该总体数据分布与正态分布相比较为平坦,为平顶峰。峰度的绝对值数值越大表示其分布形态的陡缓程度与正态分布的差异程度越大。
峰度的具体计算公式为:
http://images.51cto.com/files/uploadimg/20100408/161046770.jpg |
偏度与峰度类似,它也是描述数据分布形态的统计量,其描述的是某总体取值分布的对称性。这个统计量同样需要与正态分布相比较,偏度为0表示其数据分布形态与正态分布的偏斜程度相同;偏度大于0表示其数据分布形态与正态分布相比为正偏或右偏,即有一条长尾巴拖在右边,数据右端有较多的极端值;偏度小于0表示其数据分布形态与正态分布相比为负偏或左偏,即有一条长尾拖在左边,数据左端有较多的极端值。偏度的绝对值数值越大表示其分布形态的偏斜程度越大。
偏度的具体计算公式为:
http://images.51cto.com/files/uploadimg/20100408/161111811.jpg |