Понимание функции chi2gof в Matlab

Я пытаюсь понять, как использовать функцию chi2gof в Matlab с помощью очень простого теста. Предположим, что я подбрасываю монету 190 раз и получаю 94 орла и 96 решек. Нулевая гипотеза должна заключаться в том, что я получаю 95 ч, 95 т. Насколько я понимаю документацию, я должен иметь возможность проверить гипотезу, запустив

[h,p,stats] = chi2gof([94,96], 'expected', [95,95])

Однако это возвращает h = 1, что предположительно означает, что нулевая гипотеза отвергается, что не имеет смысла. Еще одна особенность заключается в том, что параметр O в stats возвращает значение O: [0 2], но разве это не должно быть моим вводом ([94,96])? Что я делаю не так?

Что я делаю не так?


person Kristian Rafael Alvarez    schedule 28.11.2017    source источник
comment
Этот пост может вам помочь: math.stackexchange.com/a/1819440/356329   -  person OmG    schedule 28.11.2017


Ответы (1)


Проблема в том, что вы передаете совокупный результат подбрасывания монеты chi2gof. Проверка согласия должна проводиться на полном образце. Из официальной документации (ссылка здесь):

  • x = пример данных для проверки гипотезы в виде вектора (неверная часть кода)
  • Expected = ожидаемое количество для каждого бина (правильная часть вашего кода)

Давайте сделаем пример, используя правильные переменные:

ct = randsample([0 1],190,true,[0.49 0.51]);
[h,p,stats] = chi2gof(ct,'Expected',[95 95]);

Возвращаемое значение h равно 0, что абсолютно правильно.

Теперь давайте сделаем пример, который должен потерпеть неудачу:

ct = randsample([0 1],190,true,[0.05 0.95]);
[h,p,stats] = chi2gof(ct,'Expected',[95 95]);

Как видите, h, возвращенное из этого второго теста, будет равно 1.

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

person Tommaso Belluzzo    schedule 28.11.2017