![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 ![]() |
Уважаемые коллеги.
Что-то я зашел в тупик, прошу помощи. Задача классическая. Требуется провести одновыборочный z-тест для пропорций. Казалось бы все понятно. В любом учебнике, и даже информации на cran.r-project.org находим: Z=(pвыб-pтеор)/SQRT(pтеор*(1-pтеор)/N) где pвыб - доля положительных результатов в выбоке, pтеор - теоретически ожидаемая доля положительных результатов N - объем выборки. И все бы хорошо. Но вот вопрос - а каково буде значение этого критерия при pтеор=0 ? То есть, мы не ожидаем появления положительных событий вообще, а они происходят? Попытка посчитать "на бумажке" говорит о том, что знаменатель превращается в ноль и на этом все должно-бы закончиться. Причем нигде, никогда никаких специально оговоренных случаев или исключений для этого теста я не встречал. Готов допустить, что это ограничение считается "очевидным" и поэтому даже не упоминается. Но тогда надо допустить, что разработчики пакетов и функций реализующих этот тест будут выполнять такую проверку внутри реализаций. Если это действительно фундаментальное исключение. Ан нет. Пробую посчитать результат на Python с помощью функции proportions_ztest из пакета statsmodels.stats.proportion. Проверяю, что-же данная функция делает: "simple normal test for proportions. It should be the same as running the mean z-test on the data encoded 1 for event and 0 for no event so that the sum corresponds to the count.mIn the one and two sample cases with two-sided alternative, this test produces the same p-value as proportions_chisquare, since the chisquare is the distribution of the square of a standard normal distribution." И никаких ограничений. И тут неожиданность. При pтеор=0 и любом положительном значении pвыб результат спокойно высчитывается. Например - при pвыб=0.2 , N=10 имеем Z=1.5811388300841895 p_value=0.11384629800665805 и никаких сообщений об исключительной ситуации (и да, это двусторонний критерий, но суть от этого не меняется). Не могу понять, что происходит, но где-то наталкиваюсь на сообщение , что proportions_ztest из пакета statsmodels.stats.proportion реализовано по подобию функции prop.test из R. Сам я снес RStudio лет пять назад, проверить не могу, но лезу читать описание. И вдруг, с глубоким удивлением вижу там (ну, например: http://www.sthda.com/english/wiki/one-prop...on-z-test-in-r) формулу, по которой происходит расчет: Z=(pвыб-pтеор)/SQRT(pвыб*(1-pвыб)/N) Как говориться, "почувствуйте разницу"! В первую очередь, с тем, что написано на cran.r-project.org (см. ссылку в первом абзаце). В знаменателе теперь не pтеор, а pвыб. Делаю пересчет вручную, и результат, как и ожидалось, совпадает с тем, что выдает proportions_ztest (и скорее всего и prop.test). И вот теперь вопрос к знатокам. А какая-же формула корректна? Возможно-ли такая замена оценки дисперсии в знаменателе, если в результате мы получаем разные - пусть даже в одной точке - результаты? И можно-ли считать результаты, которые получены по формулам, реализованным в R и statsmodels для pтеор=0 корректными и использовать их для решения исходной задачи? Допускаю, что чего-то где-то недоучитываю. Или просто запутался. Или ответ на поверхности, но я его просто не замечаю. Буду благодарен за ваше видение ситуации. |
|
![]() |
![]() |
![]() |
![]()
Сообщение
#2
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
Спешу поделиться ссылкой о мерах против "нуля" (короче, нуля, ставшего камнем преткновения в настоящей теме, не бывает): https://www.pharmacokinetica.ru/jour/article/view/97/97 В статье и другие полезные формулы, примеры и ссылки.
P.S. Для комплекта https://www.pharmacokinetica.ru/jour/article/view/253/248 Сообщение отредактировал Игорь - 26.02.2023 - 17:02 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 1219 Регистрация: 13.01.2008 Из: Челябинск Пользователь №: 4704 ![]() |
Спешу поделиться ссылкой о мерах против "нуля" (короче, нуля, ставшего камнем преткновения в настоящей теме, не бывает): Да нет же, не рожают кенгуру китайцев, вероятность - нулевая. Я согласен с ИНО: задача совсем не одновыборочная. Раз реализуется невозможное событие, значит что-то изменилось, из ряда когда возможны только нули выбилась единица. С этого момента открываем новую линию событий, тест становится двухвыборочным, а мы начинаем считать вероятность в новых реалиях. А дядька по вашим ссылкам порадовал - реально отстал от жизни прямо на 30 лет. Я ещё в аспирантуре (год 1995) знал про точные методы для таблиц сопряжённости, про G-критерий и логлинейный анализ, про отклонения Фримана-Тьюки и прочее, что в статье даже не упоминается. Чуть позже узнал, что точный метод Фишера плох чисто теоретически, т.к. основан на гипергеометрическом распределении, а применяется к биномиальному, а также про согласованные остатки Хабермана для таблиц сопряжённости. Ещё позже, лет 7? назад - про ДИ Джеффриса, и про то, что нормальная аппроксимация Вальда плоха и не рекомендуется к использованию при расчёте ДИ вообще. Ну а 5 лет назад узнал, что шотландская приставка Мак по правилам русского языка пишется слитно и никак не отделяется: просто Макнемар (как Макдональдс). Короче, "В печку её!" (с) |
|
![]() |
![]() |
![]()
Сообщение
#4
|
|
![]() Группа: Пользователи Сообщений: 1141 Регистрация: 10.04.2007 Пользователь №: 4040 ![]() |
вероятность - нулевая. Я согласен с ИНО: задача совсем не одновыборочная. Ваш остроумный пример не имеет отношения к статистике. Да и данные как минимум неоднородны: эмпирическая выборка - часть генеральной совокупности, по которой в случае доказанной репрезентативности мы можем судить о популяции. Если событие хоть раз зафиксировано в выборке , оно не исключено в генеральной совокупности. Отсюда постулирование нулевой вероятности события в популяции некорректно. Поэтому форула может быть скорректирована, как показано в источнике. В самом деле 0,0000000000000000001 и 0 в вычислительном смысле - одно и то же: более точное значение различимого нуля называется MACHEPS и легко вычисляется для конкретной системы.реально отстал от жизни прямо на 30 лет. Что-то я за Ньютона-Рафсона и Гаусса обеспокоился - не запретили бы. Типа как у нас в областной библиотеке - получили приказ списать всю научную литературу издания до определенного года (не помню сейчас - до 2000-го, что ли). Слава богу, не сдали в макулатуру, а предложили всем желающим забрать бесплатно. Мы с коллегой десятка два хороших книг по статистике спасли.Я ещё в аспирантуре (год 1995) знал про точные методы для таблиц сопряжённости, про G-критерий и логлинейный анализ, про отклонения Фримана-Тьюки и прочее, что в статье даже не упоминается. Чуть позже узнал, что точный метод Фишера плох чисто теоретически, т.к. основан на гипергеометрическом распределении, а применяется к биномиальному, а также про согласованные остатки Хабермана для таблиц сопряжённости. Ещё позже, лет 7? назад - про ДИ Джеффриса, и про то, что нормальная аппроксимация Вальда плоха и не рекомендуется к использованию при расчёте ДИ вообще. Поэтому и предпочитаю при разработке ПО ссылки на монографии, пусть даже "просроченные". Идея подсмотрена у лучших программных проектов. Статьи - в редких случаях. Уж очень часто их отзывают - об отзыве монографий не слышал.Ну а 5 лет назад узнал, что шотландская приставка Мак по правилам русского языка пишется слитно и никак не отделяется: просто Макнемар (как Макдональдс). Короче, "В печку её!" (с) Точно! А предмет обсуждения в данной теме по-русски называется "доля" (из английского перевода single proportion драматическим образом пропало первое слово, превратив предмет обсуждения непонятно во что). А что именно называется пропорцией - первая ссылка в поиске Яндекса. Подтверждение сказанного: формулы и терминология из популярной программы https://www.spss-tutorials.com/z-test-and-c...gle-proportion/
Сообщение отредактировал Игорь - 3.03.2023 - 09:58 ![]() Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
![]() |
![]() |
![]() ![]() |