Estoy tratando de probar la probabilidad de que se haya producido una agrupación de datos en particular por casualidad. Una forma robusta de hacerlo es la simulación de Monte Carlo, en la que las asociaciones entre los datos y los grupos se reasignan aleatoriamente una gran cantidad de veces (por ejemplo, 10 000) y se usa una métrica de agrupamiento para comparar los datos reales con las simulaciones para determinar una valor.Algoritmo de muestreo sin reemplazo?
Tengo la mayor parte de esto funcionando, con punteros mapeando la agrupación a los elementos de datos, por lo que planeo reasignar aleatoriamente punteros a los datos. LA PREGUNTA: ¿cuál es una forma rápida de muestrear sin reemplazo, de modo que cada apuntador se reasigna aleatoriamente en los conjuntos de datos duplicados?
Por ejemplo (estos datos son sólo un ejemplo simplificado):
de datos (n = 12 valores) - Grupo A: 0,1, 0,2, 0,4/Grupo B: 0,5, 0,6, 0,8/Grupo C : 0,4, 0,5/Grupo D: 0,2, 0,2, 0,3, 0,5
Para cada repetición conjunto de datos, que tendría los mismos tamaños de clúster (A = 3, B = 3, C = 2, D = 4) y valores de datos, pero reasignarían los valores a los clústeres.
Para hacer esto, podría generar números aleatorios en el rango 1-12, asignar el primer elemento del grupo A, luego generar números aleatorios en el rango 1-11 y asignar el segundo elemento en el grupo A, y así sucesivamente . La reasignación del puntero es rápida, y habrá preasignado todas las estructuras de datos, pero el muestreo sin reemplazo parece un problema que podría haberse resuelto muchas veces anteriormente.
Lógica o pseudocódigo preferido.
¡Excelente! Lamento no haber visto esa respuesta cuando busqué SO (para el muestreo sin reemplazo, estadísticas, algoritmos, etc.). Tal vez esto sirva como una meta-pregunta para llevar a la gente como yo a su respuesta original. ¡Aclamaciones! – Argalatyr