Estimación computacionalmente eficiente del modo multivariante

14

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: ingrese la descripción de la imagen aquí

Actualmente, mi método es

  1. Calcule la estimación de la densidad del núcleo en una cuadrícula igual a la resolución deseada del modo
  2. 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.

tkw954
fuente
No sé la respuesta, pero creo que esta es una gran pregunta. Es difícil para mí pensar en mejores enfoques que los que ha mencionado. Creo que hay diferencias entre el enfoque de la estimación de núcleo univariante en comparación con el multivariante. Este libro de David Scott podría ser útil con respecto al enfoque multivariado del núcleo, aunque no estoy seguro de que discuta la caza máxima. amazon.com/…
Michael R. Chernick

Respuestas:

7

KKf(x)Kf(x)K

Una exposición muy detallada sobre el algoritmo también se da en esta entrada de blog .

Sameer
fuente
3
Buenas referencias, Larry Wasserman también tuvo recientemente una publicación más corta que describe la técnica con menos detalle, El algoritmo de cambio medio asombroso .
Andy W
1
@AndyW ¡Buena llamada! La publicación de Larry Wasserman (y su blog en general) es genial. Al revisar los comentarios, encontré esta referencia ilustrativa sobre cambio medio, cambio medio y una variante, QuickShift.
Sameer
2
Gracias. No puedo decir si ese es el más rápido, pero ciertamente encuentra el máximo local. Aquí hay algunos gráficos de la trayectoria y la tasa de aprendizaje en algunos datos sintéticos .
tkw954
9

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

Parzen, E. (1962). En la estimación de una función y modo de densidad de probabilidad . Annals of Mathematical Statistics 33: 1065–1076.

de Valpine, P. (2004). Probabilidades de espacio de estado de Monte Carlo por estimación de densidad de núcleo posterior ponderada . Revista de la Asociación Americana de Estadística 99: 523-536.

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 ksen el paquete KDEes, 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 paquete KDEpara estimar la matriz de ancho de banda, usando, por ejemplo Hscv, implementar el estimador de densidad del núcleo y luego optimizar esta función usando el comando optim. Esto se muestra a continuación utilizando datos simulados y un núcleo gaussiano en R.

rm(list=ls())

# Required packages
library(mvtnorm)
library(ks)

# simulated data
set.seed(1)
dat = rmvnorm(1000,c(0,0),diag(2))

# Bandwidth matrix
H.scv=Hlscv(dat)

# [Implementation of the KDE](http://en.wikipedia.org/wiki/Kernel_density_estimation)
H.eig = eigen(H.scv)
H.sqrt = H.eig$vectors %*% diag(sqrt(H.eig$values)) %*% solve(H.eig$vectors)
H = solve(H.sqrt)
dH = det(H.scv)

Gkde = function(par){
return( -log(mean(dmvnorm(t(H%*%t(par-dat)),rep(0,2),diag(2),log=FALSE)/sqrt(dH))))
}

# Optimisation
Max = optim(c(0,0),Gkde)$par
Max

Los estimadores con restricción de forma tienden a ser más rápidos, por ejemplo

Cule, ML, Samworth, RJ y Stewart, MI (2010). Estimación de máxima verosimilitud de una densidad log-cóncava multidimensional . Revista Royal Statistical Society B 72: 545–600.

Pero están demasiado altos para este propósito.

4

Otros métodos que puede considerar usar son: ajustar una mezcla finita multivariada de normales (u otras distribuciones flexibles) o

Abraham, C., Biau, G. y Cadre, B. (2003). Estimación simple del modo de una densidad multivariante . The Canadian Journal of Statistics 31: 23–34.

Espero que esto ayude.

Comunidad
fuente
0

Recientemente hemos publicado un artículo que sugiere un estimador de modo rápido y consistente.

PS Ruzankin y AV Logachov (2019). Un estimador de modo rápido en espacio multidimensional. Estadísticas y cartas de probabilidad

O(dn)dn

También sugeriría los nuevos estimadores de modo de varianza mínima de mi artículo reciente

PS Ruzankin (2020). Una clase de estimadores de modo no paramétrico. Comunicaciones en Estadística - Simulación y Computación

O(dn2)nRd

Pavel Ruzankin
fuente