Próbuję sprawdzić prawdopodobieństwo, że dane klastrowanie danych wystąpiły przypadkowo. Mocnym sposobem na to jest symulacja Monte Carlo, w której powiązania między danymi i grupami są losowo przydzielane dużą liczbę razy (np. 10 000), a metryka grupowania jest używana do porównania rzeczywistych danych z symulacjami w celu określenia wartość.Algorytm do pobierania próbek bez wymiany?
Mam większość tego działającego, ze wskaźnikami mapującymi zgrupowanie na elementy danych, więc planuję losowe przypisywanie wskaźników do danych. PYTANIE: jaki jest szybki sposób próbkowania bez zastąpienia, tak aby każdy wskaźnik był losowo ponownie przypisywany w zestawach danych replik?
na przykład (dane te są tylko uproszczoną przykład):
danych (n = 12 wartości) - Grupa A: 0,1, 0,2, 0,4/Grupa B: 0,5, 0,6, 0,8/Grupa C : 0,4, 0,5/Grupa D: 0,2, 0,2, 0,3, 0,5
Dla każdego replikacji zestaw danych, ja te same rozmiary klastra (A = 3, B = 3, c = 2, d = 4) i wartości danych, ale ponownie przypisze wartości do klastrów.
Aby to zrobić, mogę wygenerować liczby losowe z zakresu 1-12, przypisać pierwszy element grupy A, a następnie wygenerować liczby losowe z zakresu 1-11 i przypisać drugi element w grupie A, i tak dalej . Zmiana przypisania wskaźnika jest szybka i wstępnie przydzielę wszystkie struktury danych, ale próbkowanie bez zastąpienia wydaje się być problemem, który mógł zostać rozwiązany wiele razy wcześniej.
Preferowana logika lub pseudokod.
Świetnie! Niestety nie widziałem tej odpowiedzi, gdy szukałem SO (do pobierania próbek bez wymiany, statystyk, algorytmów itp.). Może to będzie służyć jako meta-pytanie, by poprowadzić ludzi takich jak ja do twojej oryginalnej odpowiedzi. Twoje zdrowie! – Argalatyr