Kann Chi-Quadrat verwendet werden, um die Proportionen zu vergleichen?


13

Ich habe gelesen, dass der Chi-Quadrat-Test nützlich ist, um festzustellen, ob sich eine Stichprobe erheblich von einer Reihe von erwarteten Werten unterscheidet.

Hier ist zum Beispiel eine Tabelle mit Ergebnissen einer Umfrage zu den Lieblingsfarben der Menschen (n = 15 + 13 + 10 + 17 = 55 Befragte insgesamt):

red,blue,green,yellow

15,13,10,17

Ein Chi-Quadrat-Test kann mir sagen, ob sich diese Stichprobe signifikant von der Nullhypothese der gleichen Wahrscheinlichkeit unterscheidet, dass Menschen jede Farbe mögen.

Frage: Kann der Test mit den Anteilen der Befragten durchgeführt werden, die eine bestimmte Farbe mögen? Wie unten:

red,blue,green,yellow

0.273,0.236,0.182,0.309

Dabei ist natürlich 0,273 + 0,236 + 0,182 + 0,309 = 1.

Wenn der Chi-Quadrat-Test in diesem Fall nicht geeignet ist, welcher Test wäre das? Vielen Dank!

Bearbeiten: Ich habe versucht, @Roman Luštrik unten zu beantworten, und habe die folgende Ausgabe erhalten, warum erhalte ich keinen p-Wert und warum sagt R "Chi-Quadrat-Approximation kann falsch sein"?

> 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
Gehen Sie im zweiten Fall davon aus, dass Sie den gesamten Stichprobenumfang kennen? Oder nicht?
Kardinal

@ Cardinal: Ja, ich kenne die gesamte Stichprobengröße.
HPY

3
Dann multiplizieren Sie einfach die Proportionen mit der Gesamtgröße der Stichprobe, um sie in eine Zählungstabelle umzuwandeln, und wenden Sie das Chi-Quadrat an. Methode entsprechend Ihrem ersten Beispiel.
Aaron

Ich vermute, Sie fragen nach dem "Goodness of Fit" -Test (mit dem Chi-Quadrat). Die Verwendung davon wurde unten erklärt. Prost, Tal
Tal Galili

Antworten:


7

Korrigieren Sie mich, wenn ich falsch liege, aber ich denke, dass dies mit diesem Befehl in R erledigt werden kann

> 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

Dies nimmt Proportionen von jeweils 1/4 an. Sie können die erwarteten Werte über ein Argument ändern p. Sie glauben beispielsweise, dass die Leute (aus welchen Gründen auch immer) eine Farbe der anderen vorziehen.

> 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
Ich vermute, Sie sehen dies aufgrund einer geringen Anzahl von Zellen (einige Bücher, die ich gelesen habe, schlagen eine Mindestanzahl von 5 pro Zelle vor). Vielleicht kann jemand, der sich mit dem Thema besser auskennt, helfen?
Roman Luštrik

1
Beachten Sie auch, dass Sie einen p-Wert erhalten können, wenn Sie die letzte Wahrscheinlichkeit größer als Null machen (die Warnung bleibt jedoch bestehen).
Roman Luštrik

1
Ott & Longnecker (Einführung in statistische Methoden und Datenanalyse, 5. Auflage) gibt auf Seite 504 an, dass jede Zelle mindestens fünf Zellen umfassen sollte, um die Approximation bequem zu verwenden.
Roman Luštrik

1
@penyuan: Du hättest erwähnen sollen, dass du ziemlich null Zählungen hast. Roman hat recht, in diesem Fall funktioniert die Verwendung eines Chi-Quadrats aus den von ihm genannten Gründen einfach nicht.
Joris Meys

1
@penyuan: Ich habe eine Antwort hinzugefügt, die Ihnen einige Optionen gibt.
Joris Meys

6

Wenn Sie die zusätzlichen Informationen verwenden (da einige der Werte 0 sind), ist es ziemlich offensichtlich, warum Ihre Lösung nichts zurückgibt. Zum einen haben Sie eine Wahrscheinlichkeit von 0, also:

  • ei in der Lösung von Henry ist 0 für mindestens ein i
  • npi in der Lösung der Wahrscheinlichkeitslogik ist 0 für mindestens ein i

Das macht die Spaltungen unmöglich. Sagen wir nun, dass ist es unmöglich, dieses Ergebnis zu erzielen. Wenn ja, können Sie es auch einfach aus den Daten löschen (siehe Kommentar von @cardinal). Wenn Sie sehr unwahrscheinlich meinen, könnte eine erste "Lösung" darin bestehen, diese 0-Chance mit einer sehr kleinen Zahl zu erhöhen.p=0

Gegeben :

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)

Du könntest es tun :

> 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

Dies ist jedoch kein korrektes Ergebnis. In diesen Grenzfällen sollte auf jeden Fall die Verwendung des Chi-Quadrat-Tests vermieden werden. Ein besserer Ansatz ist die Verwendung eines Bootstrap-Ansatzes, bei dem eine angepasste Teststatistik berechnet und die aus der Stichprobe stammende mit der vom Bootstrap erhaltenen Verteilung verglichen wird.

Im R-Code könnte dies sein (Schritt für Schritt):

# 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

Dies ergibt einen p-Wert von 0, was viel mehr dem Unterschied zwischen beobachtet und erwartet entspricht. Bei dieser Methode wird jedoch davon ausgegangen, dass Ihre Daten aus einer multinomialen Verteilung stammen. Wenn diese Annahme nicht zutrifft, gilt auch der p-Wert nicht.


1
Sie könnten Ihre erste Aussage überdenken, was ich nicht für richtig halte. Wenn für einige i und die beobachteten Zählwerte Null sind (was sie besser sind), dann reduziert sich dies nur auf ein Untermodell. Der Effekt ist, dass die Anzahl der Freiheitsgrade für jedes i um eins verringert wird, so dass p i = 0 ist . Betrachten wir zum Beispiel die Prüfung der Einheitlichkeit eines sechsseitigen Würfel (das heißt P i = 1 / 6 für i & le; 6 ). Angenommen, wir beschließen (seltsamerweise), die Häufigkeit der Nummern 1 , aufzuzeichnenpi=0iipi=0pi=1/6i6 auftauchen. Dann ist der Chi-Quadrat-Test immer noch gültig; Wir addieren einfach die ersten sechs Werte. 1,,10
Kardinal

@ cardinal: Ich habe gerade die Daten beschrieben, bei denen der erwartete Wert 0 ist, der beobachtete Wert jedoch nicht sein muss. Es ist das, was OP uns gegeben hat (obwohl es sich beim zweiten Gedanken tatsächlich eher irrealistisch anhört). Daher hilft es, den p - Wert ein wenig zu addieren, um ihn eher unwahrscheinlich als unmöglich zu machen. In diesem Fall ist das Chi - Quadrat jedoch aufgrund der großen Anzahl von Tabellenzellen mit einer Anzahl von weniger als 5 ungültig (wie durch gezeigt) Code). Ich habe die Überlegung in meine Antwort eingefügt, danke für den Zeiger.
Joris Meys

ja, ich würde sagen, wenn , aber Sie eine Zählung für diese Zelle beobachten, dann haben Sie sowieso ernstere Probleme an Ihren Händen. :)pi=0
Kardinal

4

Der Chi-Quadrat-Test ist gut, solange die erwarteten Zählwerte hoch sind. In der Regel ist ein Wert über 10 in Ordnung. darunter die dominiert tendenziell den Test. Eine genaue Teststatistik wird gegeben durch:1E(xi)

ψ=ixilog(xinpi)

Wobei die beobachtete Anzahl in Kategorie i ist . i { rot, blau, grün, gelb } in deinem Beispiel. n ist Ihre Stichprobengröße, in Ihrem Beispiel gleich 55 . p i ist die Hypothese, die Sie testen möchten - am offensichtlichsten ist p i = p j (alle Wahrscheinlichkeiten sind gleich). Sie können zeigen, dass die Chi-Quadrat-Statistik:xiii{red, blue, green, yellow}n55pipi=pj

χ2=i(xinpi)2npi2ψ

In Bezug auf die beobachteten Frequenzen wir bekommen:fi=xin

2=ni(fi-pi)2

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

( Man beachte , daß ist die effektiv die KL Divergenz zwischen der Hypothese , und die beobachteten Werten). Sie können möglicherweise intuitiv erkennen, warum ψ für kleine p i besser ist , weil es eine 1 hatψψpi1piψ

H1H2piψ1ψ2exp(ψ1ψ2)H2 over H1. exp(12χ1212χ22) gives an approximation to this likelihood ratio.

Now if you choose H2 to be the "sure thing" or "perfect fit" hypothesis, then we will have ψ2=χ22=0, and thus the chi-square and psi statistic both tell you "how far" from the perfect fit any single hypothesis is, from one which fit the observed data exactly.

Final recommendation: Use χ22 statistic when the expected counts are large, mainly because most statistical packages will easily report this value. If some expected counts are small, say about npi<10, then use ψ, because the chi-square is a bad approximation in this case, these small cells will dominate the chi-square statistic.


1
I'm pretty sure the expected frequencies can't be larger than 10. :)
cardinal

@cardinal - glad that this was your objection - for it means the rest of my answer must have been good :).
probabilityislogic

Wow, I hope I'm not getting a reputation for being so picky/grumpy.
cardinal

1
I'm don't quite follow the "exact" terminology. Perhaps that is particular to Jaynes' work. Your ψ is the log-likelihood-ratio test statistic though and so 2ψ is asymptotically distributed as a χ2 distribution by Wilks' theorem. Also, χ22ψ0 in probability, which by Slutsky's theorem is enough to conclude that χ2 has the same distribution as 2ψ. Finally, it turns out that χ2 is the scorte test statistic in this problem as well, which provides another connection between the two test statistics.
cardinal

Also, Agresti (Categorical Data Analysis, 2nd ed., p. 80) claims that χ2 actually converges to a chi-squared distribution faster than 2ψ, which seems at odds with your recommendation. :)
cardinal

3

Yes, you can test the null hypothesis: "H0: prop(red)=prop(blue)=prop(green)=prop(yellow)=1/4" using a chi square test that compares the proportions of the survey (0.273, ...) to the expected proportions (1/4, 1/4, 1/4, 1/4)


Just to confirm, it will also work with expected proportions that are unequal to each other?
hpy

4
the test won't be meaningful unless you know the full sample size. Proportions of 1.0 / 0.0 / 0.0 / 0.0 mean very different things if they are from a sample of size 1 as opposed a sample of size 100.
Aaron

Yes, I DO know the total sample size.
hpy

2

The test statistic for Pearson's chi-square test is

i=1n(OiEi)2Ei

If you write oi=Oin and ei=Ein to have proportions, where n=i=1nOi is the sample size and i=1nei=1, then the test statistic is is equal to

ni=1n(oiei)2ei

so a test of the significance of the observed proportions depends on the sample size, much as one would expect.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.