Критерий для анализа сверхмалых выборок, выборки из 3 значений. Применение стат. анализа |
Здравствуйте, гость ( Вход | Регистрация )
Критерий для анализа сверхмалых выборок, выборки из 3 значений. Применение стат. анализа |
25.05.2022 - 12:45
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 17 Регистрация: 7.12.2012 Пользователь №: 24440 |
Салют! Столкнулся с проблемой сравнения двух выборок, в каждой из которых по 3 значения. Это результаты иммуноблоттинга (определение концентрации целевого белка в пробе) очень ценных образцов, полученных от трансгенных животных. Но их - образцов, было всего 3 для каждой из групп (2 группы: интактная и подвергнутая воздействию исследуемого фактора). Покопавшись в литературе, нашёл статьи, где есть такие выборки и авторы как ни в чём не бывало используют t-критерий Стьюдента для сравнения средних. Нашёл статьи, где используют U-критерий Манна-Уитни... Скажем так, в биологии 3 образца - это нормально для публикации, если речь идёт об особо ценном и сложнополучаемом биоматериале (к примеру как у меня, когда животные практически не дают потомства). Т.е. представить эти данные можно и не стыдно. Но вот как сравнить, как показать, что эти выборки отличаются статистически значимо, иными словами, что наш исследуемый фактор значимо повлиял на концентрацию целевого белка?
Почитал ещё о таком методе, как ресамплинг или бутстреп, когда объём выборки искусственно увеличивают. Ну, не знаю насколько это правильно... также не нашёл софт и чёткого понимания как это сделать у меня нет. Работаю в проге Statistica 12 Посоветуйте, как всё же обработать эти данные. Вот пример исходных цифр: Выборка 1: 221,60112 305,217725 295,251684 Выборка 2: 371,3313 397,452722 437,212724 |
|
26.05.2022 - 08:42
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
В принципе любая непараметрика. Можно посмотреть критерий рандомизации для независимых или для связанных выборок (он же критерий рандомизации компонент Фишера, он же критерий рандомизации Фишера-Питмана). На русском языке в справочнике Руниона хорошо описан.
Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
26.05.2022 - 10:41
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 17 Регистрация: 7.12.2012 Пользователь №: 24440 |
Игорь, спасибо. А как обосновать использование этого критерия?
В Statistica 12 не нашёл Fisher-Pitman permutation test. Какую программу посоветуете для расчёта? Сообщение отредактировал Vitek_22 - 26.05.2022 - 12:23 |
|
26.05.2022 - 17:46
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 |
А как обосновать использование этого критерия? Утилитарными соображениями: - асимптотическое распределение здесь не подойдет, т.к. выборки уж очень малы; - если допредельное распределение можно вычислить точно, значит, так и надо поступить. Для вашей цифири асимптотический двусторонний достигнутый уровень значимости критерия Манна - Уитни (нормальная аппроксимация) - р=0,05. Точный двусторонний - р=0,1. Нулевая гипотеза на 5%-ном уровне значимости не отвергается. Из более-чем-тыщестраничной монографии Д.Шескина в свое время вынес рекомендацию, восходящую к кому-то из великих, что если заменить числовые значения выборочных данных их рангами, и на этих рангах проделать двухвыборочный тест Стьюдента, до достигнутый уровень значимости очень похож на таковой, полученный при применении критерия Манна - Уитни. В вашем случае тест Стьюдента с неизвестными неравными дисперсиями дает двустороннее р=,021213. Нулевая гипотеза отвергается на 5%-ном уровне значимости. Критерий Лемана - Розенблатта (асимптотический) р=,034. Критерий Смирнова (асимптотический) р=,04. Ван дер Вардена (асимптотический) р=,055. В общем, красота. |
|
31.05.2022 - 07:07
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Какую программу посоветуете для расчёта? 1. Пробная 30-дневная версия StatXact. 2. AtteStat (работает как надстройка 32-разрядной Excel для Windows). 3. В R есть функция twoSamplePermutationTestLocation. Сообщение отредактировал Игорь - 3.06.2022 - 18:45 Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
5.06.2022 - 23:55
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 204 Регистрация: 1.06.2022 Из: Донецк Пользователь №: 39632 |
Вот-только при помощи перестановок Вы никогда не достигните уровня значимости ниже 0,05 при столь малых объемах выборок, независимо от величины различий. Иллюстрация (на R):
Код x<-c(221.60112, 305.217725, 295.251684, 371.3313, 397.452722, 437.212724) group<-factor(c(rep(1,3), rep(2, 3))) df<-data.frame(x, group) library(coin) oneway_test(x~group, data=df, distribution="exact") wilcox_test(x~group, data=df, distribution="exact", conf.int=T) # Обратите внимание, что границы 95% доверительного интервала для медианной разности не определены. #Понизим доверительный уровень: wilcox_test(x~group, data=df, distribution="exact", conf.int=T, conf.level = 0.9) # Нижняя границы 90% ДИ определена, верхняя - бесконечность. # А теперь фокус-покус: df2<-df df2$x[4:6]<-df$x[4:6]*100000 #Этим мы увеличили значения всех вариант выборки ?2 в сто тысяч раз, то есть смоделировлан случай, когда и безо всякого статанализа колоссальные различия в параметрах положения распределений очевидны. # Парадоксально, но уровень значимости точных тестов не поменялся: oneway_test(x~group, data=df2, distribution="exact") wilcox_test(x~group, data=df2, distribution="exact") # А все потому, что тестовая статистика при перестановке может принимать всего лишь 20 значений: choose(6, 3) # Так что использование рандомизации для решения данной конкретной задачи - так себе идея. # А вот бутсреп работает: library(confintr) ci_mean_diff(x=df$x[1:3], y=df$x[4:6], type="boot", boot_type="bca", R=99999) # Более того, даже 99,9% ДИ для разности средних не включает 0: ci_mean_diff(x=df$x[1:3], y=df$x[4:6], type="boot", boot_type="bca", probs =c(0.0005, 0.9995), R=99999) # То есть гипотеза о равенстве математических ожиданий откланяется на уровне значимости 0,001, чего, если я правильно понял, и желает ТС. Насколько это соответсвует истине, не берусь судить, я вообще слабо понимаю идею бутстрепа, в отличие от рандомизации, но обычно BCa хвалят. Но все же я не встречал ни одного сравнительного исследования статистических методов на столь малых выборках. Обычно начинают от 6 - 7. Тестировал ли Эфрон свой BCa на 3 и 3? |
|
9.06.2022 - 13:53
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Посоветуйте, как всё же обработать эти данные. Вот пример исходных цифр: Выборка 1: 221,60112 305,217725 295,251684 Выборка 2: 371,3313 397,452722 437,212724 StatXact и AtteStat проверить не удалось, ибо для первого нужна ОС Windows, а для второго еще и Excel. Поэтому взял StatAnt. В доступной для скачивания версии критерия рандомизации нет, но он есть в используемой в проекте (также и в AtteStat) библиотеке ME.com. Поэтому добавил пару строчек в StatAnt. Результат для предложенных данных: Часть 2: Статистика двух выборок Численность первой выборки 3 Численность второй выборки 3 Параметрические критерии Критерий Стьюдента (положение): t = 3.92672, p = 0.991425 Критерий Пагуровой (положение): t = 3.92672, p = 0.0134883 Парный критерий Стьюдента (положение): t = 7.10564, p = 0.990382 F-критерий Фишера (рассеяние): t = 1.89526, p = 0.345392 Коэффициент корреляции Пирсона: r = 0.730407, p = 0.76067 95% доверительный интервал = [-1; 1] Непараметрические критерии Критерий Вилкоксона (положение): t = 6, p = 0.959572 Критерий Муда-Брауна (положение): t = 0, p = 0.0126737 Критерий Ансари-Бредли (рассеяние): t = 6, p = 0.5 Критерий Клотца (рассеяние): t = 1.49241, p = 0.5 Критерий Зигеля-Тьюки (рассеяние): t = 10, p = 0.41363 Permutation tests Fisher-Pitman permutation test (independent samples): t = 1, p = 0.05 На выбор теста могут оказывать помимо математических соображений еще и социальные. Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
9.06.2022 - 16:05
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 204 Регистрация: 1.06.2022 Из: Донецк Пользователь №: 39632 |
Сдается мне, Ваше творение нагло врет, по крайней мере, по некоторым тестам, включая, как ни странно, Стьюдента.
Код x<-c(221.60112, 305.217725, 295.251684, 371.3313, 397.452722, 437.212724) group<-factor(c(rep(1,3), rep(2, 3))) df<-data.frame(x, group) Классический Стьюдент: Код t.test(x~group, data=df, var.eq=T) Two Sample t-test data: x by group t = -3.9267, df = 4, p-value = 0.01715 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -218.46228 -37.48854 sample estimates: mean in group 1 mean in group 2 274.0235 401.9989 Уэлч: Код t.test(x~group, data=df) Welch Two Sample t-test data: x by group t = -3.9267, df = 3.6509, p-value = 0.02041 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -221.97871 -33.97211 sample estimates: mean in group 1 mean in group 2 274.0235 401.9989 C Фишером-Питманом тоже несоответствие, однако там может быть нюанс в способе подсчета p. Остальные не проверял. Кстати, часть из них в данной ситуации применять было просто бессмысленно из-за грубого нарушения допущений, например Ансари-Бредли и все парные. И Аттестат, помнится, тоже нагло врал местами, как минимум, с критерием Барнарда (неправильный выбор мешающего параметра) и Лемана-Розенблатта (пропущена сортировка вариант по возрастанию). Но, по крайней, мере Стьюдента и Фишера-Питмана он выдавал так же, как R и прочие широкоизвестные. Не сочтите за критиканство, это лишь свидетельство что когда один программист работает над б. м. сложным и объемным продуктом, который кроме него не тестирует более никто, то результат закономерно печален. |
|
9.06.2022 - 16:17
Сообщение
#9
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 |
Критерий Стьюдента (положение): t = 3.92672, p = 0.991425 У вас ошибочка вышла. СТЬЮДРАСП(3,92672;4;2)=,01715. Проще говоря, для рассматриваемого случая корректно будет p (one-sided)=1-,991425= ,008575 p (two-sided)=2*(1-,991425)= ,01715. Нулевая гипотеза на 5%-ном уровне отвергается со свистом. Статистика - это вам не лобио кушать... P.S. И вообще, Стьюдент и Пагурова здесь равны 3,926626. P.P.S. Пока писал, ИНО уже обратил на это внимание. Сообщение отредактировал 100$ - 9.06.2022 - 16:30 |
|
9.06.2022 - 20:08
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Спасибо коллегам за подробный разбор. Проверил. Сначала огорчился. Но при анализе ошибок не обнаружил ни в своем посте, ни в постах уважаемых коллег (сделал небольшую поправку в документацию). Грубо говоря - одно и то же. Исправлять нечего. Следовало бы, конечно, пояснить, что такое p в листинге. В AtteStat это сделано, в том числе в руководстве, в StatAnt - нет. Последний проект вообще специфический - он был сделан не для пользователей, а для быстрой отладки расчетных методов студентами, использовался в качестве основы для пары дипломных проектов (продвинутые факторный анализ и разложения временных рядов - результаты в проект не вошли). Про Барнарда и Лемана-Розенблатта не могу согласиться - в текущем виде всё в порядке. Хотя за давностью уже не помню - возможно, какие-то версии и попали в состоянии отладки. Последняя на sourceforge лежит, пока не выгнали.
Впрочем, оба проекта давно (лет 7) не развиваются, не тестируются, известные ошибки не исправляются. Просто никому не нужно. P.S. Автор отнюдь не наглый. И программы тоже. Сообщение отредактировал Игорь - 9.06.2022 - 20:09 Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
9.06.2022 - 22:28
Сообщение
#11
|
|
Группа: Пользователи Сообщений: 204 Регистрация: 1.06.2022 Из: Донецк Пользователь №: 39632 |
Цитата Грубо говоря - одно и то же. Исправлять нечего. Следовало бы, конечно, пояснить, что такое p в листинге. Однак ж... У Вашей новой программы какая-то альтернативная трактовка p, отличная от общепринятой? Посчитал и понял: StatAnt для Стьюдента выдает 1-p (одностороннее). Понять бы еще зачем. Для конспирации? Особо интересует, почему в случае с Пагуровой прога ведет себя наоборот, то есть, как и положено во всем остальном мире Студентов, которым приходится тайну сию объяснять, как-то жалко стало. Версия Аттестата у меня была 13.1. Скачал с этого нехорошего Сорсефоржа версию 13.2. Нехорошего, потому что он сначала подверг обидной дискриминации мой айпишник со словами: "Your request is being denied as it appears to be coming from a location banned by our Terms of Use", поэтому пришлось пользовать прокси. Вдвойне обидно, что все было зря: новая версия не отличается от предыдущей: Леман-Розенблатт без предварительной сортировки выборок по возрастанию все так же показывает погоду на Луне. Барнарда уж проверять не стал. В общем, спасибо за с пользой проведенное время! P.S. Последние несколько лет единственное, для чего безбоязненно использую Аттестат - транспонирование таблиц. Уж больно оно штатными средствами Экселя муторно делается. Если б Аттестат принимал не только числовые данные, цен б ему не было. А вот для статанализа без предварительных проверок стрёмно - х. з., что он там насчитает. А уж после проверок, если результат сошелся, то уже особого смысла в Аттестате, как легкой кнопочной надстройки Экселя вместо R (кодинг - не мое) особого смысла-то и не остается. Не в обиду будь сказано - просто констатация суровой реальности. Сообщение отредактировал ИНО - 9.06.2022 - 22:44 |
|
9.06.2022 - 23:21
Сообщение
#12
|
|
Группа: Пользователи Сообщений: 204 Регистрация: 1.06.2022 Из: Донецк Пользователь №: 39632 |
|
|
10.06.2022 - 10:08
Сообщение
#13
|
|
Группа: Пользователи Сообщений: 902 Регистрация: 23.08.2010 Пользователь №: 22694 |
Почему? У меня Стьюдент получился (почти ручками) (-)3.926721. Нужна поправка какая-то хитрая для малых выборок? Ваша правда: я округлил исходные данные. Очень уж лениво было по 4 знака после запятой набивать. Для ранговых методов это несущественно, а параметрика вся исказилась... |
|
10.06.2022 - 13:15
Сообщение
#14
|
|
Группа: Пользователи Сообщений: 1114 Регистрация: 10.04.2007 Пользователь №: 4040 |
Однак ж... У Вашей новой программы какая-то альтернативная трактовка p, отличная от общепринятой? Это результат подстановки значения критерия в обратную функцию распределения. Из-за особенности вычисления нужно смотреть, что именно вычисляется (p, 1-p, 2p и т.п.) и выдавать правильное значение. В AtteStat это сделано. Здесь нет. В-общем это можно сделать в самих функциях распределения, но такого рода промежуточные вычисления используются в других алгоритмах. Резюмируя - считается правильно, выводится не то (не проблема - всё-равно никто не пользуется). Еще один момент - формулировка гипотезы: в общем случае (не для всех тестов) две односторонних и одна двусторонняя. Результат тоже нужно правильно интерпретировать. По идее нужны редизайн приложения и хорошее тестирование. Просто взяться и аккуратно сделать. Леман-Розенблатт без предварительной сортировки выборок по возрастанию все так же показывает погоду на Луне. Посмотрел, согласился, подправил (пара строчек кода) библиотеку, но исправлять AtteStat не буду - поздно уже. Опять же нет качественно просчитанных примеров для сравнения. Барнарда уж проверять не стал. В общем, спасибо за с пользой проведенное время! Посмотрел свои записи. Там считается оптимальное значение параметра сначала глобальным поиском, потом уточняется. Не думаю, что в этом месте ошибка, но проверять нужно на хороших данных. Не в обиду будь сказано - просто констатация суровой реальности. Да согласен абсолютно - давно собирался прикрыть проект, но некоторым он зачем-то нужен. Проверять некому, а это главное. Что-то протестировано неплохо, если кого-то интересовали определенные методы. Создавать новый проект тоже смысла не вижу. Не окупится из-за малой востребованности. Попутно при нашем обсуждении проблемы пару моментов хотелось упомянуть. Первое - на столь малых выборках будет дикая ошибка второго рода. Достаточно посмотреть функции мощности. Так что результат вычислений можно смело считать чепухой. Интересно, что малые выборки возникают достаточно часто. Например, биохимики мне такие данные приносили, причем в выборке численностью 3-4-5 варианты отличались на 3 порядка. Говорят, что такие данные у них - норма. Второе (апологетов прошу не обижаться). Если статистику (встроенную) в Excel еще как-то можно посчитать - ну чепуха в документации, да не считаются некоторые распределения - черт с ними, то статистика в Gnumeric и LibreOffice Calc - полный атас. Первый пакет сразу удалил, в статистику во втором сам заходить не буду и другим не посоветую. Сообщение отредактировал Игорь - 10.06.2022 - 13:22 Ebsignasnan prei wissant Deiws ainat! As gijwans! Sta ast stas arwis!
|
|
10.06.2022 - 14:00
Сообщение
#15
|
|
Группа: Пользователи Сообщений: 204 Регистрация: 1.06.2022 Из: Донецк Пользователь №: 39632 |
Очевидно, сии подделки экселя прозрачно намекают, что на пути
Насчет потери мощности на малых выборках, видимо, она особо катастрофична именно перестановочных критериях, если порядок количества возможных уникальных перевыборок равен или меньше 1-альфа. И это в большей степени артефакт метода подсчета p, нежели общая проблема теории статистики. Видимо, надо почитать о возможных методах преодоления. На то, что они существуют, намекают перестановочные тесты в некоторых кнопочных программах, которые в таких случаях выдают что-то, похожее на правду. Например, для рассматриваемой задачи некий "Permutation t test" в PAST выдает p=0,033 (что довольно похоже на p=0,02 двустороннего Уэлча), и я ума не приложу, как он его получает (обычный метод случайной перестановки t-статистики дает все то же p=0,1 +/- сотые, так что в ПАСТе что-то другое). Надо документацию почитать. |
|