Следующий код предназначен для вычисления математического ожидания случайной величины логит-нормального распределения с параметрами mu и sigma (mu is mu, а lsig - логарифм сигмы).Странное поведение функции «интегрировать»
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). Но когда эль 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
Вы можете просто использовать' интеграции (fun5, -Inf, Inf, мю = 0,3434108, LSIG = -3,5) ' – Dason