【问题标题】:Modified Weibull Error - the function failed to estimate the parameters, with the error code 100修正 Weibull 错误 - 函数估计参数失败,错误代码 100
【发布时间】:2019-03-14 20:13:40
【问题描述】:

我正在尝试估计 Almalki 和 Yuan 的修正 Weibull 分布 (NMW) 参数,但遇到以下错误:

AIC 的值只是非常负。出了点问题。我知道在文献中 AIC 可能是负数,但我相信估计或函数中发生了一些错误。错误可以在估计、fitdist 或类似的东西中吗?有人帮帮我吗?

文章

 https://www.sciencedirect.com/science/article/pii/S0951832012002396

累积函数

  pnmw = function(x, alpha, beta, gama,theta, lambda)
{
  1 - exp(-alpha*(x^(theta))-beta*(x^(gama))*exp(lambda*x))
}

密度函数

       dnmw = function(x, alpha, beta, gama, theta, lambda)
{
  (alpha * theta * (x^(theta - 1)) + beta*(((gama+lambda*x)*(x^(gama-1))*exp(lambda*x))*exp(-alpha*x^(theta)-beta*x^(gama)*exp(lambda*x)))) 
}

危险函数

   hnmw = function(x, alpha, beta, gama, theta, lambda)
{
  alpha * theta * x^(theta - 1) + beta * (gama  + lambda * x) * 
    x^(gama - 1) * exp(lambda * x)
}

生存函数

   snmw = function(x, alpha, beta, gama, theta, lambda)
{
  exp(-alpha*x^(theta)-beta*x^(gama)*exp(lambda*x))
}

估计

paramYuan = fitdist(data = dadosp, distr = 'nmw', start = c(0.05,5,1.25,5,0.05),lower = c(0, 0))

图片

 [https://i.stack.imgur.com/XDxwC.png][1] Image
    [https://i.stack.imgur.com/87Cid.png][1] Image Estimation
    [https://i.stack.imgur.com/FScsM.png][3] Image Functions

示例:

    dadosp = c(240.3,71.9,271.3, 186.3,241,253,287.4,138.3,206.9,176,270.4,73.3,118.9,203.1,139.7,31,269.6,140.2,205.1,133.2,107,354.6,277,27.6,186,260.9,350.4,242.6,292.5, 112.3,242.8,310.7,309.9,53.1,326.5,145.7,271.5, 117.5,264.7,243.9,182,136.7,103.8,188.3,236,419.8,338.6,357.7)

[https://i.stack.imgur.com/U0KwD.png][1]图片

【问题讨论】:

  • 你应该看看curve(snmw(x,0.05,5,1,1,0.05)),看看你脑子里的灯泡是否熄灭了。

标签: r statistics distribution fitdistrplus


【解决方案1】:

让我们在密度函数上做一些测试。

dnmw = function(x, alpha, beta, gama, theta, lambda)
   {
(alpha * theta * (x^(theta - 1)) + beta*(((gama+lambda*x)*(x^(gama-1))*exp(lambda*x))*
     exp(-alpha*x^(theta)-beta*x^(gama)*exp(lambda*x)))) 
    }
 curve(dnmw(x,4,.3,2.4,2,0.05))

我认为我们需要得出结论,这不是一个好的密度函数,因为它的积分明显大于 1。另请查看文档:http://uksacb.org/sites/default/files/webform/Research%20Paper1_A%20new%20modi%EF%AC%81ed%20Weibull%20distribution_0.pdf

因此,将代码放入支持 R 的编辑器中,然后查看与最右边的括号匹配的位置:

dnmw = function(x, alpha, beta, gama, theta, lambda)
{
(alpha * theta * (x^(theta - 1)) + beta*(((gama+lambda*x)*(x^(gama-1))*exp(lambda*x))*
#^
             exp(-alpha*x^(theta)-beta*x^(gama)*exp(lambda*x)))) 
#                                                              ^
}

它与最左边的匹配!但是那个左括号应该与exp(lambda*x) 右侧的那个相匹配,以隔离我所说的规范化术语。因此,在该位置放置一个正确的括号,并尝试找出其他地方缺少括号的位置。 ....经过多次修正,我们得到:

dnmw = function(x, alpha, beta, gama, theta, lambda)
{
  (alpha*theta*(x^(theta - 1)) +beta*( (gama+lambda*x) * x^(gama-1)*
  exp(lambda*x) ))*exp(-alpha*x^(theta)-beta*x^(gama)*exp(lambda*x))
}

现在,在检查图形测试时,事情看起来更明智了。但我也认为你需要确保你的其他分布函数没有类似的错误。

【讨论】:

  • 我还有第二个问题。我正在尝试戴尔的参数,我已经提出了建议您使用的密度函数。 Debian给出以下错误“”函数无法估计参数,错误代码100“”,值得记住的是我使用的是您提供的图表参数的值。我该如何犯错?我会将错误添加到问题中。
  • 我不知道最近的错误的来源。我怀疑将 5 个参数分布拟合到相对较少的点的努力在统计上可能不合适,或者可能 5 个参数对于任何数据集来说都太多了。我认为纠正您的语法错误会有所帮助。现在的修订版能够复制我引用的参考文献中呈现的曲线。
  • 好的,:'(还是谢谢你!
猜你喜欢
  • 2022-01-02
  • 2019-03-14
  • 1970-01-01
  • 2018-12-01
  • 2021-02-25
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
相关资源
最近更新 更多