Entiendo que una vez que graficamos los valores como un gráfico, podemos identificar una distribución bimodal observando los picos gemelos, pero ¿cómo se encuentra programáticamente? (Estoy buscando un algoritmo).
Entiendo que una vez que graficamos los valores como un gráfico, podemos identificar una distribución bimodal observando los picos gemelos, pero ¿cómo se encuentra programáticamente? (Estoy buscando un algoritmo).
Respuestas:
Identificar un modo para una distribución continua requiere suavizar o agrupar los datos.
El binning suele ser demasiado procrustean: los resultados a menudo dependen de dónde coloque los puntos de corte del bin.
El suavizado del núcleo (específicamente, en forma de estimación de densidad del núcleo ) es una buena opción. Aunque son posibles muchas formas de grano, típicamente el resultado no depende mucho de la forma. Depende del ancho de banda del kernel. Por lo tanto, las personas usan un kernel smooth adaptable o realizan una secuencia de kernel smooth para diferentes anchos de banda fijos con el fin de verificar la estabilidad de los modos identificados. Aunque el uso de un suavizador adaptativo u "óptimo" es atractivo, tenga en cuenta que la mayoría (¿todos?) Están diseñados para lograr un equilibrio entre la precisión y la precisión promedio: no están diseñados para optimizar la estimación de la ubicación de los modos.
En cuanto a la implementación, los suavizadores de kernel cambian y escalan localmente una función predeterminada para adaptarse a los datos. Siempre que esta función básica sea diferenciable, los gaussianos son una buena opción porque puede diferenciarlos tantas veces como lo desee, entonces todo lo que tiene que hacer es reemplazarla por su derivada para obtener la derivada de la suavidad. Entonces se trata simplemente de aplicar un procedimiento estándar de búsqueda de cero para detectar y probar los puntos críticos. ( El método de Brent funciona bien). Por supuesto, puede hacer el mismo truco con la segunda derivada para obtener una prueba rápida de si algún punto crítico es un máximo local, es decir, un modo.
Existe un artículo bien conocido de Silverman que trata este tema. Emplea la estimación de la densidad del núcleo. Ver
BW Silverman, Utilizando estimaciones de densidad del núcleo para investigar la multimodalidad , J. Royal Stat. Soc. B , vol. 43, no. 1, 1981, pp. 97-99.
Tenga en cuenta que hay algunos errores en las tablas del documento. Este es solo un punto de partida, pero bastante bueno. Proporciona un algoritmo bien definido para usar, en el caso de que sea lo que más estás buscando. Puede buscar en Google Scholar documentos que lo citan para enfoques más "modernos".
Llegué tarde a la fiesta, pero si solo estás interesado en si es multimodal o no, lo que significa que no estás interesado en la cantidad de modos, deberías mirar diptest .
En R
el paquete se llama diptest
.
La definición en wiki es un poco confusa para mí. La probabilidad de que un conjunto de datos continuo tenga solo un modo es cero. Una manera simple de programar una distribución bimodal es con dos distribuciones normales separadas centradas de manera diferente. Esto crea dos picos o lo que la wiki llama modos. En realidad, puede usar casi dos distribuciones, pero una de las oportunidades estadísticas más difíciles es encontrar cómo se formó el conjunto de datos después de combinar las dos distribuciones de datos al azar.