forum.alglib.net http://forum.alglib.net/ |
|
Mann-Whitney U test correctness http://forum.alglib.net/viewtopic.php?f=2&t=886 |
Page 1 of 1 |
Author: | ch5oh [ Thu Jul 18, 2013 2:06 pm ] |
Post subject: | Mann-Whitney U test correctness |
ДВС! Хотел бы уточнить насколько тщательно Вы тестировали непараметрический тест Манна-Витни на равенство медиан двух выборок? ( http://www.alglib.net/hypothesistesting/mannwhitneyu.php ) Меня настораживает следующее поведение: при больших объемах выборок (по 1024 элементов в каждой, сгенерированы из стандартного гаусса либо из равномерного распределения [0; 1]) тест не может определить равенство медиан. И даже даёт перевес в пользу rightTail p-value. При этом введение даже небольшой разницы в медианы детектируется весьма уверенно. Может ли быть в коде какой-то нюанс, связанный именно со случаем точного равенства медиан? ПС AlgLib v3.7.0.0, версия для C#. |
Author: | Sergey.Bochkanov [ Fri Jul 19, 2013 12:04 pm ] |
Post subject: | Re: Корректен ли тест Манна-Витни на равенство медиан? |
Добрый день! Замечание услышал, сейчас начинаю разбираться с тестированием. Я отпишусь чуть позже. |
Author: | Sergey.Bochkanov [ Fri Jul 19, 2013 12:21 pm ] |
Post subject: | Re: Mann-Whitney U test correctness |
Скажите, а нельзя ли запостить код, в котором воспроизводится это поведение? Я еще раз провел тестирование, теперь уже в ручном режиме. При равенстве медиан lefttail, righttail и bothtails имеют ожидаемое равномерное распределение в диапазоне [0,1]. Т.е. всё работает. Возможно, мы по-разному интерпретируем результаты теста? Или вы использовали генератор случайных чисел с дефектом? |
Author: | ch5oh [ Fri Jul 19, 2013 10:50 pm ] |
Post subject: | Re: Mann-Whitney U test correctness |
Sergey.Bochkanov wrote: Скажите, а нельзя ли запостить код, в котором воспроизводится это поведение? Я еще раз провел тестирование, теперь уже в ручном режиме. При равенстве медиан lefttail, righttail и bothtails имеют ожидаемое равномерное распределение в диапазоне [0,1]. Т.е. всё работает. Ммм... под рукой точного теста нет, но там всё по-простому: сгенерировал два семпла, сравнил. Примерно так (пишу из головы прямо в форум, поэтому могут быть синтаксические неточности -- прошу прощения): Code: Random rnd = new Random(); double[] s1 = new double[1024]; double[] s2 = new double[1024]; for(int j=0; j<1024; j++) { s1[j] = rnd.NextDouble() - 0.5; s2[j] = rnd.NextDouble() - 0.5; } double both, lt, rt; alglib.mannwhitneyutest(s1, s1.Length, s2, s2.length, out both, out lt, out rt); if (both < 0.95) throw new Exception(); Как-то ожидаю, что "тест на равенство медиан" при равенстве медиан вернет мне высокое значение для двустороннего p-value. А по факту both у меня порядка 0.4, lt ~ 0.2, rt ~ 0.75. Это никак не вяжется со смыслом теста и настораживает. Можете написать какие значения для этих трёх p-value у Вас получаются? При этом если ввести искуственное смещение на пару сотых (имхо небольшое), то всё детектируется очень четко и однозначно. Например: Code: s1[j] = (rnd.NextDouble() - 0.5) + 0.01; s2[j] = (rnd.NextDouble() - 0.5) - 0.01; даёт очень низкое both < 0.1. Sergey.Bochkanov wrote: Возможно, мы по-разному интерпретируем результаты теста? Или вы использовали генератор случайных чисел с дефектом? Дефект в генераторе очень вряд ли: поведение схоже как на стандартном NextDouble(), так и на гауссе N(0, 1) из учебника. Что касается моей интерпретации -- это запросто. Повторюсь: в данном тесте ожидаю получить очень высокое p-value для двух-хвостой статистики и сравнительно низкие для обеих односторонних. Потому что на мой взгляд именно это и будет служить индикацией равенства медиан в этих выборках. Если же тест должен вести себя как-то по-другому, не могли бы Вы указать алгоритм детектирования равенства медиан на основании получаемых статистик? Потому что сейчас этот код позволяет хорошо детектировать их отличия, но по факту бесполезен для подтверждения равенства. ПС Пробовал генерить больше точек -- качественно поведение такое же. |
Author: | Sergey.Bochkanov [ Sat Jul 20, 2013 7:53 am ] |
Post subject: | Re: Mann-Whitney U test correctness |
Всё работает правильно, как должно работать. При равенстве медиан тест возвращает высокое значение почти всегда, но не всегда: * p-значение больше 0.5 - в 50% случаев * p-значение больше 0.1 - в 90% случаев * p-значение больше 0.01 - в 99% случаев Однако ничто не мешает тесту при равенстве медиан вернуть очень маленькое p, например 0.001. Такое произойдет примерно в 1 случае из 1000. В случае, если нуль-гипотеза верна, p-значение имеет равномерное распределение из (0,1), и не обязано тяготеть к правой границе интервала. Вообще, вы очень точно указали главное свойство этого теста - он служит для опровержения гипотезы о равенстве медиан, но не может подтвердить её. Например, если разница в медианах ОЧЕНЬ маленькая, на выборке размером 100 элементов тест может не найти отличий. Но это не значит, что на выборке размером 100.000 элементов отличий также не будет. Статистические тесты, как правило, не подтверждают гипотезы, а только опровергают их - либо не находят оснований для опровержения. Я бы рекомендовал почитать вот эту ссылку http://en.wikipedia.org/wiki/Statistical_hypothesis_testing на предмет принципов проверки гипотез |
Author: | ch5oh [ Mon Jul 22, 2013 3:06 pm ] |
Post subject: | Re: Mann-Whitney U test correctness |
Правильно ли понимаю, что цепочка рассуждений теперь должна быть примерно такой: 1. если тест выдал мне большое значение lefttail или righttail (>0.95) -- значит меданы различны (и можно примерно прикинуть в какой выборке медиана больше) 2. Во всех остальных случаях гипотеза на равенство медиан принимается. Правда мы до конца не знаем достоверность этого вывода. То есть это не доказательство честности и порядочности этих двух семплов, а просто недостаточное количество улик против них? Тогда следующий вопрос: есть ли статистические тесты для которых нулевой гипотезой является отличие медиан двух выборок? Вряд ли, конечно, но вдруг?.. |
Author: | Sergey.Bochkanov [ Mon Jul 22, 2013 3:33 pm ] |
Post subject: | Re: Mann-Whitney U test correctness |
1. Правильно, но не совсем. Во-первых, вы вероятно имели в виду не большое значение, а маленькое. А во-вторых, точная формулировка выглядит так: "если тест выдал маленькое значение p, то либо медианы различны, либо они равны и мы имеем дело с редким ложным срабатыванием, происходящим не чаще, чем однажды из 1/p раз". Чем ниже p, тем ниже вероятность того, что это - ложное срабатывание. Например, при p=0.05 можно получить точно такой же результат в одном случае из 20, даже если медианы равны. 2. Да, именно - улик недостаточно. 3. Я о таких тестах не слышал, и как мне кажется, их существование в принципе невозможно - за исключением одного случая. Когда мы заранее говорим, чему именно равно это различие в медианах. Без этого просто невозможно построить распределение изучаемого параметра (в данном случае - параметра Манна-Уитни) при условии истинности нуль-гипотезы. |
Page 1 of 1 | All times are UTC |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |