Jak mogę sprawdzić rzetelność dwudziestostronnej kostki (d20)? Oczywiście porównałbym rozkład wartości z rozkładem jednolitym. Niejasno pamiętam test Chi-kwadrat na studiach. Jak mogę to zastosować, aby sprawdzić, czy kość jest sprawiedliwa?
29
Odpowiedzi:
Oto przykład z kodem R. Dane wyjściowe poprzedzone są znakami #. Sprawiedliwa kostka:
Każda tendencyjna kostka - liczby od 1 do 10 mają prawdopodobieństwo 0,045; te 11-20 mają prawdopodobieństwo 0,055 - 200 rzutów:
Nie mamy wystarczających dowodów na stronniczość (p = 0,64).
Tendencyjna kostka, 1000 rzutów:
Teraz p <0,05 i zaczynamy dostrzegać dowody stronniczości. Możesz użyć podobnych symulacji, aby oszacować poziom odchylenia, którego możesz się spodziewać, i liczbę rzutów potrzebnych do wykrycia go przy danym poziomie p.
Wow, 2 inne odpowiedzi jeszcze zanim skończyłem pisać.
źródło
Czy chcesz to zrobić ręcznie, czy w programie Excel?
Jeśli chcesz to zrobić w R , możesz to zrobić w ten sposób:
Krok 1: rzuć kostką (powiedzmy) 100 razy.
Krok 2: policz, ile razy dostałeś każdą ze swoich liczb
Krok 3: umieść je w R w ten sposób (napisz ile razy otrzymałeś rzut kości zamiast liczb, które napisałem):
Krok 4: po prostu uruchom to polecenie:
Jeśli wartość P jest niska (np. Poniżej 0,05) - twoja kość nie jest zrównoważona.
To polecenie symuluje zbalansowaną matrycę (P = ~ .5):
A to symuluje niezrównoważoną kostkę:
(To musi być o P = ~ .005)
Teraz prawdziwe pytanie brzmi, ile kości należy rzucić na jaki poziom siły wykrywania. Jeśli ktoś chce rozwiązać ten problem, jest mile widziany ...
Aktualizacja: Jest też ładny artykuł na ten temat tutaj .
źródło
Po pierwsze, zgodnie z tym, co powiedział @Glen_b, bayesian nie jest zainteresowany tym, czy kość jest dokładnie sprawiedliwa - nie jest. Dba o to, czy jest wystarczająco blisko , cokolwiek „wystarczające” oznacza w kontekście, powiedzmy, w granicach 5% wartości godziwej dla każdej ze stron.
Tak czy inaczej, oto jak (z R):
Najpierw zdobądź trochę danych. Rzucamy kostką 500 razy.
(zaczynamy od uczciwej śmierci; w praktyce dane te byłyby obserwowane).
Na koniec oszacujmy nasze prawdopodobieństwo późniejsze (po obserwacji danych), że matryca mieści się w granicach 0,05 uczciwości w każdej współrzędnej.
Wynik to około 0,9486 na moim komputerze. (Naprawdę nie jest to niespodzianka. W końcu zaczęliśmy od uczciwej śmierci).
Szybka uwaga: prawdopodobnie nie jest rozsądne, abyśmy użyli wcześniejszej informacji niż informacyjna w tym przykładzie. Ponieważ istnieje nawet pytanie, prawdopodobnie kostka wydaje się w przybliżeniu wyważona, więc może być lepiej wybrać przeor, który jest skoncentrowany bliżej 1/3 we wszystkich współrzędnych. Powyżej tego po prostu zwiększyłoby nasze szacunkowe prawdopodobieństwo prawdopodobieństwa „bliskiego do sprawiedliwego”.
źródło
Test dobroci dopasowania chi-kwadrat ma na celu znalezienie wszystkich możliwych odchyleń od ścisłej jednorodności. Jest to uzasadnione w przypadku d4 lub d6, ale w przypadku d20 prawdopodobnie bardziej interesuje Cię sprawdzenie, czy prawdopodobieństwo, że rzucisz (lub prawdopodobnie przekroczysz) każdy wynik, jest bliskie temu, co powinno być.
Chodzi mi o to, że istnieją pewne odchylenia od uczciwości, które będą miały duży wpływ na to, do czego używasz d20, i inne rodzaje odchyleń, które w ogóle nie mają znaczenia, a test chi-kwadrat podzieli moc między bardziej interesujące i mniej interesujące alternatywy. Konsekwencją jest to, że aby mieć wystarczającą moc, aby wychwycić nawet dość umiarkowane odchylenia od uczciwości, potrzebujesz ogromnej liczby rzutów - znacznie więcej niż kiedykolwiek chciałbyś usiąść i wygenerować.
(Wskazówka: wymyśl kilka zestawów niejednolitych prawdopodobieństw dla twojego d20, które będą miały największy wpływ na wynik, dla którego używasz d20, i skorzystaj z symulacji i testów chi-kwadrat, aby dowiedzieć się, jaką moc masz przeciwko nim różne liczby rolek, więc masz pojęcie o liczbie potrzebnych rolek).
Istnieje wiele sposobów sprawdzania „interesujących” odchyleń (takie, które będą bardziej prawdopodobne, że będą miały istotny wpływ na typowe zastosowania d20)
Moje zalecenie to wykonanie testu ECDF (test typu Kołmogorowa-Smirnowa / Andersona-Darlinga - ale prawdopodobnie będziesz chciał skorygować konserwatywność wynikającą z dyskretnego rozkładu - przynajmniej przez podniesienie nominalnego poziomu alfa, ale nawet lepiej po prostu symulując rozkład, aby zobaczyć, jak idzie rozkład statystyki testowej dla d20).
Nadal mogą one wykrywać wszelkie odchylenia, ale kładą stosunkowo większy nacisk na ważniejsze rodzaje odchyleń.
Jeszcze bardziej zaawansowanym podejściem jest zbudowanie statystyki testowej, która jest szczególnie wrażliwa na najważniejsze dla ciebie alternatywy, ale wymaga nieco więcej pracy.
W tej odpowiedzi sugeruję graficzną metodę testowania matrycy na podstawie wielkości poszczególnych odchyleń. Podobnie jak test chi-kwadrat ma to sens w przypadku kości z kilkoma bokami, takimi jak d4 lub d6.
źródło
Jeśli chcesz sprawdzić, ile razy pojawia się każda liczba, odpowiedni byłby test chi-kwadrat. Załóżmy, że rzucisz kostką N razy. Można oczekiwać, że każda wartość wzrośnie N / 20 razy. Wszystko, co robi test chi-kwadrat, polega na porównaniu tego, co zaobserwowałeś z tym, co dostajesz. Jeśli ta różnica jest zbyt duża, oznacza to problem.
Inne testy
Jeśli interesowały Cię inne aspekty randonness, na przykład, jeśli kostka dała następujący wynik:
Następnie, chociaż dane wyjściowe mają poprawną liczbę każdej pojedynczej wartości, wyraźnie nie są losowe. W takim przypadku spójrz na to pytanie . Prawdopodobnie ma to sens tylko w przypadku kości elektronicznych.
Test chi-kwadrat w R.
W R byłoby to
źródło
Być może nie należy skupiać się tak bardzo na jednym zestawie rolek.
Spróbuj rzucić kostką 6 boczną 10 razy i powtórz ten proces 8 razy.
Możesz sprawdzić, czy suma dla każdej powtórzonej sumy wynosi 10.
Dla każdego powtórzenia (w kolumnie) można obliczyć stopień dopasowania za pomocą testu Chi ^ 2.
Im więcej rzutów wykonasz, tym mniej stronniczy zobaczysz. Zróbmy to dla dużej liczby.
źródło