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.
Necesito calcular la integral
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,
.
Estoy atascado, ya que no puedo evaluar el .
Esto es para un paquete de software que estoy construyendo.
fuente
Respuestas:
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 μ σ
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
Por lo tanto, donde es el estándar Función de distribución acumulativa normal.
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:
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.
fuente