Versión corta: ¿Cuál es el método más eficiente computacionalmente para estimar el modo de un conjunto de datos multidimensional, muestreado a partir de una distribución continua?
Versión larga: tengo un conjunto de datos que necesito para estimar el modo. La moda no coincide con la media o la mediana. A continuación se muestra una muestra, este es un ejemplo 2D, pero una solución ND sería mejor:
Actualmente, mi método es
- Calcule la estimación de la densidad del núcleo en una cuadrícula igual a la resolución deseada del modo
- Busque el mayor punto calculado
Obviamente, esto calcula el KDE en muchos puntos no plausibles, lo cual es especialmente malo si hay muchos puntos de datos de altas dimensiones o espero una buena resolución en el modo.
Una alternativa sería utilizar un recocido simulado, un algoritmo genético, etc. para encontrar el pico global en el KDE.
La pregunta es si hay un método más inteligente para realizar este cálculo.
Respuestas:
Una exposición muy detallada sobre el algoritmo también se da en esta entrada de blog .
fuente
Si su interés principal son los problemas bidimensionales, diría que la estimación de la densidad del kernel es una buena opción porque tiene buenas propiedades asintóticas (tenga en cuenta que no estoy diciendo que sea la mejor). Ver por ejemplo
Para dimensiones superiores (4+), este método es realmente lento debido a la conocida dificultad para estimar la matriz de ancho de banda óptima, ver .
Ahora, el problema con el comando
ks
en el paqueteKDE
es, como usted mencionó, que evalúa la densidad en una cuadrícula específica que puede ser muy limitante. Este problema se puede resolver si usa el paqueteKDE
para estimar la matriz de ancho de banda, usando, por ejemploHscv
, implementar el estimador de densidad del núcleo y luego optimizar esta función usando el comandooptim
. Esto se muestra a continuación utilizando datos simulados y un núcleo gaussiano enR
.Los estimadores con restricción de forma tienden a ser más rápidos, por ejemplo
Pero están demasiado altos para este propósito.
Otros métodos que puede considerar usar son: ajustar una mezcla finita multivariada de normales (u otras distribuciones flexibles) o
Espero que esto ayude.
fuente
Recientemente hemos publicado un artículo que sugiere un estimador de modo rápido y consistente.
También sugeriría los nuevos estimadores de modo de varianza mínima de mi artículo reciente
fuente