【发布时间】:2016-02-02 04:53:27
【问题描述】:
下面的代码是计算logit-正态分布随机变量的期望,参数为mu和sigma(mu是mu,lsig是sigma的对数)。
fun5 = function(y,mu=mu0,lsig=lsig0) {
res = exp(y)/(1+exp(y)) * 1/sqrt(2*pi)/exp(lsig) * exp(-(y-mu)^2/2/exp(lsig)^2)
return(res)
}
el = 17
integrate(fun5,-el,el,mu=0.3434108,lsig=-3.5)$value
我们应该把这个函数从负无穷积分到正无穷大,但我不知道怎么做,只知道有限区间的积分。 因此,我尝试从“足够宽”的区间(从 -el 到 +el)进行整合。 当 'el' 大于 0.5 时,它似乎可以正常工作(此积分的真实值为 0.585)。 但是当 el 是 14 和 15 时,这很奇怪。有人知道为什么会这样吗?
> el = 10
> integrate(fun5,-el,el,mu=0.3434108,lsig=-3.5)$value
[1] 0.585
> el = 13
> integrate(fun5,-el,el,mu=0.3434108,lsig=-3.5)$value
[1] 0.585
> el = 14
> integrate(fun5,-el,el,mu=0.3434108,lsig=-3.5)$value
[1] 2.975338e-05
> el = 15
> integrate(fun5,-el,el,mu=0.3434108,lsig=-3.5)$value
[1] 1.134474e-05
> el = 16
> integrate(fun5,-el,el,mu=0.3434108,lsig=-3.5)$value
[1] 0.585
【问题讨论】:
-
你可以使用
integrate(fun5, -Inf, Inf, mu = 0.3434108, lsig = -3.5)