首先可以利用fitdistr函数求得weibull分布的形状参数和尺寸参数,假设数据为x:
library(MASS) #fitdistr需要利用MASS包fitdistr(x, densfun = "weibull",lower=0)
得到形状参数shape与尺度参数scale
然后利用ks.test进行检验:
ks.test(jitter(x),"pweibull",shape,scale)上边的jitter用来做小扰动,因为如果x中有重复数据的话ks.test会报错,如果x中没有重复数据则不需要jitter。shape是得到的形状参数,scale是得到的尺度参数。
ks.test得到两个结果,一个是D,越小越好,一个是p-value,这个值要大于0.05
matlab 中可以利用wblrnd命令产生所需的服从韦布尔分布的随机数,如下:R = wblrnd(A,B)
R = wblrnd(A,B,m,n,...)
R = wblrnd(A,B,[m,n,...])
其中,A为尺度参数,B为形状参数。m和n为所需要的数的形式,比如说生成m行*n列的矩阵。
matlab 内部解释为:
This MATLAB function generates random numbers for the Weibull distribution with
scale parameter, A and shape parameter, B.
R = wblrnd(A,B)
R = wblrnd(A,B,m,n,...)
R = wblrnd(A,B,[m,n,...])