Me preguntaba, dadas dos distribuciones normales con y \ sigma_2, \ \ mu_2
- ¿Cómo puedo calcular el porcentaje de regiones superpuestas de dos distribuciones?
- Supongo que este problema tiene un nombre específico, ¿conoce algún nombre en particular que describa este problema?
- ¿Conoce alguna implementación de esto (por ejemplo, código Java)?
normal-distribution
similarities
metric
bhattacharyya
Ali Salehi
fuente
fuente
Respuestas:
Esto también se llama a menudo el "coeficiente de superposición" (OVL). Buscar en Google esto te dará muchos éxitos. Puede encontrar un nomograma para el caso bi-normal aquí . Un documento útil puede ser:
Editar
Ahora me interesó más en esto, así que seguí adelante y creé el código R para calcular esto (es una integración simple). Incluí una trama de las dos distribuciones, incluido el sombreado de la región superpuesta:
Para este ejemplo, el resultado es:
0.6099324
con error absoluto< 1e-04
. La siguiente figura.fuente
Esto viene dado por el coeficiente Bhattacharyya . Para otras distribuciones, vea también la versión generalizada, la distancia de Hellinger entre dos distribuciones.
No conozco ninguna biblioteca para calcular esto, pero dada la formulación explícita en términos de distancias de Mahalanobis y matrices determinantes de la varianza, la implementación no debería ser un problema.
fuente
No sé si hay una forma estándar obvia de hacer esto, pero:
Primero, encuentra los puntos de intersección entre las dos densidades. Esto se puede lograr fácilmente igualando ambas densidades, que, para la distribución normal, deberían dar como resultado una ecuación cuadrática para x.
Algo cercano a:
Esto se puede resolver con cálculo básico.
Por lo tanto, tiene cero, uno o dos puntos de intersección. Ahora, estos puntos de intersección dividen la línea real en 1, 2 o tres partes, donde cualquiera de las dos densidades es la más baja. Si no le viene a la mente nada más matemático, simplemente pruebe cualquier punto dentro de una de las partes para encontrar cuál es el más bajo.
Su valor de interés es ahora la suma de las áreas bajo la curva de densidad más baja en cada parte. Esta área ahora se puede encontrar a partir de la función de distribución acumulativa (solo resta el valor en ambos bordes de la 'parte'.
fuente
Para la posteridad, la solución de wolfgang no funcionó para mí: me encontré con errores en la
integrate
función. Así que lo combiné con la respuesta de Nick Staubbe para desarrollar la siguiente pequeña función. Debería ser más rápido y con menos errores que usar la integración numérica:fuente
(l+r)/2
?Aquí está la versión de Java, Apache Commons Mathematics Library :
fuente
Creo que algo como esto podría ser la solución en MATLAB:
Al menos podría reproducir el valor 0.8026 dado debajo de la Fig.1 en este pdf .
Solo necesita adaptar los valores de inicio y final e intervalo para ser precisos ya que esto es solo una solución numérica.
fuente