Модифицированная ошибка Вейбулла - функция не смогла оценить параметры, с кодом ошибки 100 - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь оценить параметры модифицированного распределения Вейбулла (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] ИЗОБРАЖЕНИЕ

1 Ответ

0 голосов
/ 10 октября 2018

Давайте проведем небольшое тестирование с вашими усилиями по функции плотности.

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))

enter image description here

Я думаю, нам нужно сделать вывод, что это НЕхорошая функция плотности, поскольку ее интеграл явно больше 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))
}

enter image description here

И теперь все выглядит более разумным при рассмотрении графического теста.Но я также думаю, что вам нужно убедиться, что ваши другие функции распределения не имеют подобных ошибок.

...