Можно ли использовать квадрат Чи для сравнения пропорций?


13

Я читал, что тест хи-квадрат полезен, чтобы увидеть, значительно ли образец отличается от набора ожидаемых значений.

Например, вот таблица результатов опроса относительно любимых цветов людей (всего n = 15 + 13 + 10 + 17 = 55 респондентов):

red,blue,green,yellow

15,13,10,17

Тест хи-квадрат может сказать мне, значительно ли этот образец отличается от нулевой гипотезы равной вероятности людей, которым нравится каждый цвет.

Вопрос: Можно ли выполнить тест на пропорциях от общего числа респондентов, которым нравится определенный цвет? Как ниже:

red,blue,green,yellow

0.273,0.236,0.182,0.309

Где, конечно, 0,273 + 0,236 + 0,182 + 0,309 = 1.

Если тест хи-квадрат не подходит в этом случае, какой тест будет? Благодарность!

Изменить: я попытался @Roman Luštrik ответ ниже, и получил следующий вывод, почему я не получаю p-значение и почему R говорит: «Приближение хи-квадрат может быть неправильным»?

> 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
Во втором случае вы предполагаете, что знаете общий размер выборки? Или не?
кардинал

@ Cardinal: да, я знаю общий размер выборки.
hpy

3
затем просто умножьте пропорции на общий размер выборки, чтобы преобразовать их в таблицу подсчетов, и примените chi-sq. метод, соответствующий вашему первому примеру.
Аарон

Я подозреваю, что вы спрашиваете о тесте на "пригодность" (с использованием квадрата ци). Использование которого было объяснено ниже. Приветствия, Тал
Тал Галили

Ответы:


7

Поправьте меня, если я ошибаюсь, но я думаю, что это можно сделать в R с помощью этой команды

> 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

Это предполагает пропорции 1/4 каждый. Вы можете изменить ожидаемые значения с помощью аргумента p. Например, вы думаете, что люди могут предпочесть (по любой причине) один цвет другим (и).

> 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
Я подозреваю, что вы видите это из-за небольшого количества клеток (некоторые книги, которые я читал, предлагают минимум 5 на клетку). Может быть, кто-то более осведомленный в этой теме может скинуться?
Роман Луштрик

1
Также обратите внимание, что вы можете получить значение ap, если вы сделаете последнюю из ваших вероятностей больше нуля (но предупреждение все еще остается).
Роман Луштрик

1
Отт и Лонгнекер (Введение в статистические методы и анализ данных, 5-е издание) на странице 504 утверждают, что для удобного использования аппроксимации в каждой ячейке должно быть не менее пяти.
Роман Луштрик

1
@penyuan: Вы должны были упомянуть, что у вас довольно много нулевых счетов. Роман прав, использование хи-квадрата в этом случае просто не работает по причинам, которые он упомянул.
Йорис Мейс

1
@penyuan: я добавил ответ, давая вам несколько вариантов.
Йорис Мейс

6

Используя предоставленную вами дополнительную информацию (поскольку некоторые значения равны 0), становится совершенно очевидно, почему ваше решение ничего не возвращает. Например, у вас есть вероятность, равная 0, поэтому:

  • в решении Генри 0 для по крайней мере одного яei
  • в решении вероятности является 0 для по крайней мере одного inpi

Что делает невозможным разделение. Теперь говорят, что p=0 , это означает, что такой результат невозможен. Если это так, вы можете просто стереть его из данных (см. Комментарий @cardinal). Если вы имеете в виду крайне маловероятное, первое «решение» может заключаться в том, чтобы увеличить этот 0 шанс с очень небольшим числом.

Данный :

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)

Вы могли бы сделать:

> 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

Но это не правильный результат. В любом случае, следует избегать использования критерия хи-квадрат в этих пограничных случаях. Лучшим подходом является использование метода начальной загрузки, вычисление адаптированной статистики теста и сравнение данных из выборки с распределением, полученным начальной загрузкой.

В коде R это может быть (шаг за шагом):

# 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

Это дает значение p, равное 0, что намного больше соответствует разнице между наблюдаемым и ожидаемым. Имейте в виду, этот метод предполагает, что ваши данные взяты из полиномиального распределения. Если это предположение не выполняется, значение p также не выполняется.


1
Вы могли бы пересмотреть свое первое утверждение, которое я не считаю правильным. Если для некоторого i и наблюдаемые значения равны нулю (что им лучше быть), то это просто сводится к подмодели. В результате число степеней свободы уменьшается на единицу для каждого i , так что p i = 0 . Например, рассмотрим тестирование на однородность шестигранной фильеры (то есть р я = 1 / 6 для я 6 ). Но, предположим, мы (странно) решили записать, сколько раз числа 1 , ,pi=0iipi=0pi=1/6i6 показать вверх. Тогда, тест хи-квадрат все еще действителен; мы просто суммируем по первым шести значениям. 1,,10
кардинал

@cardinal: я только что описал данные, где ожидаемое значение равно 0, но наблюдаемое не должно быть. Это то, что нам дал OP (хотя, если подумать, это действительно звучит довольно нереально). Следовательно, добавление небольшого значения к значению p, чтобы сделать его крайне маловероятным, а не невозможным, поможет, но даже в этом случае хи-квадрат в этом случае недопустим из-за большого количества ячеек таблицы со счетами менее 5 (как продемонстрировано код). Я добавил соображения в мой ответ, спасибо за указатель.
Йорис Мейс

да, я бы сказал, если , но вы соблюдаете счет для этой ячейки, тогда у вас все равно есть более серьезные проблемы. :)pi=0
кардинал

4

Критерий хи-квадрат хорош, если ожидаемые значения велики, обычно выше 10 - хорошо. ниже этого часть имеет тенденцию доминировать в тесте. Точная статистика теста определяется как:1E(xi)

ψ=ixilog(xinpi)

Где - наблюдаемый счет в категории i . i { красный, синий, зеленый, желтый } в вашем примере. n - ваш размер выборки, равный 55 в вашем примере. p i - это гипотеза, которую вы хотите проверить - наиболее очевидным является p i = p j (все вероятности равны). Вы можете показать, что статистика хи-квадрат:xiii{red, blue, green, yellow}n55pipi=pj

χ2=i(xinpi)2npi2ψ

In terms of the observed frequencies fi=xin we get:

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

(Note that ψ is the effectively the KL divergence between the hypothesis and the observed values). You may be able to see intuitively why ψ is better for small pi, because it does have a 1pi but it also has a log function which is absent from the chi-square, this "reigns in" the extreme values caused by small expected counts. Now the "exactness" of this ψ statistic is not as an exact chi-square distribution - it is exact in a probability sense. The exactness comes about in the following manner, from Jaynes 2003 probability theory: the logic of science.

If you have two hypothesis H1 and H2 (i.e. two sets of pi values) that you wish to test, each with test statistics ψ1 and ψ2 respectively, then exp(ψ1ψ2) gives you the likelihood ratio for 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.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.