Мне было интересно, учитывая два нормальных распределения с и \ sigma_2, \ \ mu_2
- Как я могу рассчитать процент перекрывающихся регионов двух распределений?
- Я полагаю, что у этой проблемы есть определенное имя, знаете ли вы какое-либо конкретное имя, описывающее эту проблему?
- Вам известно о какой-либо реализации этого (например, Java-код)?
normal-distribution
similarities
metric
bhattacharyya
Али Салехи
источник
источник
Ответы:
Это также часто называют «коэффициентом перекрытия» (OVL). Поиск в Google даст вам много хитов. Вы можете найти номограмму для би-нормального случая здесь . Полезная статья может быть:
редактировать
Теперь вы заинтересовали меня этим больше, поэтому я решил создать R-код для этого (это простая интеграция). Я добавил график двух распределений, включая штриховку перекрывающейся области:
Для этого примера результат:
0.6099324
с абсолютной ошибкой< 1e-04
. Рисунок ниже.источник
Это определяется коэффициентом Бхаттачарьи . Для других распределений, см. Также обобщенную версию, расстояние Хеллингера между двумя распределениями.
Я не знаю ни одной библиотеки, чтобы вычислить это, но, учитывая явную формулировку в терминах расстояний Махаланобиса и определителя матриц дисперсии, реализация не должна быть проблемой.
источник
Я не знаю, существует ли очевидный стандартный способ сделать это, но:
Сначала вы найдете точки пересечения между двумя плотностями. Это может быть легко достигнуто путем приравнивания обеих плотностей, что для нормального распределения должно привести к квадратному уравнению для x.
Что-то на:
Это можно решить с помощью основного исчисления.
Таким образом, у вас есть ноль, одна или две точки пересечения. Теперь эти точки пересечения делят действительную линию на 1, 2 или три части, где любая из двух плотностей является самой низкой. Если ничего более математического не приходит на ум, просто попробуйте любую точку в одной из частей, чтобы найти, какая из них самая низкая.
Ваша ценность интереса теперь является суммой областей под кривой самой низкой плотности в каждой части. Эта область теперь может быть найдена из кумулятивной функции распределения (просто вычтите значение в обоих краях 'части').
источник
Для потомков решение Вольфганга у меня не сработало - я столкнулся с ошибками в
integrate
функции. Поэтому я совместил это с ответом Ника Стаубе, чтобы разработать следующую небольшую функцию. Должно быть быстрее и менее глючно, чем при использовании числовой интеграции:источник
(l+r)/2
?Вот версия Java, Библиотека математики Apache Commons :
источник
Я думаю, что-то вроде этого может быть решением в MATLAB:
По крайней мере, я мог бы воспроизвести значение 0,8026, приведенное ниже Рис.1 в этом PDF-файле .
Вам просто нужно адаптировать начальное и конечное значения, а также значения интервала, чтобы быть точными, поскольку это только численное решение.
источник