首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weibull分布参数的求取

Weibull分布参数的求取
EN

Stack Overflow用户
提问于 2018-04-25 20:41:46
回答 1查看 263关注 0票数 0

我试图通过求解两个联立方程来估计威布尔分布的参数: F(Q1)=0.25和F(Q3)=0.75。代数上,我知道答案应该是:形状参数a=0.8038,缩放参数b=1889,但是无论我把什么作为我的起始值p,我得到的答案是非常不同的。为什么下面的工作不工作呢?

代码语言:javascript
复制
# 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

(我试着在R基地做这件事,没有额外的包装。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-25 22:54:50

需要进行两项修改。注释暗示了第一个问题,但我没有使用两个等式,而是使用了两个abs()术语。但在我添加typsize-argument之前,这并没有产生准确的结果:

代码语言:javascript
复制
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参数的默认设置似乎没有多大帮助。我之前的大部分工作是返回一个3的代码,这意味着:“最后的全局步骤未能找到低于估计值的点。要么估计值是函数的近似局部最小值,要么步骤太小。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50031023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档