Во-первых, под аналитической интеграцией, я имею в виду, существует ли правило интеграции для решения этой проблемы, в отличие от числового анализа (например, правил трапеции, Гаусса-Лежандра или Симпсона)?
У меня есть функция где - это функция плотности вероятности логнормального распределения с параметры и . Ниже я сокращу обозначение до и буду использовать для кумулятивной функции распределения.
Мне нужно вычислить интеграл
В настоящее время я делаю это с помощью численного интегрирования с использованием метода Гаусса-Лежандра. Поскольку мне нужно выполнять это большое количество раз, важна производительность. Прежде чем я займусь оптимизацией численного анализа / других частей, я хотел бы знать, есть ли какие-либо правила интеграции для решения этой проблемы.
Я попытался применить правило интеграции по частям, и я достиг этого, где я снова застрял,
.
Я застрял, потому что я не могу оценить .
Это для программного пакета, который я создаю.
Ответы:
Краткий ответ : нет, это невозможно, по крайней мере, с точки зрения элементарных функций. Однако существуют очень хорошие (и достаточно быстрые!) Численные алгоритмы для вычисления такой величины, и в этом случае они должны быть предпочтительнее любого метода численного интегрирования.
Количество процентов с точки зрения нормального cdf
Интересующая вас величина на самом деле тесно связана с условным средним логнормальной случайной величины. То есть, если распространяется как логнормальное с параметрами и , то, используя вашу нотацию,X μ σ
Чтобы получить выражение для этого интеграла, выполните подстановку . На первый взгляд это может показаться немотивированным. Но обратите внимание, что, используя эту замену, и простым изменением переменных, мы получаем где и .z=(log(x)−(μ+σ2))/σ x=eμ+σ2eσz
Следовательно, где - стандарт нормальная кумулятивная функция распределения.Φ ( x ) = ∫ x - ∞ 1
Численное приближение
Часто утверждается, что никакого известного выражения замкнутой формы для существует. Однако теорема Лиувилля начала 1800-х годов утверждает нечто более сильное: для этой функции не существует выражения в замкнутой форме . (Доказательство в этом конкретном случае см. В статье Брайана Конрада .)Φ(x)
Таким образом, нам осталось использовать численный алгоритм для аппроксимации желаемой величины. Это можно сделать с точностью до плавающей запятой двойной точности IEEE с помощью алгоритма WJ Cody's. Это стандартный алгоритм для этой задачи, и использование рациональных выражений из довольно низкого порядка, это довольно эффективно, тоже.
Вот ссылка, которая обсуждает приближение:
Это также реализация, используемая как в MATLAB, так и в , среди прочего, в случае, если это облегчает получение примера кода.R
Вот связанный вопрос, если вам интересно.
источник