Załóżmy, że mam trzy populacje o czterech wzajemnie wykluczających się cechach. Pobieram losowe próbki z każdej populacji i tworzę tabelę krzyżową lub tabelę częstotliwości dla cech, które mierzę. Czy mam rację mówiąc, że:
Gdybym chciał sprawdzić, czy istnieje jakikolwiek związek między populacjami a cechami (np. Czy jedna populacja ma wyższą częstotliwość jednej z cech), powinienem przeprowadzić test chi-kwadrat i sprawdzić, czy wynik jest znaczący.
Jeśli test chi-kwadrat jest znaczący, pokazuje mi tylko, że istnieje pewna zależność między populacjami i cechami, ale nie sposób ich powiązania.
Ponadto nie wszystkie cechy muszą być związane z populacją. Na przykład, jeśli różne populacje mają znacząco różne rozkłady cech A i B, ale nie C i D, wówczas test chi-kwadrat może nadal powrócić jako znaczący.
Gdybym chciał zmierzyć, czy konkretna cecha wpływa populacji, to mogę przeprowadzić test na równych proporcjach (Widziałem ten nazywa się Z-test, lub jak
prop.test()
wR
) na tej właśnie cechy.
Innymi słowy, czy właściwe jest użycie parametru prop.test()
do dokładniejszego określenia charakteru relacji między dwoma zestawami kategorii, gdy test chi-kwadrat mówi, że istnieje znaczący związek?
Odpowiedzi:
Bardzo krótka odpowiedź:
Test chi-kwadrat (
chisq.test()
w R) porównuje obserwowane częstotliwości w każdej kategorii tabeli nieprzewidzianych częstotliwości z oczekiwanymi częstotliwościami (obliczonymi jako iloczyn częstotliwości krańcowych). Służy do ustalenia, czy odchylenia między obserwowanymi a oczekiwanymi liczbami są zbyt duże, aby przypisać je przypadkowi. Odejście od niezależności można łatwo sprawdzić, sprawdzając pozostałości (spróbuj?mosaicplot
lub?assocplot
, ale także spójrz navcd
paczkę). Użyjfisher.test()
do dokładnego testu (w oparciu o rozkład hipergeometryczny).prop.test()
Funkcja na badania pozwala na sprawdzenie, czy proporcje są porównywalne w obu grupach i nie różnią się od prawdopodobieństwa teoretycznych. Jest to określane jako test- ponieważ statystyka testu wygląda następująco:gdzie , a wskaźniki odnoszą się do pierwszej i drugiej linii tabeli. W dwustronnej tabeli awaryjnej, gdzie , powinno to dać porównywalne wyniki do zwykłego :p^=(p1+p2)/(n1+n2) (1,2) H0:p1=p2 χ2
Do analizy dyskretnych danych za pomocą R, bardzo polecam Podręcznik R (i S-PLUS), aby towarzyszyć analizie danych kategorycznych Agresti (2002) , autorstwa Laury Thompson.
źródło
prop.test
ichisq.test
obaj używam chi-kwadrat, co tłumaczy identyczne wartości p, a także dlaczego w tym poście na R-Bloggerach mają swoją własną funkcję ad hoc.Test chi-kwadrat dla równości dwóch proporcjach jest dokładnie takie samo jak -test. Rozkład chi-kwadrat z jednym stopniem swobody jest tylko rozkładem normalnym, kwadratowym. Zasadniczo po prostu powtarzasz test chi-kwadrat na podzbiorze tabeli awaryjnej. (Właśnie dlatego @chl otrzymuje dokładnie tę samą wartość dla obu testów).pz p
Problem z przeprowadzeniem globalnego testu chi-kwadrat najpierw, a następnie zejściem w dół, aby wykonać więcej testów na podzestawach, polega na tym, że niekoniecznie zachowasz swoją alfa - to znaczy, nie będziesz kontrolować fałszywych wyników pozytywnych na poziomie mniejszym niż 5% (lub cokolwiek ) w całym eksperymencie.α
Myślę, że jeśli chcesz to zrobić poprawnie w klasycznym paradygmacie, musisz na początku zidentyfikować swoje hipotezy (które proporcje porównać), zebrać dane, a następnie przetestować hipotezy tak, aby całkowity próg istotności każdej sumy testowej do . Chyba że możesz z góry udowodnić, że istnieje jakaś korelacja.α
Najpotężniejszy test na równość proporcji nazywa się testem Barnarda na wyższość .
źródło
prop.test
ichisq.test
obaj używam chi-kwadrat, co tłumaczy identyczne wartości p, a także dlaczego w tym poście na R-Bloggerach mają swoją własną funkcję ad hoc.prop.test()
... jest określany jako test Z w przeciwieństwie dochisq.test()
. Później Keith mówi: „Test chi-kwadrat dla równości dwóch proporcji jest dokładnie tym samym, co test Z. (Właśnie dlatego @chl uzyskuje dokładnie tę samą wartość p dla obu testów.)”prop.test()
faktycznie wywołujechisq.test()
i drukuje dane wyjściowe inaczej.