Calcular el modo de datos muestreados a partir de una distribución continua

12

¿Cuáles son los mejores métodos para ajustar el 'modo' de datos muestreados de una distribución continua?

Dado que el modo es técnicamente indefinido (¿verdad?) Para una distribución continua, realmente pregunto '¿cómo encuentras el valor más común'?

Si asume que la distribución principal es gaussiana, podría agrupar los datos y encontrar que el modo es la ubicación del contenedor con los mayores recuentos. Sin embargo, ¿cómo se determina el tamaño del contenedor? ¿Hay implementaciones robustas disponibles? (es decir, robusto a los valores atípicos). Uso python/ scipy/ numpy, pero probablemente pueda traducir Rsin demasiada dificultad.

keflavich
fuente
8
No estoy seguro de si el modo se define técnicamente de esta manera, pero el modo global de una distribución continua generalmente se considera el punto con la mayor densidad.
Macro
1
@Macro: eso es útil. Luego puede leer mi pregunta como, '¿Cuáles son los mejores métodos para determinar la densidad (pico)?'
keflavich
1
¿Tal vez ajustar una estimación de densidad de kernel para sus datos y estimar el modo como el pico de eso? Esto parece un enfoque razonable, pero no estoy familiarizado con la literatura sobre este problema.
Macro
1
Si no asume que la distribución principal es gaussiana, ¿aún es posible agrupar los datos y tomar el modo para que sea la ubicación del contenedor con el mayor recuento? ¿Por qué o por qué no? En una nota más seria, ¿por qué no encontrar los deciles para que el de las muestras estén en el intervalo , por lo que es probable que el modo esté en el intervalo de interdecilación más corto ? Luego tome el tamaño del contenedor como, digamos, un cuarto de este intervalo interdecílico más corto. 10 % x i + 1 - x i min 1 j 10 x j + 1 - x jx0=xmin,x1,x2,,x9,x10=xmax10%xi+1ximin1j10xj+1xj
Dilip Sarwate
2
¿Qué suposiciones puedes hacer sobre la distribución principal, keflavich? Si son paramétricos, es mejor estimar los parámetros y luego estimar el modo a partir de esos parámetros. (Por ejemplo, la media muestral estima el modo de una distribución normal). Si no, el binning puede ser un método deficiente. En su lugar, una secuencia de estimadores kernel con la variación de media anchura se puede utilizar para proporcionar una secuencia de estimadores; normalmente, si la distribución subyacente es unimodal, los modos de suavizado del núcleo parecerán converger hacia un modo único a medida que los medios anchos se agranden y esa puede ser su estimación.
whuber

Respuestas:

4

En R, aplica el método que no se basa en el modelado paramétrico de la distribución subyacente y usa el estimador predeterminado de densidad del núcleo para 10000 variables distribuidas gamma:

x <- rgamma(10000, 2, 5)
z <- density(x)
plot(z) # always good to check visually
z$x[z$y==max(z$y)]

devuelve 0.199, que es el valor de x estimado para tener la densidad más alta (las estimaciones de densidad se almacenan como "z $ y").

Peter Ellis
fuente
3
Lo único que haría de manera diferente es usar un ancho de banda diferente. El ancho de banda predeterminado para la densidad () no es particularmente bueno. densidad (x, bw = "SJ") es mejor. Aún mejor sería usar un ancho de banda diseñado para la estimación de modo. Ver sciencedirect.com/science/article/pii/0167715295000240 para alguna discusión.
Rob Hyndman
2

Suponga que hace un histograma, de tamaño de contenedor b, y el contenedor más grande tiene k entradas, de su muestra total de tamaño n. Entonces, el PDF promedio dentro de ese bin puede estimarse como b * k / n.

El problema es que otro contenedor, que tiene menos miembros totales, podría tener una alta densidad de puntos. Solo puede saber sobre esto si tiene una suposición razonable sobre la tasa de cambio del PDF. Si lo hace, puede estimar la probabilidad de que el segundo contenedor más grande realmente contenga el modo.

El problema subyacente es este. Una muestra proporciona un buen conocimiento del CDF, según el teorema de Kolmogorov-Smirnov, y por lo tanto, una buena estimación de la mediana y otros cuantiles. Pero conocer una aproximación a una función en L1 no proporciona un conocimiento aproximado de su derivada. Por lo tanto, ninguna muestra proporciona un buen conocimiento del PDF, sin supuestos adicionales.

chrishmorris
fuente
0

Aquí hay algunos bocetos de soluciones generales que también funcionan para distribuciones de alta dimensión:

  • Entrene un f-GAN con divergencia KL inversa, sin dar ninguna entrada aleatoria al generador (es decir, forzarlo a ser determinista).

  • Entrene un f-GAN con divergencia KL inversa, mueva la distribución de entrada al generador hacia una función delta de Dirac a medida que avanza el entrenamiento y agregue una penalización de gradiente a la función de pérdida del generador.

  • Entrene un modelo generativo (diferenciable) que pueda evaluar de manera manejable una aproximación del pdf en cualquier punto (creo que, por ejemplo, un VAE, un modelo basado en el flujo o un modelo autorregresivo funcionaría). Luego, use algún tipo de optimización (se puede usar un poco de ascenso de gradiente si la inferencia del modelo es diferenciable) para encontrar un máximo de esa aproximación.

Stephane Bersier
fuente