R语言中一组数据服从威布尔分布,怎么判断拟合的效果

Python036

R语言中一组数据服从威布尔分布,怎么判断拟合的效果,第1张

首先可以利用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

weibull分布的参数:

x <- rweibull(1000,2,scale = 8)

hist(x,probability=TRUE,col=gray(.9),main="weibull distribution")

curve(dweibull(x,2,8),add=T)

Origin8.0以及更高的版本自带BET拟合的公式。

你只需要将单组数据做图之后【注意,一定是单组数据,Origin无法对多组数据同时拟合,只能一组一组来拟合】,点击Origin菜单栏上的 Analysis——>Fitting ——>Nonlinear Curve Fit ——>Open Dialog

在弹出的对话框中,在 Category选项中选择 Rational,在Function选项中选择 BET,然后点Fit 就可以了