Czy można użyć chi kwadrat do porównania proporcji?


13

Czytałem, że test chi-kwadrat jest przydatny, aby sprawdzić, czy próbka znacznie różni się od zestawu wartości oczekiwanych.

Na przykład, oto tabela wyników ankiety dotyczącej ulubionych kolorów ludzi (n = 15 + 13 + 10 + 17 = 55 wszystkich respondentów):

red,blue,green,yellow

15,13,10,17

Test chi-kwadrat może mi powiedzieć, czy ta próbka znacznie różni się od zerowej hipotezy o równym prawdopodobieństwie osób lubiących każdy kolor.

Pytanie: Czy test można przeprowadzić na proporcjach wszystkich respondentów, którzy lubią określony kolor? Jak poniżej:

red,blue,green,yellow

0.273,0.236,0.182,0.309

Gdzie oczywiście 0,273 + 0,236 + 0,182 + 0,309 = 1.

Jeśli test chi-kwadrat nie jest odpowiedni w tym przypadku, jaki test byłby? Dzięki!

Edycja: Próbowałem @Roman Luštrik poniżej odpowiedzi i otrzymałem następujący wynik: dlaczego nie otrzymuję wartości p i dlaczego R mówi „przybliżenie chi-kwadrat może być niepoprawne”?

> chisq.test(c(0,0,0,8,6,2,0,0),p = c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0))

    Chi-squared test for given probabilities

data:  c(0, 0, 0, 8, 6, 2, 0, 0) 
X-squared = NaN, df = 7, p-value = NA

Warning message:
In chisq.test(c(0, 0, 0, 8, 6, 2, 0, 0), p = c(0.406197174, 0.088746395,  :
  Chi-squared approximation may be incorrect

1
W drugim przypadku, czy zakładasz, że znasz całkowitą wielkość próby? Albo nie?
kardynał

@ cardinal: tak, znam całkowitą wielkość próby.
hpy

3
następnie pomnóż proporcje przez całkowitą wielkość próbki, aby przekształcić się w tabelę zliczeń, i zastosuj chi-sq. metoda odpowiadająca Twojemu pierwszemu przykładowi.
Aaron,

Podejrzewam, że pytasz o test „dobroci dopasowania” (używając kwadratu chi). Zastosowanie zostało wyjaśnione poniżej. Pozdrawiam, Tal
Tal Galili

Odpowiedzi:


7

Popraw mnie, jeśli się mylę, ale myślę, że można to zrobić w R za pomocą tego polecenia

> chisq.test(c(15,13,10,17))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 1.9455, df = 3, p-value = 0.5838

Zakłada się proporcje po 1/4. Możesz modyfikować oczekiwane wartości za pomocą argumentu p. Na przykład uważasz, że ludzie mogą preferować (z dowolnego powodu) jeden kolor w stosunku do innych kolorów.

> chisq.test(c(15,13,10,17), p = c(0.5, 0.3, 0.1, 0.1))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 34.1515, df = 3, p-value = 1.841e-07

2
Podejrzewam, że widzisz to z powodu niewielkiej liczby komórek (niektóre książki, które przeczytałem, sugerują minimum 5 na komórkę). Może ktoś bardziej kompetentny na ten temat może się w to włożyć?
Roman Luštrik,

1
Zauważ również, że możesz uzyskać wartość p, jeśli ostatnia wartość prawdopodobieństwa jest większa od zera (ale ostrzeżenie nadal pozostaje).
Roman Luštrik,

1
Ott & Longnecker (Wprowadzenie do metod statystycznych i analizy danych, wydanie piąte) stwierdza na stronie 504, że każda komórka powinna mieć co najmniej pięć, aby wygodnie korzystać z aproksymacji.
Roman Luštrik,

1
@penyuan: Powinieneś wspomnieć, że masz dość zerową liczbę. Roman ma rację, użycie chi-kwadrat w tym przypadku po prostu nie działa z powodów, o których wspomniał.
Joris Meys,

1
@penyuan: Dodałem odpowiedź z pewnymi opcjami.
Joris Meys,

6

Korzystając z dodatkowych informacji, które podałeś (ponieważ niektóre wartości mają wartość 0), jest całkiem oczywiste, dlaczego twoje rozwiązanie nic nie zwraca. Po pierwsze, prawdopodobieństwo wynosi 0, więc:

  • w roztworze Henry 0 co najmniej jednym Iei
  • w rozwiązaniu prawdopodobieństwa logiczne wynosi 0 dla co najmniej jednego inpi

Co uniemożliwia podziały. Teraz to mówię oznacza, że ​​nie można osiągnąć takiego wyniku. Jeśli tak, równie dobrze możesz po prostu usunąć go z danych (patrz komentarz @cardinal). Jeśli masz na myśli wysoce nieprawdopodobne, pierwszym „rozwiązaniem” może być zwiększenie tej szansy 0 bardzo małą liczbą.p=0

Dany :

X <- c(0,0,0,8,6,2,0,0)
p <- c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0)

Mógłbyś :

> p2 <- p + 1e-6
> chisq.test(X,p2)

        Pearson's Chi-squared test

data:  X and p2 
X-squared = 24, df = 21, p-value = 0.2931

Ale to nie jest poprawny wynik. W każdym razie należy unikać stosowania testu chi-kwadrat w tych przypadkach granicznych. Lepszym podejściem jest zastosowanie metody ładowania początkowego, obliczanie dostosowanej statystyki testowej i porównywanie statystyki z próbki z rozkładem uzyskanym za pomocą ładowania początkowego.

W kodzie R może to być (krok po kroku):

# The function to calculate the adapted statistic.
# We add 0.5 to the expected value to avoid dividing by 0
Statistic <- function(o,e){
    e <- e+0.5
    sum(((o-e)^2)/e)
}

# Set up the bootstraps, based on the multinomial distribution
n <- 10000
bootstraps <- rmultinom(n,size=sum(X),p=p)

# calculate the expected values
expected <- p*sum(X)

# calculate the statistic for the sample and the bootstrap
ChisqSamp <- Statistic(X,expected)
ChisqDist <- apply(bootstraps,2,Statistic,expected)

# calculate the p-value
p.value <- sum(ChisqSamp < sort(ChisqDist))/n
p.value

Daje to wartość p wynoszącą 0, co jest znacznie bardziej zgodne z różnicą między obserwowaną a oczekiwaną. Pamiętaj, że ta metoda zakłada, że ​​dane pochodzą z dystrybucji wielomianowej. Jeśli to założenie nie ma miejsca, wartość p również nie ma miejsca.


1
pi=0iipi=0pi=1/6i61,,10pokazać się. Następnie test chi-kwadrat jest nadal aktualny; po prostu sumujemy pierwsze sześć wartości.
kardynał

@ cardinal: Właśnie opisałem dane, gdzie oczekiwana wartość wynosi 0, ale obserwowana nie musi być. To właśnie nam dało OP (choć na drugim etapie wydaje się to raczej nierealne). Dlatego dodanie odrobiny do wartości p, aby uczynić ją wysoce nieprawdopodobną zamiast niemożliwą, pomoże, ale nawet wtedy chi-kwadrat jest w tym przypadku nieważny z powodu dużej liczby komórek tabeli z liczbą mniejszą niż 5 (jak pokazuje to kod). W odpowiedzi dodałem rozważanie, dziękuję za wskaźnik.
Joris Meys,

pi=0

4

1E(xi)

ψ=ixilog(xinpi)

xiii{red, blue, green, yellow}n55pipi=pj

χ2=i(xinpi)2npi2ψ

fi=xin

ψ=nifilog(fipi)
χ2=ni(fipi)2pi

ψψpi1piψ

H1H2piψ1ψ2exp(ψ1ψ2)H2H1exp(12χ1212χ22) podaje przybliżenie tego współczynnika prawdopodobieństwa.

H2ψ2=χ22=0 , a zatem statystyki chi-kwadrat i psi mówią „jak daleko” idealnie pasuje do każdej pojedynczej hipotezy, od tej, która dokładnie pasuje do obserwowanych danych.

χ22npi<10ψ


1
Jestem prawie pewien, że oczekiwane częstotliwości nie mogą być większe niż 10. :)
kardynał

@cardinal - cieszę się, że to był twój sprzeciw - ponieważ oznacza to, że reszta mojej odpowiedzi musiała być dobra :).
prawdopodobieństwo

Wow, mam nadzieję, że nie zyskuję reputacji tak wybrednej / zrzędliwej.
kardynał

1
ψ2ψχ2χ22ψ0χ22ψχ2
kardynał

χ22ψ

3

Tak, możesz przetestować hipotezę zerową: „H0: prop (czerwony) = prop (niebieski) = prop (zielony) = prop (żółty) = 1/4” za pomocą testu chi kwadrat, który porównuje proporcje badania (0.273 , ...) do oczekiwanych proporcji (1/4, 1/4, 1/4, 1/4)


Żeby tylko potwierdzić, będzie też działał z oczekiwanymi proporcjami, które nie są sobie równe?
hpy

4
test nie będzie miał znaczenia, chyba że znasz pełny rozmiar próbki. Proporcje 1,0 / 0,0 / 0,0 / 0,0 średnie bardzo różnych miejscach, czy są one w próbce wielkości 1, w przeciwieństwie do próbki o wielkości 100
Aaron

Tak, znam całkowitą wielkość próbki.
hpy

2

Statystyka testu dla testu chi-kwadrat Pearsona jest

i=1n(OiEi)2Ei

oi=Oinei=Einn=i=1nOii=1nei=1

ni=1n(oiei)2ei

więc test istotności zaobserwowanych proporcji zależy od wielkości próbki, tak jak można się spodziewać.

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.