Kołmogorow-Smirnov z dyskretnymi danymi: Jakie jest właściwe zastosowanie dgof :: ks.test w R?


23

Pytania dla początkujących:

Chcę przetestować, czy dwa dyskretne zestawy danych pochodzą z tej samej dystrybucji. Zaproponowano mi test Kołmogorowa-Smirnowa.

Conover ( Practical Nonparametric Statistics , 3d) wydaje się mówić, że do tego celu można zastosować test Kołmogorowa-Smirnowa, ale jego zachowanie jest „konserwatywne” z dyskretnymi rozkładami i nie jestem pewien, co to oznacza tutaj.

Komentarz Davida do innego pytania brzmi: „... możesz nadal wykonać test poziomu α na podstawie statystyki KS, ale będziesz musiał znaleźć inną metodę uzyskania wartości krytycznej, np. Przez symulację”.

Wersja ks.test () w pakiecie dgof R ( artykuł , cran ) dodaje pewne funkcje, których nie ma w domyślnej wersji ks.test () w pakiecie statystyk. Dgof :: ks.test zawiera między innymi ten parametr:

simulate.p.value: logiczne wskazanie, czy obliczać wartości p za pomocą symulacji Monte Carlo, tylko w przypadku dyskretnych testów dopasowania.

Czy celem simulate.p.value = T jest osiągnięcie tego, co sugeruje DavidR?

Nawet jeśli tak jest, nie jestem pewien, czy naprawdę mogę użyć dgof :: ks.test do testu dwóch próbek. Wygląda na to, że zapewnia jedynie test dwóch próbek dla ciągłego rozkładu:

Jeśli y jest liczbowe, przeprowadzany jest test dwóch prób hipotezy zerowej, że xiy zostały narysowane z tego samego ciągłego rozkładu.

Alternatywnie, y może być ciągiem znaków nazywającym ciągłą (skumulowaną) funkcję dystrybucji (lub taką funkcję), lub funkcję ecdf (lub obiekt klasy stepfun) dający rozkład dyskretny. W takich przypadkach przeprowadzany jest test z jedną próbką od wartości zerowej, że funkcja rozkładu, która wygenerowała x, jest rozkładem y ....

(Szczegóły tła: Ściśle mówiąc, moje podstawowe rozkłady są ciągłe, ale dane zwykle leżą bardzo blisko kilku punktów. Każdy punkt jest wynikiem symulacji i jest średnią z 10 lub 20 liczb rzeczywistych między -1 a 1. Pod koniec symulacji liczby te prawie zawsze są bardzo bliskie 0,9 lub -9. Zatem środki skupiają się wokół kilku wartości, a ja traktuję je jako dyskretne. Symulacja jest złożona i nie mam powód, by sądzić, że dane mają dobrze znaną dystrybucję).

Rada?


Właśnie zauważyłem komentarz dr G tutaj co sugeruje, że ks.boot to co muszę, ale ja wciąż zastanawiam się, czy dgof :: opcja ks.test na symulacji będzie działać, a co „Convervative” środki.
Mars

Odpowiedzi:


16

To jest odpowiedź na rozszerzenie @jbrucks (ale odpowiada również oryginałowi).

Jednym ogólnym testem sprawdzającym, czy 2 próbki pochodzą z tej samej populacji / rozmieszczenia, czy jest różnica, jest test permutacyjny. Wybierz interesującą Cię statystykę, może to być statystyka testu KS lub różnica średnich lub różnica median lub stosunek wariancji lub ... (cokolwiek jest najbardziej znaczące dla twojego pytania, możesz wykonać symulacje w prawdopodobnych warunkach, aby zobaczyć która statystyka daje najlepsze wyniki) i oblicz ją na 2 oryginalnych próbkach. Następnie losowo permutujesz obserwacje między grupami (grupujesz wszystkie punkty danych w jedną dużą pulę, a następnie losowo dzielisz je na 2 grupy o tych samych rozmiarach, co oryginalne próbki) i obliczasz statystykę zainteresowania na permutowanych próbkach. Powtórz to kilka razy, rozkład przykładowych statystyk tworzy rozkład zerowy i porównujesz oryginalną statystykę z tym rozkładem, aby utworzyć test. Zauważ, że hipotezą zerową jest to, że rozkłady są identyczne, a nie tylko to, że średnia / mediana / itp. są równe.

Jeśli nie chcesz zakładać, że rozkłady są identyczne, ale chcesz sprawdzić różnicę w środkach / medianach / itp. wtedy możesz zrobić bootstrap.

Jeśli wiesz, z jakiego rozkładu pochodzą dane (lub przynajmniej chcesz przyjąć rozkład), możesz wykonać test współczynnika wiarygodności na równości parametrów (porównaj model z jednym zestawem parametrów w obu grupach z modelem z oddzielnymi zestawami parametrów). Test stosunku prawdopodobieństwa zwykle wykorzystuje rozkład chi-kwadrat, który w wielu przypadkach jest dobry (asymtotyka), ale jeśli używasz małych próbek lub testujesz parametr w pobliżu jego granicy (na przykład wariancja 0), przybliżenie może nie być dobrze, możesz ponownie użyć testu permutacji, aby uzyskać lepszy rozkład zerowy.

Wszystkie te testy działają na rozkładach ciągłych lub dyskretnych. Powinieneś również dołączyć miarę mocy lub przedział ufności, aby wskazać stopień niepewności, brak istotności może wynikać z niskiej mocy lub statystycznie istotna różnica może być praktycznie bez znaczenia.


Greg, dzięki. Jest to bardzo pomocna ogólna odpowiedź na pytanie jrbrowskie i również jest dla mnie pomocna. (Moje pytania były bardziej szczegółowe. Może zbyt wąskie, by oczekiwać odpowiedzi.)
Mars

1
@Mars, myślę, że moja odpowiedź pośrednio odpowiada przynajmniej części twojej. Zwykły test KS nie zakłada żadnych powiązań i wykorzystuje model teoretyczny do statystyki testu pod hipotezą zerową. W przypadku więzi model teoretyczny nie jest dokładny, ale zamiast tego można użyć symulacji (test permutacji, symulacja z zerowej odległości itp.), Aby obliczyć rozkład zerowy, a zatem uzyskać wartość p itp. Domyślam się, że to jest to, co symuluje argument, o którym wspominasz.
Greg Snow,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.