寻找 Weibull 分布的参数
Finding parameters of the Weibull distribution
我试图通过求解两个联立方程来估计 Weibull 分布的参数:
F(Q1)=0.25 和 F(Q3)=0.75。
代数上,我知道答案应该是:
形状参数a=0.8038,尺度参数b=1889
但是无论我把什么作为我的起始值p,我都会得到截然不同的答案。
为什么下面的操作不起作用?
# Sample quartiles
Q1<-401
Q3<-2836.75
# function: |F(Q1)+F(Q3)-1| so perfect fit should = 0
f<-function(params) {
abs(pweibull(Q1,params[1],params[2])+pweibull(Q3,params[1],params[2])-1)
}
# minimise function, using starting values a=1, b=2000
p<-c(1,2000)
estimates<-nlm(f,p); estimates
(我正在尝试在 base R 中执行此操作,没有额外的包。)
需要进行两项修改。注释中暗示了第一个,但我没有使用两个方程式,而是简单地使用了两个 abs() 项。但这并没有产生准确的结果,直到我添加了 typsize
-argument:
f<-function(params) {
abs(pweibull(Q1,params[1],params[2])-0.25) + abs(pweibull(Q3,params[1],params[2])-0.75)
}
p<-c(shape=1, scale=2000)
estimates<-nlm(f,p, fscale=.1, typsize=c(1,1500) ); estimates
#####------
$minimum
[1] 5.548144e-07
$estimate
[1] 0.8037664 1889.4379691
$gradient
[1] -1.936062e-01 5.132625e-05
$code
[1] 2
$iterations
[1] 13
fscale
参数 default 似乎没有太大帮助。我之前的大部分努力都是返回代码 3,这意味着:"last global step failed to locate a point lower than estimate. Either estimate is an approximate local minimum of the function or steptol is too small."
我试图通过求解两个联立方程来估计 Weibull 分布的参数: F(Q1)=0.25 和 F(Q3)=0.75。 代数上,我知道答案应该是: 形状参数a=0.8038,尺度参数b=1889 但是无论我把什么作为我的起始值p,我都会得到截然不同的答案。 为什么下面的操作不起作用?
# Sample quartiles
Q1<-401
Q3<-2836.75
# function: |F(Q1)+F(Q3)-1| so perfect fit should = 0
f<-function(params) {
abs(pweibull(Q1,params[1],params[2])+pweibull(Q3,params[1],params[2])-1)
}
# minimise function, using starting values a=1, b=2000
p<-c(1,2000)
estimates<-nlm(f,p); estimates
(我正在尝试在 base R 中执行此操作,没有额外的包。)
需要进行两项修改。注释中暗示了第一个,但我没有使用两个方程式,而是简单地使用了两个 abs() 项。但这并没有产生准确的结果,直到我添加了 typsize
-argument:
f<-function(params) {
abs(pweibull(Q1,params[1],params[2])-0.25) + abs(pweibull(Q3,params[1],params[2])-0.75)
}
p<-c(shape=1, scale=2000)
estimates<-nlm(f,p, fscale=.1, typsize=c(1,1500) ); estimates
#####------
$minimum
[1] 5.548144e-07
$estimate
[1] 0.8037664 1889.4379691
$gradient
[1] -1.936062e-01 5.132625e-05
$code
[1] 2
$iterations
[1] 13
fscale
参数 default 似乎没有太大帮助。我之前的大部分努力都是返回代码 3,这意味着:"last global step failed to locate a point lower than estimate. Either estimate is an approximate local minimum of the function or steptol is too small."