Это связано с вашей реализацией функции плотности, поскольку она производит rat ios типа Inf/Inf = NaN
для больших отрицательных значений
> LL_pdf(-1000)
[1] NaN
Реализация функции должна избегать такого рода числовые проблемы (0/0
, Inf/Inf
).
Решение состоит в том, чтобы реализовать плотность журналов, которая является численно стабильной, и возвращать экспоненту плотности журналов, что позволяет избежать таких проблем:
LL_pdf2 <- Vectorize(function(x){
log.val <- -x -2*log(1+exp(-x))
return(exp(log.val))
}) # Probability density function (pdf) of logistic distribution
Тогда вы получите
> LL_pdf2(-1000)
[1] 0
>
> integrate( LL_pdf2, lower = -Inf, upper = Inf)$value
[1] 1
. Вы можете сравнить эти результаты с результатами, полученными с помощью dlogis
> dlogis(-1000)
[1] 0
> integrate( dlogis, lower = -Inf, upper = Inf)$value
[1] 1