forum.alglib.net

ALGLIB forum
It is currently Thu Nov 28, 2024 5:37 am

All times are UTC


Forum rules


1. This forum can be used for discussion of both ALGLIB-related and general numerical analysis questions
2. This forum is English-only - postings in other languages will be removed.



Post new topic Reply to topic  [ 7 posts ] 
Author Message
 Post subject: Mann-Whitney U test correctness
PostPosted: Thu Jul 18, 2013 2:06 pm 
Offline

Joined: Thu Jul 18, 2013 1:56 pm
Posts: 4
ДВС!

Хотел бы уточнить насколько тщательно Вы тестировали непараметрический тест Манна-Витни на равенство медиан двух выборок?
( http://www.alglib.net/hypothesistesting/mannwhitneyu.php )

Меня настораживает следующее поведение: при больших объемах выборок (по 1024 элементов в каждой, сгенерированы из стандартного гаусса либо из равномерного распределения [0; 1]) тест не может определить равенство медиан. И даже даёт перевес в пользу rightTail p-value.

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

ПС AlgLib v3.7.0.0, версия для C#.


Top
 Profile  
 
 Post subject: Re: Корректен ли тест Манна-Витни на равенство медиан?
PostPosted: Fri Jul 19, 2013 12:04 pm 
Offline
Site Admin

Joined: Fri May 07, 2010 7:06 am
Posts: 927
Добрый день!

Замечание услышал, сейчас начинаю разбираться с тестированием. Я отпишусь чуть позже.


Top
 Profile  
 
 Post subject: Re: Mann-Whitney U test correctness
PostPosted: Fri Jul 19, 2013 12:21 pm 
Offline
Site Admin

Joined: Fri May 07, 2010 7:06 am
Posts: 927
Скажите, а нельзя ли запостить код, в котором воспроизводится это поведение? Я еще раз провел тестирование, теперь уже в ручном режиме. При равенстве медиан lefttail, righttail и bothtails имеют ожидаемое равномерное распределение в диапазоне [0,1]. Т.е. всё работает.

Возможно, мы по-разному интерпретируем результаты теста? Или вы использовали генератор случайных чисел с дефектом?


Top
 Profile  
 
 Post subject: Re: Mann-Whitney U test correctness
PostPosted: Fri Jul 19, 2013 10:50 pm 
Offline

Joined: Thu Jul 18, 2013 1:56 pm
Posts: 4
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 для двух-хвостой статистики и
сравнительно низкие для обеих односторонних. Потому что на мой взгляд именно это и будет служить индикацией равенства медиан в этих выборках.

Если же тест должен вести себя как-то по-другому, не могли бы Вы указать алгоритм детектирования равенства медиан на основании получаемых статистик? Потому что сейчас этот код позволяет хорошо детектировать их отличия, но по факту бесполезен для подтверждения равенства.

ПС Пробовал генерить больше точек -- качественно поведение такое же.


Top
 Profile  
 
 Post subject: Re: Mann-Whitney U test correctness
PostPosted: Sat Jul 20, 2013 7:53 am 
Offline
Site Admin

Joined: Fri May 07, 2010 7:06 am
Posts: 927
Всё работает правильно, как должно работать. При равенстве медиан тест возвращает высокое значение почти всегда, но не всегда:
* 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 на предмет принципов проверки гипотез


Top
 Profile  
 
 Post subject: Re: Mann-Whitney U test correctness
PostPosted: Mon Jul 22, 2013 3:06 pm 
Offline

Joined: Thu Jul 18, 2013 1:56 pm
Posts: 4
Правильно ли понимаю, что цепочка рассуждений теперь должна быть примерно такой:
1. если тест выдал мне большое значение lefttail или righttail (>0.95) -- значит меданы различны (и можно примерно прикинуть в какой выборке медиана больше)

2. Во всех остальных случаях гипотеза на равенство медиан принимается. Правда мы до конца не знаем достоверность этого вывода.
То есть это не доказательство честности и порядочности этих двух семплов, а просто недостаточное количество улик против них?

Тогда следующий вопрос: есть ли статистические тесты для которых нулевой гипотезой является отличие медиан двух выборок?
Вряд ли, конечно, но вдруг?..


Top
 Profile  
 
 Post subject: Re: Mann-Whitney U test correctness
PostPosted: Mon Jul 22, 2013 3:33 pm 
Offline
Site Admin

Joined: Fri May 07, 2010 7:06 am
Posts: 927
1. Правильно, но не совсем. Во-первых, вы вероятно имели в виду не большое значение, а маленькое. А во-вторых, точная формулировка выглядит так: "если тест выдал маленькое значение p, то либо медианы различны, либо они равны и мы имеем дело с редким ложным срабатыванием, происходящим не чаще, чем однажды из 1/p раз".

Чем ниже p, тем ниже вероятность того, что это - ложное срабатывание. Например, при p=0.05 можно получить точно такой же результат в одном случае из 20, даже если медианы равны.

2. Да, именно - улик недостаточно.

3. Я о таких тестах не слышал, и как мне кажется, их существование в принципе невозможно - за исключением одного случая. Когда мы заранее говорим, чему именно равно это различие в медианах. Без этого просто невозможно построить распределение изучаемого параметра (в данном случае - параметра Манна-Уитни) при условии истинности нуль-гипотезы.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group