¿Es posible integrar analíticamente

10

En primer lugar, por integración analítica, quiero decir, ¿hay una regla de integración para resolver esto en oposición a los análisis numéricos (como las reglas trapezoidales, Gauss-Legendre o Simpson)?

Tengo una función donde es la función de densidad de probabilidad de una distribución lognormal con parámetros y . A continuación, abreviaré la notación a y usaré para la función de distribución acumulativa.f(x)=xg(x;μ,σ)

g(x;μ,σ)=1σx2πe12σ2(log(x)μ)2
μσg(x)G(x)

Necesito calcular la integral

abf(x)dx.

Actualmente, estoy haciendo esto con integración numérica usando el método Gauss-Legendre. Como necesito ejecutar esto muchas veces, el rendimiento es importante. Antes de analizar la optimización de los análisis numéricos / otras piezas, me gustaría saber si hay alguna regla de integración para resolver esto.

Intenté aplicar la regla de integración por partes, y llegué a esto, donde estoy atascado nuevamente,

  1. udv=uvvdu .

  2. u=xdu=dx

  3. dv=g(x)dxv=G(x)

  4. uvvdx=xG(x)G(x)dx

Estoy atascado, ya que no puedo evaluar el .G(x)dx

Esto es para un paquete de software que estoy construyendo.

Rosh
fuente
@Rosh, por quieres decir densidad de probabilidad de distribución log-normal? lognormal
mpiktas
1
Esto se puede expresar como una constante por una diferencia de dos CDF normales. Los cdf normales se calculan de manera eficiente utilizando la aproximación racional de Chebyshev de W. Cody. No debería necesitar, y casi indudablemente no debería preferir , alternativas de integración numérica a esto. Si necesita más detalles, puedo publicarlos.
Cardenal
@mpiktas, Sí, lognormal es la función de densidad de probabilidad y lognormalCDF es la función de densidad acumulativa.
Rosh
3
@Rosh tiene una distribución lognormal significa que se distribuye normalmente. Por lo tanto, sustituya en su integral original . El integrando es un exponencial cuyo argumento es una función cuadrática de . Completar el cuadrado lo convierte en un múltiplo de un PDF normal, por lo que su respuesta se escribe en términos del CDF normal y los exponenciales de los puntos finales originales. Hay muchas buenas aproximaciones al CDF normal (un múltiplo de la función de error). xlog(x)x=exp(y)y
whuber
1
Sí, @whuber y yo estábamos describiendo lo mismo. Debería obtener algo como donde y y denota el cdf normal. Tenga en cuenta que, dependiendo de los valores de , , y , hay formas de reescribir esta expresión para que sea más estable numéricamente. eμ+12σ2(Φ(β)Φ(α))β=(log(b)(μ+σ2))/σα=(log(a)(μ+σ2))/σΦ()abμσ
cardenal

Respuestas:

15

Respuesta corta : No, no es posible, al menos en términos de funciones elementales. Sin embargo, existen algoritmos numéricos muy buenos (¡y razonablemente rápidos!) Para calcular dicha cantidad y, en este caso, deberían preferirse a cualquier técnica de integración numérica.

Cantidad de interés en términos de cdf normal

La cantidad que le interesa en realidad está estrechamente relacionada con la media condicional de una variable aleatoria lognormal. Es decir, si se distribuye como lognormal con los parámetros y , entonces, usando su notación, Xμσ

abf(x)dx=ab1σ2πe12σ2(log(x)μ)2dx=P(aXb)E(XaXb).

Para obtener una expresión para esta integral, realice la sustitución . Al principio, esto puede parecer un poco desmotivado. Pero, tenga en cuenta que usando esta sustitución, y simplemente cambiando las variables, obtenemos donde y .z=(log(x)(μ+σ2))/σx=eμ+σ2eσz

abf(x)dx=eμ+12σ2αβ12πe12z2dz,
α=(log(a)(μ+σ2))/σβ=(log(b)(μ+σ2))/σ

Por lo tanto, donde es el estándar Función de distribución acumulativa normal.

abf(x)dx=eμ+12σ2(Φ(β)Φ(α)),
Φ(x)=x12πez2/2dz

Aproximación numérica

A menudo se afirma que no existe una expresión de forma cerrada conocida para . Sin embargo, un teorema de Liouville de principios de 1800 afirma algo más fuerte: no existe una expresión de forma cerrada para esta función . (Para la prueba en este caso particular, vea el artículo de Brian Conrad ).Φ(x)

Por lo tanto, nos queda usar un algoritmo numérico para aproximar la cantidad deseada. Esto se puede hacer dentro del punto flotante de doble precisión IEEE a través de un algoritmo de WJ Cody's. Es el algoritmo estándar para este problema y, al utilizar expresiones racionales de un orden bastante bajo, también es bastante eficiente.

Aquí hay una referencia que analiza la aproximación:

WJ Cody, aproximaciones racionales de Chebyshev para la función de error , matemática. Comp. , 1969, pp.631-637.

También es la implementación utilizada tanto en MATLAB como en , entre otros, en caso de que sea más fácil obtener un código de ejemplo.R

Aquí hay una pregunta relacionada, en caso de que esté interesado.

cardenal
fuente