Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Добавить ответ в эту темуОткрыть тему
> Критерий Коновера, и другие ранговые критерии
Игорь
сообщение 27.01.2023 - 12:46
Сообщение #1





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



При тестировании программы расчета критерия Коновера (двухвыборочного) возникло сомнение в правильности то ли формул, то ли составленной по ним программы. Формулы брались из известной монографии автора критерия. Результаты не должны сильно отличаться от эквивалентных тестов. А они отличаются. Просьба к уважаемым коллегам - указать источник с каким-либо примером расчета указанным критерием, включая исходные данные и результат. Иначе придется отложить программу до лучших времен.

Сообщение отредактировал Игорь - 27.01.2023 - 17:31


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 27.01.2023 - 16:11
Сообщение #2





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Для дисперсионного комплекса InsectSprays (тестовый пример дисперсионного анализа в R, независимые выборки)

функция ConoverTest() из пакета {DescTools} выдает буквально следующее

Код
> library(DescTools)
> ConoverTest(count~spray,InsectSprays,method="none")

Conover's test of multiple comparisons : none  

    mean.rank.diff    pval    
B-A      2.6666667  0.5314    
C-A    -40.7083333 3.7e-14 ***
D-A    -26.5833333 3.1e-08 ***
E-A    -32.8333333 7.5e-11 ***
F-A      3.4583333  0.4175    
C-B    -43.3750000 3.0e-15 ***
D-B    -29.2500000 2.4e-09 ***
E-B    -35.5000000 5.6e-12 ***
F-B      0.7916667  0.8524    
D-C     14.1250000  0.0014 **
E-C      7.8750000  0.0676 .  
F-C     44.1666667 1.4e-15 ***
E-D     -6.2500000  0.1451    
F-D     30.0416667 1.1e-09 ***
F-E     36.2916667 2.6e-12 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1


Результаты своих самоделок
- процедуры DSCF (Dwass - Steel - Critchlow - Fligner)
- Conover - Iman (1979) процедуры
прикрепил в файле.

В процедуре DSCF уверен.
В процедуре Conover - Iman - уже нет. Но C - I дает согласованный c DSCF результат.

Что касается Conover'а для связанных выборок (пост-хок для теста Фридмана), то там когда-то рассчитывал только критическое значение разности. Как считать достигнутый уровень значимости - до сих пор не знаю.

Сообщение отредактировал 100$ - 27.01.2023 - 16:15
Прикрепленные файлы
Прикрепленный файл  Conover_test.rar ( 8,6 килобайт ) Кол-во скачиваний: 174
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 27.01.2023 - 17:20
Сообщение #3





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Дико извиняюсь - возможно, неточно выразился. В данном случае интересует двухвыборочный критерий, представленный на с. 300 монографии Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999, под наименованием A test for equal variances. Автор пишет, что критерий реализован в StatXact, где называется Conover's test. В книге есть пример, и он в точности соответствует нашему расчету. Проблема в том, что с другими исходными данными результаты эквивалентных тестов сильно не бьются.

Хотя данные расчета, приведенные выше, пригодятся в дальнейшем тестировании. У меня многовыборочный критерий Коновера тоже проверять нужно. Спасибо. Добавление: в программе сейчас доступен критерий Шеффе. Результаты очень похожи.

Сообщение отредактировал Игорь - 27.01.2023 - 17:35


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 27.01.2023 - 23:25
Сообщение #4





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(Игорь @ 27.01.2023 - 17:20) *
Дико извиняюсь - возможно, неточно выразился. В данном случае интересует двухвыборочный критерий, представленный на с. 300 монографии Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999, под наименованием A test for equal variances. Автор пишет, что критерий реализован в StatXact, где называется Conover's test. В книге есть пример, и он в точности соответствует нашему расчету. Проблема в том, что с другими исходными данными результаты эквивалентных тестов сильно не бьются.


Да нет, это я,похоже, зациклился на пост-хоках. Вот сейчас пролистал ваш мануал MEcomMethod Guide и вот пож-ста 4.2.3.1.11 "Критерий Коновера".

Что до формул, то привык доверять NCSS'овским мануалам. Вот ссылка

Формулы похожи на ваши.

А можно ваш тестовый пример?

И что конкретно там "не бьется"? Клотц? Бартлетт? Левене? Браун - Форсайт? Что то еще, о чем я слыхом не слыхал?

P.S. Имеющийся у меня путеводитель по StatXact'у (за авторством Меты и Пейтеля) упоминаний о критерии Коновера не содержит. Видимо, по причине своей ветхости.

Сообщение отредактировал 100$ - 27.01.2023 - 23:32
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 27.01.2023 - 23:36
Сообщение #5





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



У меня есть архивы со StatXact (пиратка 6-ой версии и 30-дневный trial 8-ой версии). Могу установить и проверить нужные примеры именно в StatXact. На оф. сайте доступна trial 12-ой версии, требуется регистрация.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 28.01.2023 - 09:29
Сообщение #6





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Вот пара примеров, где результаты "гуляют" относительно эквивалентных тестов. Хотя, может, и в их реализациях ошибки. Немного удручает такая ситуация. В источниках проходит мысль, что критерии для тестирования одних и тех же параметров должны показывать одинаковые выводы.
Код
23  21
18  28
17  32
25  30
22  41
19  24
31  35
26  34
29  27
22  39
      36

Критерий Ансари-Бредли (рассеяние): t = 59, p = 0.417123
Критерий Зигеля-Тьюки (рассеяние): t = 113, p = 0.416345
Критерий Клотца (рассеяние): t = 0.606973, p = 0.456131
Критерий Коновера (рассеяние): t = 1284.5, p = 0.182109 ***

Код
1.96    2.03
2.89    2.60
2.61    2.16
1.83    2.17
1.56    1.65
2.12    2.65
1.44    2.13
2.04    2.16
1.65    2.09
1.12    1.16
1.33    2.16
0.79    1.10

Критерий Ансари-Бредли (рассеяние): t = 77.5, p = 0.476818
Критерий Зигеля-Тьюки (рассеяние): t = 147.5, p = 0.442617
Критерий Клотца (рассеяние): t = 1.49046, p = 0.136103
Критерий Коновера (рассеяние): t = 2881, p = 0.16642 ***

Пример из книги Коновера (у него вывод p < 0.01):
Код
10.8    10.8
11.1    10.5
10.4    11.0
10.1    10.9
11.3    10.8
        10.7
        10.8

Критерий Ансари-Бредли (рассеяние): t = 11.5, p = 0.0228411
Критерий Зигеля-Тьюки (рассеяние): t = 20.5, p = 0.02566
Критерий Клотца (рассеяние): t = 3.52585, p = 0.000422126
Критерий Коновера (рассеяние): t = 462, p = 0.00997383 ***

Сообщение отредактировал Игорь - 28.01.2023 - 14:08


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 31.01.2023 - 18:17
Сообщение #7





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Для тестового примера NCSS дает p-value=.019947 (см. рис)
Вы, похоже, опять одностороннюю (***) вероятность выдаете...

Сообщение отредактировал 100$ - 31.01.2023 - 18:19
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 31.01.2023 - 20:35
Сообщение #8





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Вернее всего, так. Программы, скорее всего, считают правильно (тестировались как-никак), но нужно с выдачей разобраться. Не всегда понятно, что имели в виду авторы источников.

Тут вот такая мысль. Пусть сравниваем некоторые параметры. Назовем их А и В.
1. Предполагаем, что А > В. Пускай получаем p = 0,01. Т.е. действительно A > B. Это левое односторонне значение.
2. Другой случай, при том же предположении получаем p = 0,99. Оказывается, что на самом деле A < B. Наше предположение было неверным. И проверив гипотезу A < B, мы получили бы p = 0,01. Это правое односторонне значение.
3. Левое + правое = 0,02. Это двустороннее значение (т.е. проверяем A не равно B).

В программе можно либо спросить пользователя, что он желает тестировать (так сделано в некоторых пакетах программ) и реализовать алгоритм, показанный выше, либо вычислить A и B и проверить все гипотезы. А можно сделать иначе. Вычислить p-значение формально из функции распределения статистики критерия, и объявить односторонним Min (p, 1 - p) (для симметричной функции распределения статистики критерия, для несимметричной* - вычислить правое и левое), а двусторонним - удвоенное одностороннее (сумму односторонних).

Может быть, данный алгоритм необходимо реализовать при выводе результатов расчета, чтобы пользователь не гадал, что там на самом деле посчиталось?

* Пример несимметричной - точный метод Фишера.

Сообщение отредактировал Игорь - 31.01.2023 - 20:38


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 31.01.2023 - 22:27
Сообщение #9





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(Игорь @ 31.01.2023 - 20:35) *
Не всегда понятно, что имели в виду авторы источников.


Ну, что касается многовыборочной проверки дисперсий, то тут как раз все понятно:
H0: var1=var2=...=var(n)
против альтернативы о том, что имеется хотя бы одна пара индексов i и j, для которых var(i) не равно var(j). Ссылка

Цитата
Тут вот такая мысль. Пусть сравниваем некоторые параметры. Назовем их А и В.
1. Предполагаем, что А > В. Пускай получаем p = 0,01. Т.е. действительно A > B. Это левое односторонне значение.
2. Другой случай, при том же предположении получаем p = 0,99. Оказывается, что на самом деле A < B. Наше предположение было неверным. И проверив гипотезу A < B, мы получили бы p = 0,01. Это правое односторонне значение.
3. Левое + правое = 0,02. Это двустороннее значение (т.е. проверяем A не равно B).


Нет.
Подобные рассуждения нахожу мелкобуржуазными и попросту вредными smile.gif
П.ч. p-value - это, вообще-то, вероятность, полученная из условного распределения статистики критерия. Условие: справедливость нулевой гипотезы.
А нулевая гипотеза у нас формулируется консервативно: var1=var2.
Для подавляющего большинства статистических критериев их распределение при альтернативе неизвестно.
Ergo, из того что p<.05 вовсе не следует, что var1>var2, A < B, etc.

Цитата
В программе можно либо спросить пользователя, что он желает тестировать (так сделано в некоторых пакетах программ) и реализовать алгоритм, показанный выше, либо вычислить A и B и проверить все гипотезы. А можно сделать иначе. Вычислить p-значение формально из функции распределения статистики критерия, и объявить односторонним Min (p, 1 - p) (для симметричной функции распределения статистики критерия, для несимметричной* - вычислить правое и левое), а двусторонним - удвоенное одностороннее (сумму односторонних).

Может быть, данный алгоритм необходимо реализовать при выводе результатов расчета, чтобы пользователь не гадал, что там на самом деле посчиталось?


Я за то, чтобы проверить все гипотезы. По образу и подобию того, как это сделано здесь

Сообщение отредактировал 100$ - 31.01.2023 - 23:30
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 1.02.2023 - 00:31
Сообщение #10





Группа: Пользователи
Сообщений: 1202
Регистрация: 13.01.2008
Из: Челябинск
Пользователь №: 4704



Критерий Коновера реализован исключительно точно, ну если для односторонней вероятности.... Я выставил максимум знаков в StatXact - 8, всё сошлось. По остальным статистика совпадает, а р не идентично, но близко. Клотц как-то иначе считается в StatXact.

Сообщение отредактировал nokh - 1.02.2023 - 00:33
Прикрепленные файлы
Прикрепленный файл  Nonparametric_in_StatXact.doc ( 558 килобайт ) Кол-во скачиваний: 161
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 1.02.2023 - 07:28
Сообщение #11





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Спасибо большое. Без сравнения с другими программамаи не обошлось. smile.gif
Цитата(100$ @ 31.01.2023 - 23:27) *
Я за то, чтобы проверить все гипотезы. По образу и подобию того, как это сделано здесь

Очень рад видеть это мнение. Как раз сегодня тоже осенило - действительно, нужно проверять ВСЕ гипотезы. Схема будет такая.
Выводим значения параметров A и B , соответственно, выборок, X и Y, подлежащих проверке (среднее, дисперсия, медиана и т.д.). Пусть функция для тестирования называется FUNC и выдает одностороннее значение (кстати, оказалось, что все реализованные функции выдают одностороннее значение, а путаница понятна из следующего).
1. Проверяем гипотезу A > B. Вызываем FUNC (X,Y). Выводим одностороннее P-значение. Также вычисляем и сохраняем p1 = MIN(p,1 - p).
2. Проверяем гипотезу A < B. Вызываем FUNC (Y,X). Выводим одностороннее P-значение. Также вычисляем и сохраняем p2 = MIN(p,1 - p).
3. Проверяем гипотезу A != B. Ничего не вызываем. Выводим p1 + p2 под названием "двустороннее p-значение".

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

Обнаружилась проблема, имеющая отдаленное отношение к рассматриваемой теме, но имеющая. В программе есть несколько т.н. точных (перестановочных) критериев. При анализе выборок уже средней численности (до 12-13-14) резко увеличивается время счета, что для диалоговой программы неприемлемо. Придется ограничить использование перестановочных критериев численностью выборок. В принципе, данные критерии для малых выборок и нужны, когда плохо работают аппроксимации. Это заметно на критерии Вилкококсона, для которого есть и асимптотический, и точный вариант. Чем больше численность, тем более близки p-значения. Уже где-то с численности около 10 они различаются в 4 знаке после запятой.


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 1.02.2023 - 12:31
Сообщение #12





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694





Цитата
Обнаружилась проблема, имеющая отдаленное отношение к рассматриваемой теме, но имеющая.
Придется ограничить использование перестановочных критериев численностью выборок...


Ну да. По образу и подобию того, как для критерия Макнемара считают точную биномиальную вероятность, если сумма элементов антидиагонали таблицы (b+c)<25. Если больше - пользуются хи-квадрат аппроксимацией.

Игорь, а мы о какой программе говорим? StatAnt? А с какого ресурса вы ее раздаете?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 1.02.2023 - 16:25
Сообщение #13





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(Игорь @ 28.01.2023 - 09:29) *
Пример из книги Коновера (у него вывод p < 0.01):
Код
10.8    10.8
11.1    10.5
10.4    11.0
10.1    10.9
11.3    10.8
        10.7
        10.8

Критерий Ансари-Бредли (рассеяние): t = 11.5, p = 0.0228411
Критерий Зигеля-Тьюки (рассеяние): t = 20.5, p = 0.02566
Критерий Клотца (рассеяние): t = 3.52585, p = 0.000422126
Критерий Коновера (рассеяние): t = 462, p = 0.00997383 ***


Не нравицца мне что-то ваш Клотц...

Зато очень нравится мой (см. ручной счет в файле)
Давайте "сверим часы".

P.S. У Айвазяна ошибки, у Кобзаря ошибки, у Лемешко ошибки (потому как списали у Кобзаря), из оригинальной статьи Клотца (1962) вообще ничего не понятно...
Как жить дальше?

Сообщение отредактировал 100$ - 1.02.2023 - 16:32
Прикрепленные файлы
Прикрепленный файл  Критерий__Клотца.rar ( 237,05 килобайт ) Кол-во скачиваний: 131
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Игорь
сообщение 1.02.2023 - 19:41
Сообщение #14





Группа: Пользователи
Сообщений: 1114
Регистрация: 10.04.2007
Пользователь №: 4040



Сделал, как планировал. Вот результаты для тех же данных Коновера. Теперь нравится больше.

Критерий Ансари-Бредли (масштаб):
левостороннее t = 30.5, p = 0.977159
правостороннее t = 11.5, p = 0.0228411
двустороннее p = 0.0456821
Критерий Зигеля-Тьюки (масштаб):
левостороннее t = 57.5, p = 0.97434
правостороннее t = 20.5, p = 0.02566
двустороннее p = 0.0513199
Критерий Клотца (масштаб):
левостороннее t = 6.1485, p = 0.999789
правостороннее t = 1.58914, p = 0.0386933
двустороннее p = 0.0389044
Критерий Коновера (масштаб):
левостороннее t = 462, p = 0.990026
правостороннее t = 186, p = 0.00997383
двустороннее p = 0.0199477

Опубликованные формулы некоторых других критериев дают двухстороннее значение. Не знаю, пересчитывать ли из них левое и правое или так оставить ...

Программа раздается с ресурса https://sourceforge.net/projects/statant/. Пока не нужно скачивать, т.к. последние исправления еще не внесены. Нужно еще переводы изменений сделать (базовый - английский + еще 6).

Посмотрел, откуда брал формулы для Клотца: Hajek J., Sidak Z., Sen P.K. Theory of rank tests. - New York, NY: Academic Press, 1999. (есть русский перевод более раннего издания) и Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999. Формулы для Зигеля-Тьюки с поправками на объединение рангов брал в книге Петрович М.Л., Давидович М.И. Статистическое оценивание и проверка гипотез на ЭВМ. - М.: Финансы и статистика, 1989 (там есть ссылка на Холлендера).

Сообщение отредактировал Игорь - 3.02.2023 - 22:17


Signature
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
100$
сообщение 2.02.2023 - 01:30
Сообщение #15





Группа: Пользователи
Сообщений: 902
Регистрация: 23.08.2010
Пользователь №: 22694



Цитата(Игорь @ 1.02.2023 - 19:41) *
Сделал, как планировал. Вот результаты для тех же данных Коновера. Теперь нравится больше.


Критерий Клотца (масштаб):
левостороннее t = 6.1485, p = 0.999789
правостороннее t = 1.58914, p = 0.0386933
двустороннее p = 0.0389044


Не-а. nea.gif

У меня получилось:
1) t=6.1485 p=.011635
2) t=1.58914 p=.0077357

Итого 2-tailed p=.0193703.

Что хоть немного напоминает результаты StatXact: asympt p=.02098

А вот, что дает пакет {coin} из R


Код
>library(coin)

> x<-c(10.8,11.1,10.4,10.1,11.3,10.8,10.5,11,10.9,10.8,10.7,10.8)
> gr<-factor(c(rep(1,5),rep(2,7)))

> set<-data.frame(x,gr)

> klotz_test(x ~ gr, data = set)


        Asymptotic Two-Sample Klotz Test

data:  x by gr (1, 2)
Z = 2.2877, p-value = 0.02216
alternative hypothesis: true ratio of scales is not equal to 1

       Точное распределение

> pvalue(klotz_test(x ~ gr, data = set,distribution='exact'))

[1] 0.01515152


Застрелицца можно.


Цитата
Посмотрел, откуда брал формулы для Клотца: Hajek J., Sidak Z., Sen P.K. Theory of rank tests. - New York, NY: Academic Press, 1999. (есть русский перевод более раннего издания) и Conover W.J. Practical nonparametric statistics. - New York, NY: John Wiley & Sons, 1999.


Да, в старом издании формулы тоже правильные. Я их и программировал, да только уже и забыл.

Сообщение отредактировал 100$ - 2.02.2023 - 01:36
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

2 страниц V   1 2 >
Добавить ответ в эту темуОткрыть тему