Pregunta: Con una cadena MCMC de 10 dimensiones, digamos que estoy preparado para entregarle una matriz de los sorteos: 100,000 iteraciones (filas) por 10 parámetros (columnas), ¿cómo puedo identificar los modos posteriores? Me preocupan especialmente los modos múltiples.
Antecedentes:Me considero un experto en informática, pero cuando un colega me hizo esta pregunta, me avergoncé de no poder encontrar una respuesta razonable. La principal preocupación es que pueden aparecer modos múltiples, pero solo si se consideran al menos ocho de las diez dimensiones. Mi primer pensamiento sería usar una estimación de la densidad del núcleo, pero una búsqueda en R no reveló nada prometedor para problemas de más de tres dimensiones. El colega ha propuesto una estrategia de agrupamiento ad-hoc en diez dimensiones y buscando un máximo, pero mi preocupación es que el ancho de banda puede conducir a problemas de escasez significativos o a una falta de resolución para discernir modos múltiples. Dicho esto, con mucho gusto acepto sugerencias para sugerencias automatizadas de ancho de banda, enlaces a un estimador de densidad de 10 núcleos o cualquier otra cosa que conozca.
Preocupaciones
Creemos que la distribución puede ser bastante sesgada; por lo tanto, deseamos identificar los modos posteriores y no los medios posteriores.
Nos preocupa que pueda haber varios modos posteriores.
Si es posible, preferiríamos una sugerencia basada en R. Pero cualquier algoritmo funcionará siempre que no sea increíblemente difícil de implementar. Supongo que preferiría no implementar un estimador de densidad de kernel Nd con selección automática de ancho de banda desde cero.
Respuestas:
¿Has considerado utilizar un enfoque de vecino más cercano?
por ejemplo, construir una lista de los
k
vecinos más cercanos para cada uno de los 100,000 puntos y luego considerar el punto de datos con la distancia más pequeña delkth
vecino como un modo. En otras palabras: encuentre el punto con la 'burbuja más pequeña' que contienek
otros puntos alrededor de este punto.No estoy seguro de cuán robusto es esto y la elección
k
obviamente está influyendo en los resultados.fuente
kmeans
función en R. Realmente no debería hacer preguntas entre la medianoche y las 4am.Esta es solo una respuesta parcial.
Recientemente utilicé figtree para estimaciones multidimensionales de densidad de kernel. Es un paquete C y conseguí que funcione con bastante facilidad. Sin embargo, solo lo usé para estimar la densidad en puntos particulares, no para calcular estadísticas de resumen.
fuente
Si mantiene las probabilidades de registro, puede seleccionar la que tenga el valor más alto. Además, si su interés es principalmente el modo, bastará con hacer una optimización para encontrar el punto con la mayor probabilidad de registro.
fuente
¿Has considerado 'Caza PRIM / bump'? (consulte, por ejemplo, la Sección 9.3. de 'Los elementos del aprendizaje estadístico' de Tibshirani et al. o pregunte a su motor de búsqueda favorito). Sin embargo, no estoy seguro de si eso se implementa en R.
[Por lo que he entendido, está tratando de encontrar el modo de la densidad de probabilidad de la que se extraen sus 100.000 filas. Entonces, su problema se resolvería parcialmente encontrando un
density estimation
método apropiado ].fuente