Ожидаемое значение команды R и JAGS - PullRequest
0 голосов
/ 02 февраля 2019

Предполагая, что это моя байесовская модель, как я могу рассчитать ожидаемое значение моего распределения Вейбулла?Есть ли команда для определения ожидаемого значения распределения Вейбулла в R и JAGS?Спасибо

model{  
#likelihood function  
for (i in 1:n)   
    {  
        t[i] ~ dweib(v,lambda)#MTBF    

        }    

#Prior for MTBF  
v ~ dgamma(0.0001, 0.0001)   
lambda ~ dgamma(0.0001, 0.0001)     
  }  

  #inits
list(v=1, lambda=1,mu=0,tau=1)

#Data
list(n=10, t=c(5.23333333,8.95,8.6,230.983333,1.55,85.1,193.033333,322.966667,306.716667,1077.8)

1 Ответ

0 голосов
/ 04 февраля 2019

Среднее или ожидаемое значение распределения Вейбулла с использованием момента методов с параметрами v и lambda составляет:

лямбда * Гамма (1 + 1)/ v)

JAGS не имеет функции Gamma, но мы можем использовать обходной путь с функцией, которая имеет: logfact.Вы можете добавить эту строку в свой код и отслеживать производный параметр exp_weibull.

exp_weibull <- lambda * exp(logfact(1/v))

Гамма только факториальная (x - 1), поэтому среднее значение немного упрощается.Ниже я иллюстрирую некоторые функции R, как этот вывод одинаков.

lambda <- 5
v <- 2

mu_traditional <- lambda * gamma(1 + 1/v)
mu_logged <- lambda * exp(lfactorial(1/v))
identical(mu_traditional, mu_logged)
[1] TRUE

РЕДАКТИРОВАТЬ: Кажется, что JAGS также имеет журнал распределения гамма: loggam.Таким образом, другое решение будет

exp_weibull <- lambda * exp(loggam(1 + 1/v))

...