R中物流配送的整合

Integration of Logistic distribution in R

Logistic分布的概率密度函数$f(x) = e^{-x} (1+e^{-x})^{-2}$

LL_cdf <- function(x) ((1+exp(-x))^(-1) # cumulative distribution function of logistic distribution

LL_pdf <- function(x) ( (exp(-x))*(1+exp(-x))^-2 ) # Probability density function (pdf) of logistic distribution

其支持的任何发行版的pdf集成必须是一个。我们在其支持 $x \in [-\infty,\infty]$ 上集成了 logistic distribution 的 pdf,但它给出了错误消息。我们在下面的代码 中提到了 错误消息。为什么 logistic 分布的 pdf 不整合其支持 $x \in [-\infty,\infty]$ in R?

integrate( LL_pdf, lower = -Inf, upper = Inf)$value 

Error in integrate(LL_pdf, lower = -Inf, upper = Inf) : 
  non-finite function value

它与密度函数的实现有关,因为它会为较大的负值生成 Inf/Inf = NaN 类型的比率

> LL_pdf(-1000)
[1] NaN

函数的实现应该避免这种数值问题(0/0, Inf/Inf).

一个解决方案是实现对数密度,它在数值上是稳定的,return对数密度的指数,这避免了这种问题:

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