Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Критерий Краскела-Уоллиса для сравнения двух групп на трех визитах
Форум врачей-аспирантов > Разделы форума > Медицинская статистика
Varta
Здравствуйте уважаемые участники форума!

В одной статье мне встретилось следующее: имеем две группы пациентов, каждая из которых обследована на 3 визитах. Пациенты на визитах строго одни и те же, то есть по логике самым простым должно быть сравнение групп между собой на 1, 2 и 3 визитах с помощью критерия Манна-Уитни, и сравнение динамики внутри групп 1 визит---2 визит --- 3 визит с помощью критерия Фридмана с дальнейшим попарным сравнением с поправкой на множественные сравнения. Если есть желание избежать ошибки множественных сравнений на визитах, то проводится одномерный анализ повторных измерений с установлением влияния временного фактора, фактора группы и наличие их взаимодействия (непараметрического аналога данного анализа я не знаю, если подскажете. буду благодарна)

В статье было указано, что анализ проведен с помощью критерия Краскела Уоллиса с поправкой на множественность сравнений с помощью программы Prism. И далее на графиках имели место звездочки для сравнения двух групп на каком-либо визите, либо для сравнения динамики между визитами внутри какой-либо из групп.
Это правильная процедура для анализа? У меня было предположение, что это попытка избежать ошибки множественных сравнений путем того, что мы все 6 точек считаем отдельными выборками, но там же как связанные, так и не связанные данные. Я не вижу нигде в доступных мне источниках упоминание о каком-то варианте критерия Краскела-Уоллиса, который использовался бы как аналог одномерного анализа повторных измерений.

Заранее спасибо за ответ.

Прогуглила форум и в одном из тредов нашла мнение 100$ по похожему случаю (критерий Крускела применять некорректно)
http://forum.disser.ru/index.php?showtopic=1246&st=30
Это интерлейкины, их очень сложно привести в нормальное распределение, кроме того три точки нелинейны, это уровень ИЛ до воздействия, на фоне воздействия, после окончания. Соответственно связь с лечением будет только в одной точке - втором визите, как бы не получилось, что эти различия будут проигнорированы при анализе повторных измерений
Игорь
Цитата(Varta @ 29.06.2023 - 21:04) *
... о каком-то варианте критерия Краскела-Уоллиса, который использовался бы как аналог одномерного анализа повторных измерений.

Критерий Шейрера-Рэя-Хэйра можно посмотреть. Описание Sokal R.R., Rohlf F.J. Biometry: The principles and practice of statistics in biological research.
ИНО
Тут много чего можно применить, но вопрос зачем, в смысле какова задача? Определить, на каком из визитов между двумя группами появляется статистически значимая разница? Или надо отловить разницу внутри каждой из групп от визита к визиту? Или вес и сразу с блэкджеком и шлюхами?
nokh
Имеем две группы на разных сроках. Соответственно применить критерий КУ для анализа всех данных просто не получится: это ранговый аналог однофакторного дисперсионного анализа, т.е. применяется для сравнения нескольких независимых выборок. В вашем случае независимыми являются 2 группы на каждом из сроков. На разных же сроках выборки являются зависимыми, а для зависимых выборок можно использовать ранговый критерий Фридмана, но только для какой-то одной из двух выборок))) Апостериорные сравнения внутри критерия Фридмана можно провести специальными ранговыми методами, но таким образом вы сможете доказать собственно наличие какой-то динамики в каждой из групп в отдельности, но не сравнить эти динамики между собой. Классическим методом для вашего случая является дисперсионный анализ (ANOVA), в котором можно задать как независимость групп (фиксированный фактор "Группа"), так и учесть зависимый характер наблюдений на разных градациях фиксированного фактора "Срок". В пакетах это делается двумя технически разными методами, но которые дают одинаковый численный результат. Первый - двухфакторный анализ повторный измерений (факторы: "Группа" и "Срок"), второй - трёхфакторный дисперсионный анализ с фиксированными факторами "Группа" и "Срок" и случайным фактором "Пациент внутри Группы". Это нужно правильно задать в пакетах, но учитывая, что сравнение в динамике - один из самых популярных методов в медицине, примеры легко найти. Пакет Prizm серьёзный, с хорошим руководством, если пользуетесь им, то там обязательно описано. У этих двух подходов разные теоретические предпосылки, поэтому и разные требования к данным, наряду с требованием нормальности распределения ошибки модели, первый требует сферичности и использует разные модификации в случае нарушения требования, второй требует однородности дисперсий в ячейках дисперсионного комплекса. Апостериорные сравнения в рамках дисперсионных комплексов проводятся обычными для дисп. анализа методами (выбор большой).

К сожалению, рангового аналога для такого анализа нет, иначе это был бы один из самых известных критериев. Поэтому можно использовать преобразование исходных данных, для того чтобы нормализовать ошибку анализа. Лучший вариант - преобразование Бокса - Кокса (Box-Cox transformation), которое подожмёт хвосты положительно асимметрично распределённых итнерлейкинов и позволит использовать описанные модели ANOVA. Есть варианты его применения, но самый простой - просто трансформировать всю колонку данных и выписать значение параметра "лямбда" (оно может понадобиться для ретрансформации средних с 95% ДИ на графиках). Скорее всего для большинства интерлейкинов лямбда у вас будет близка к 0 (ноль), а это значит что распределение близко к логарифмически нормальному. Если так, то самый простой вариант будет просто прологарифмировать колонку данных; так данные будут хуже приближены к требованиями модели, но зато проще строить графики в логарифмическом масштабе. Если заморочиться, можно проверить на нормальность ошибку дисперсионного комплекса. Преобразование БК на форуме много обсуждалось, легко делать, в том числе в бесплатных пакетах.

В рамках описанного подхода самым интересным для вас будет взаимодействие факторов "Группа х Срок", которое и оценивает различие динамик между группами. Соответственно апостериорные сравнения важнее сделать для ячеек этого эффекта.
comisora
2 Varta

В Вашем случае можно использовать порядковую регрессию со смешанными эффектами, так как данная модель обобщает критерии Манна-Уитни и Краскела-Уоллиса. Попробуйте программу Jamovi и модуль GAMLj к ней.
ИНО
Цитата(comisora @ 1.07.2023 - 13:25) *
В Вашем случае можно использовать порядковую регрессию со смешанными эффектами

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

Но почему именно порядковая? ТС скромно умолчал о шкале измерения. Быть может, там что-то вполне себе количественное.
Игорь
Возможно ошибаюсь, в задаче вижу две многомерных выборки (каждый объект описан вектором параметров). Поэтому, если речь о многомерном расширении Краскела-Уоллиса, как просил автор темы, в дополнение к указанной выше еще вот эту работу можно посмотреть Scheirer C.J., Ray W.S., Hare N. The analysis of ranked data derived from completely randomized factorial designs // Biometrics, June 1976, vol. 32, no. 2, pp. 429-434. Также можно посмотреть критерий Пури-Сена-Тамура. См. Tamura R. Multivariate nonparametric several-sample tests // The Annals of Mathematical Statistics, June 1966, vol. 37, no. 3, pp. 611-618 и Pontes A.C.F. Analise de variancia multivariada com a utilizacao de testes nao-parametricos e componentes principais baseados em matrizes de postos. - Sao Paulo: Paracicaba, 2005. На русском см. книгу Родионов Д.А. Справочник по математическим методам в геологии / Д.А. Родионов, Р.И. Коган, В.А. Голубева и др. - М.: Недра, 1987. Есть и другие критерии, но они требуют многомерной нормальности. Реализации всех методов есть в ПО AtteStat (документация по методам на сайте, посвященном ПО ME.com).
Конечно, можно рассмотреть задачу с точки зрения динамики, как предлагают коллеги.

Дополнение к источникам. О многомерных методах см. также главу 5 книги Родионов Д.А. Статистические решения в геологии. - М.: Недра, 1981.
100$
Один фактор "Группа" - межгрупповой (Between) с фиксированным эффектом, Второй фактор "Время" - внутригрупповой (Within) с фиксированным эффектом.
В итоге имеем т.н. split - plot disign.

Nokh прав: такой дизайн нельзя не узнать.

Непараметрических аналогов не существует.
Поэтому придется делать параметрический ANOVA.

Однако, как правило, измеряют сразу несколько интерлейкинов/цитокинов, поэтому, может и split-plot MANOVA замаячить...

Критерий Шайрера - Рэя - Хейра не подойдет, поскольку не работает с within-эффектами, т.е. непригоден для анализа связанных выборок.
comisora
2 ИНО

Как я понял, нужно выбрать тип распределения для categorical depended variable, раскидать по нужным полям фиксированные и случайные эффекты и попытаться запустить модель. Однако это может не сработать так как распределения предназначены(?) для моделирования дихотомических переменных. Можно выкрутиться, если знать условные нормы для интерлейкинов или разбить данные на интересующие области, хотя дихотомизация не всегда удачный выбор для анализа.

На мой взгляд, порядковая регрессия является способом решения данной задачи, так как все интервальные переменные - это порядковые данные (обратное, разумеется, не только лишь верно). В данной публикации рассмотрен пример моделирования клеток CD4 при ВИЧ-инфекции (настоящие дискретные количественные данные). Чем непараметрический аналог параметрической ANOVA с повторными измерениями?

Раз 100$ затронул MANOVA, то приведу ссылку на реализацию, которая не требует специальных допущений, что в случае с интерлейкинами выглядит неплохо.
ИНО
Цитата(comisora @ 2.07.2023 - 19:13) *
2 ИНО

Как я понял, нужно выбрать тип распределения для categorical depended variable


Не уверен: выделенное скорее похоже на неупорядоченный мультиномиальный отклик, чем на порядковый, это разные вещи. Вообще, порядковая регрессия, та что по-буржуйски зовется "ordinal" даже без смешанных эффектов - не самая простая штука. Обычно применяют proportional odds модель (переводить специально не стал - Игорь с этим правится лучше), за неимением иных в большинстве ПО. Фрэнк Харрел утверждает, что это по сути тот же К-У, только в профиль. Но она далеко не всегда соответствует данным, по этому есть куча "непропорциональных" альтернатив. В них больше степеней свободы, оттого меньше мощность, зато больше гибкость. Но в упор не вижу, зачем вдавится в эти изыски в случае количественного отклика.

Ежели, как переложил Игорь, рассматривать отклик как многомерный, то есть же db-perMANOVA. Хотя и подвергнута критике за недостаток мощности, но всяк лучше для "некрасивых" данных, чем сферическая в вакууме MANOVA. Или вообще ограничиться ординацией. А еще можно отклик каждого пациента рассматривать как функцию от времени (в данном случае - от количества сеансов), и тогда путь лежит в область FDA. А еще... А еще с этими данными можно проделать дофига разных вещей, знать бы только цель и задачи... Ситуация во многом противоположна той, где надо было сравнить хоть как-то две выборки, каждая объемом в шиш с маком, когда найти хотя бы один приемлемый статистический критерий оказалось невыполнимой миссией.

Varta

Игорь, ИНО, nokh, 100$, comisora - огромное спасибо за ответы. Отдельное спасибо за "К сожалению, рангового аналога для такого анализа нет, иначе это был бы один из самых известных критериев." Это ситуация воспроизводится в 90% медицинских исследований и все время было ощущение, что ты чего-то не знаешь, раз такой базовый дизайн, а как его анализировать непараметрикой непонятно.
ИНО
Вместо благодарностей все ж хотелось бы услышать конкретику о шкале измерения этих ваших попугаев. А то очень может быть, что ранговые критерии Вам нафиг не уперлись.
100$
Цитата(ИНО @ 7.07.2023 - 16:42) *
Вместо благодарностей все ж хотелось бы услышать конкретику о шкале измерения этих ваших попугаев. А то очень может быть, что ранговые критерии Вам нафиг не уперлись.


Вам до такой степени лень загуглить? Что-нить типа "интерлейкин ИЛ-18"? Измеряется обычно в пг/мл, может быть в нг/ммоль креатинина, т.ч. шкала там не ниже интервальной.
Распределение, как правило, к нормальному не имеет отношения, тем паче к многомерному нормальному.
ИНО
А фиг его знает, в чем они этот ИЛ измеряют, может вообще в звездочках, или вообще <х или >х. Если посмотреть выдачи результатов анализов всяких-разных коммерческих лабораторий, то там каких только попугаев не встретишь!
nokh
> Varta. См. личное сообщение.
Leonov
Для корректности подробного описания по сравнениям двух групп рекомендую использовать именно значения объёмов значений в каждой сравниваемых групп,, а также использовать наличие или отсутствие именно нормального распределения. И когда в сравниваемых группах уже несколько разных признаков, можно использовать и кластерный анализ, когда может обнаружить и более двух групп. И для понимания возможных методов анализа читайте об этом на моём сайте про адресам http://www.biometrica.tomsk.ru/biostat_2.htm , http://www.biometrica.tomsk.ru/biostat_3.htm, http://www.biometrica.tomsk.ru/biostat_12.htm .
100$
Цитата(Leonov @ 10.07.2023 - 08:21) *
Для корректности подробного описания по сравнениям двух групп рекомендую использовать именно значения объёмов значений в каждой сравниваемых групп,, а также использовать наличие или отсутствие именно нормального распределения. И когда в сравниваемых группах уже несколько разных признаков, можно использовать и кластерный анализ, когда может обнаружить и более двух групп. И для понимания возможных методов анализа читайте об этом на моём сайте про адресам http://www.biometrica.tomsk.ru/biostat_2.htm , http://www.biometrica.tomsk.ru/biostat_3.htm, http://www.biometrica.tomsk.ru/biostat_12.htm .


Ой вэй, а таки шо это было?

Глупая ботяра leo_biostat() не оправдала ожиданий, и теперь еще более глупая ботяра Leonov() (хотя, казалось бы, куда уж глупее) пытается авторитетно поставить точку в этой дискуссии?
Но ведь это же попытка с негодными средствами...
ИНО
Цитата
Для корректности подробного описания по сравнениям двух групп рекомендую использовать именно значения объёмов значений в каждой сравниваемых групп

Мне кажется, или это сгенерировала машина? Не логистической регрессией единой жива томская биометирика - внедряем ИИ потихоньку (пусть пока и не в анализ медицинских данных, а лишь в создание рекламного контента)?
Vitek_22
Коллеги, очень похожая задача. Есть две группы животных, подвергнуты лечению и контроль. И для каждой группы было проведено 2 анализа в разных временных точках. Причём, во второй временной точке выборки подчиняются нормальному распределению (Шапиро-Уилка), но всё равно отклонение от нормальности субкритическое так сказать, а во второй - нет. Снижение времени - показатель прогрессии заболевания.
На мой взгляд нужен непараметрический аналог ANOVA с повторными измерениями. А его нет. Попарно всё сравнить Манна-Уитни? Не знаю, уместно ли. Посчитать ANOVA и использовать в апостериорном анализе критерий, который не чувствителен к "небольшим отклонениям от нормальности"? Если да, то какой?
Почитал чуть гугл, советуют использовать тест Фридмана. Но он позволяет провести сравнение между повторными измерениями, но не между несвязанными группами. Я так понял, что это аналог теста Вилкоксона... не аналог, но тест, который также работает только на связанных выборках (т.е. повторные измерения)

Прошу совета. Пользуюсь Statistica 12. В ней экзотических методов, которые выше советуют, нет.

Приложил Excel с исходными данными
ИНО
Посмотрел на Ваши данные одним глазком. С нормальностью после добавления в модель всех независимых переменных не все так плохо (у многих авторов, использовавших анову в публикациях бывало гораздо хуже, и прокатило), зато есть неслабая гетроскедастичность, причем в обеих группах. Что с лечением, что без, через месяц разброс сильно уменьшается. Есть модели, позволяющие корректно это учесть (правда, не знаю, в Вашем-ли ПО), но для начала надо в биологической причине феномена разобраться бы... А в остальном, лечение работает, с ним время значимо больше, чем в контроле. Чтобы доказать только последнее, многофакторный дизайн особо и не требуется, достаточно двухвыборочного теста, лучше там, где через месяц.
comisora
Цитата(Vitek_22 @ 16.02.2024 - 19:14) *
Есть две группы животных, подвергнуты лечению и контроль. И для каждой группы было проведено 2 анализа в разных временных точках. Причём, во второй временной точке выборки подчиняются нормальному распределению (Шапиро-Уилка), но всё равно отклонение от нормальности субкритическое так сказать, а во второй - нет. Снижение времени - показатель прогрессии заболевания.

Выборки проверять на соответствие нормальному распределению не надо. В линейной модели предполагается нормальное распределение остатков. В примере показано, как можно создать выборки, по которым тест Шапиро-Уилка отклонит нулевую гипотезу в двух из трех подгрупп, но не по остаткам модели. В приложении - статьи по процедуре проверке нормальности.

CODE
set.seed(324)
n <- 1000
nu <- 1.5
sd <- 1
x <- gl(n = 3, k = n, labels = c('a', 'b', 'c'))
a <- gamlss.dist::rSN2(n = n, mu = 160, sigma = 1, nu = nu)
b <- rnorm(n = n, mean = 140, sd = 1)
c <- gamlss.dist::rSN2(n = n, mu = 120, sigma = 1, nu = 1/nu)
y <- c(a, b, c)
fit <- lm(y~x)
res <- resid(fit)
lst <- list(a, b, c, y, res)
round(
sapply(seq_along(lst), function(i) {shapiro.test(lst[[i]])[['p.value']]}),
digits = 3
) #[1] 0.000 0.847 0.000 0.000 0.634
dev.new(noRStudioGD = TRUE)
layout(matrix(c(1,2,3,4,5,5), nrow = 3, ncol = 2, byrow = TRUE))
plot(density(a))
plot(density(b))
plot(density©)
plot(density(y))
plot(density(res))


По Вашим данным можно сделать следующее:
0. Пояснить следующее: измерение через месяц - это реальное время или величина изменения относительно первоначального замера?
1. Взять разницу между состояниями "до-после" и сравнивать её между группами любым тестом, который Вам нравится (Стьюдента/Уэлча, Манна-Уитни, точный тест Фишера-Питмана и т.п.).
2. Ознакомиться с выполнением смешанного дисперсионного анализа по ссылке за авторством nokh.
3. Попытаться выполнить трансформацию (логарифмирование) и посмотреть, что будет.
ИНО
Не нужна там трансформация - остатки плюс-минус лапать нормальны (маленький лапоть, не как в соседней теме smile.gif). Но немаленькая гетероскедастичность.

Вообще, с приведенными данными модно проделать очень много всякого, хорошие такие данные. вкусные smile.gif
Я просто не знаю, что из этого реализовано в Statistica 12, за неимением оной. А еще не совсем ясно, проверка каких конкретно гипотез интересует.
Vitek_22
Цитата(comisora @ 17.02.2024 - 13:25) *
но не по остаткам модели.


Что значат эти "остатки модели"? Далёк всё же от статистики)

Через месяц - это абсолютный показатель времени
Разницу вычислять - не очень, т.к. разный размер выборок (у части животных симптоматика прогрессировала быстрее и они погибли раньше повторного анализа). как в этом случае произвести вычитание?

Цитата(ИНО @ 17.02.2024 - 13:50) *
Вообще, с приведенными данными модно проделать очень много всякого, хорошие такие данные. вкусные smile.gif
Я просто не знаю, что из этого реализовано в Statistica 12, за неимением оной. А еще не совсем ясно, проверка каких конкретно гипотез интересует.

Возможно, мне надо осваивать другие программы))

Гипотеза. что лечение повлияло на развитие симптоматики и этот эффект был стойким во времени. Само заболеваний вылечить нельзя, т.к. оно генетически-обусловлено, но у "лечённой" группы показатели были лучше, как можно видеть из данных.
ИНО
Цитата
Через месяц - это абсолютный показатель времени
Разницу вычислять - не очень, т.к. разный размер выборок (у части животных симптоматика прогрессировала быстрее и они погибли раньше повторного анализа). как в этом случае произвести вычитание?


Важное замечание! Это значит, что выборки цензурированы справа. причем причина рецензирования не является независимой от исследуемых факторов. То есть сам факт цензурирования информативен. Я о таком только читал (даже термин какой-то есть для этого), но в виду отсутствия перспектив встретить подобную ситуацию в своей практике, все позабыл.

Если же есть основания считать что смерить никак не связана с исследуемыми факторами, а произошла по сторонней (например, от старости), то все достаточно просто.

Из статистического ПО ничего универсальные R, вреде бы, пока не придумали. Единственный недостаток - тормоза, но сомневаюсь, что Ваши выборки столь велики, чтобы Вы из заметили. Ну и придется осваивать синтаксис. Но это придется рано или поздно делать в любом случае, не с R, так с Питоном или еще чем-то. То что предлагаться в кнопочный интерфейсах очень скудно и негибко. Я сходил по ссылке на статью многоуважаемого nokh о смешанном ДА - это же какой-то ужас в плане эргономики, а главное, вообще непонятно, каким конкретно образом был обработан случайный фактор (наверное оно где-то в недрах руководства мелким шрифтом прописано, но места знать надо). Ну на фиг такой интерфейс! Читал, что в новых версиях Statistica R уже интегрирован, т.е. устанавливать не придется, достаточно только вызвать.
comisora
Цитата(Vitek_22 @ 17.02.2024 - 15:25) *
Что значат эти "остатки модели"?

Посмотрите учебные материалы по ссылке.

Цитата(Vitek_22 @ 17.02.2024 - 15:25) *
Разницу вычислять - не очень, т.к. разный размер выборок (у части животных симптоматика прогрессировала быстрее и они погибли раньше повторного анализа). как в этом случае произвести вычитание?


Тут возможны варианты: исключать из анализа (умер/не умер - другой вопрос), проставить умершим нули (время 0 у живого быть не может), оставить для использования (реально только через смешанные модели).

В коде ниже указана попытка сделать анализ повторных измерений при допущении различных трансформаций. Лучшей оказалась модель с предварительным логарифмированием зависимой переменной. На графике видно, что группы изначально различались, к концу исследования эти различия усилились. На мой взгляд, если различия объясняются эффектом лечения, то результат (сила эффекта) достаточно скромный. Чтобы в этом убедиться, нужно или усилить эффект от лечения или увеличить количество наблюдений.

CODE
library(mgcv)
txt <- "id value group time
1 31 control first
2 40 control first
3 19 control first
4 55 control first
5 27 control first
6 3 control first
7 40 control first
8 29 control first
9 17 control first
10 46 control first
11 55 treatment first
12 55 treatment first
13 38 treatment first
14 55 treatment first
15 55 treatment first
16 55 treatment first
17 27 treatment first
18 40 treatment first
1 0,7 control second
2 1,4 control second
3 0,5 control second
4 3 control second
5 0,5 control second
6 1,5 control second
7 1,6 control second
11 3 treatment second
12 6,6 treatment second
13 2,4 treatment second
14 2,1 treatment second
15 3 treatment second
16 1,4 treatment second
17 4 treatment second
18 9,7 treatment second"
df <- read.table(text = txt, header = TRUE, dec = ',')
#df <- df[-which(df$id %in% c(8, 9, 10)),]
df$group <- factor(df$group, levels = c('control', 'treatment'))
df$time <- factor(df$time, levels = c('first', 'second'))
df$val1 <- log(df$value)
df$val2 <- df$value/60
fitA <- gam(value~time*group + s(id, bs = 're'),
family = gaussian(link = 'identity'),
data = df)
fitB <- gam(value~time*group + s(id, bs = 're'),
family = gaussian(link = 'log'),
data = df)
fitC <- gam(value~time*group + s(id, bs = 're'),
family = gaussian(link = 'inverse'),
data = df)
fit1 <- gam(val1~time*group + s(id, bs = 're'),
family = gaussian(link = 'identity'),
data = df)
fit2 <- gam(val2~time*group + s(id, bs = 're'),
family = betar(link = 'logit'),
data = df)
mods <- ls(pattern = 'fit')
modSum <- do.call(cbind,
lapply(seq_along(mods),
function(i) {
mod <- summary(get(mods[i]))
result <- rbind(mod$dev.expl, mod$r.sq)
row.names(result) <- c('DevExpl', 'RsqAdj')
colnames(result) <- mods[i]
return(result)
}
)
)

pred <- predict(fit1,
newdata = expand.grid(group = levels(df$group),
time = levels(df$time)),
newdata.guaranteed = TRUE,
type = 'response',
exclude = 's(id)',
se.fit = TRUE)
pred$cil <- pred$fit - pred$se.fit*qnorm(0.975)
pred$ciu <- pred$fit + pred$se.fit*qnorm(0.975)
pred$mu <- exp(pred$fit)
pred$lwr <- exp(pred$cil)
pred$upr <- exp(pred$ciu)
pred <- data.frame(pred)
pred <- cbind(pred,
expand.grid(group = levels(df$group), time = levels(df$time))
)
pl <- ggplot(pred, aes(x = time, y = mu, ymax = upr, ymin = lwr,
shape = group)) +
geom_pointrange(position = position_dodge(0.1)) +
theme_bw() + theme(strip.text = element_blank()) +
scale_y_log10()


Цитата(ИНО @ 17.02.2024 - 21:07) *
Единственный недостаток - тормоза, но сомневаюсь, что Ваши выборки столь велики, чтобы Вы из заметили.

Это не баг, это - фича (с).
ИНО
Зачем GAM если есть только две точки для каждого животного. Чем обычные линейный модели не угодили? Кривую все равно по двум точкам не построить.

Идея с подстановкой нуля умершим меня тоже посещала, но была отброшена как неправомерная. Почему 0, а не 0,001 или -1? Первый вариант возможен в случае, если смерть животного наступает при показателе измеряемой величины малом, но большем, чем ноль, вторая - если она наступила задолго до второго измерения, а динамика показателя была такова, что при линейной эстраполяции на момент второго измерения ушла бы в область отрицательных значений. Так что правильного ответа, что следовало бы подставить мертвым, мы не знаем, а поскольку от него зависит параметры модели и достигаемые уровни значимости, подставлять что-либо права не имеем. Или же имеем право подставлять разное мульён раз, а потом рисовать ДИ для ДИ и для p, но то такое себе занятие... См. импутация.

Не только смешанные модели. Особь можно ввести в обычную линейную модель как фиксирванный фактор. Мощность пострадает, зато допущений меньше. Есть и другие пути. Но ни один из них не будет учитывать тот факт, что рецензирование неслучайно. Быть может, лучше построить две модели? Первая, построенная на всех особях, будет предсказывать выживет или умрет,вторая, построенная только на выживших особях - величину измеряемого показателя в случае, если подопытный таки протянет месяц.
comisora
Цитата(ИНО @ 18.02.2024 - 11:34) *
Зачем GAM если есть только две точки для каждого животного. Чем обычные линейный модели не угодили? Кривую все равно по двум точкам не построить.

Идея с подстановкой нуля умершим меня тоже посещала, но была отброшена как неправомерная. Почему 0, а не 0,001 или -1?

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


Из коробки один синтаксис позволяет строить lm/glm, betareg и заодно прикрутить случайный эффект. На двух точка кривую, конечно, не построить, но их соединить прямой линией библиотека может.
Исходя из условий задачи, 0 - это какое-то время. Я допустил, что 0 - это железный показатель того, что "пациент мёртв" и никакой активности не может быть по определению. Отрицательное значение времени (исходя из задачи) ситуация невозможная. Создавать колонку статуса "жив/мертв" смысла нет, если мы знаем, что 0 - это смерть. Считаю, что подставлять мы имеем право. Другое дело, что придётся подумать, как этот 0 учесть, чтобы он проблем не создавал. Первое, что приходит в голову - Zero inflated beta (ZOIB) regression. Если у всех результат измерения укалдывается в 60 с, то мы легко перейдём к данной модели.

Еще лучше знать дату смерти особи, чтобы задачу свести к анализу выживаемости. Вторая модель (на живих) уже сделана.
ИНО
ИМХО с нулем Вас куда-то не туда занесло. Бета-регрессия - про данные, естественным образом жестко ограниченные в определенном интервале как снизу, так и сверху (например, проценты). У нас не так.

Насчет моих соображений об отрицательном значении зависимой переменной попробую объяснить их ход. Пусть истинная функция изучаемого показателя в времени - некая монотонно убывающая кривая. Предположим, что она достигает минимальной величины (допустим 0), после которой следует смерть. У нас имеются всего две фиксированные временные точки, когда были произведены замеры: 0 месяцев и 1 месяц. Очевидно, что истинную форму кривой по ним восстановить не получится. Но можно аппроксимировать ее прямой. Однако в таком случае, если 0 был достигнут между точками "0 мес." и "1 мес.", наша аппроксимирующая прямая в точке "1 мес." будет уже лежать в области отрицательных значений. Конечно, в случае времени отклика в качестве зависимой переменной, это будет величина фиктивная, но такое моделирование было бы более корректно, чем приравнивающее зависимую к нулю в точке "1 мес.". Просто любые отрицательные предсказания следовало бы жестко заменить на нули. Построить такую модель можно, если для каждой особи создать дополнительную точку "измерения" в момент ее гибели (если он известен) со значением 0. Но это сработает толков том случае, если гибель наступает строго при нуле, в чем я своем не уверен. В общем, такое моделирование включает довольно сильные непроверяемые предположения, заставляющие вспомнить о знаменитом сферическом коне...
ИНО
Vitek_22, пожалуйста, ответьте на два вопроса:

1. Известны ли даты смерти каждого животного, не дожившего до второго измерения?

2. Есть ли теоретические основания считать, что смерть животного наступает строго при достижении измеряемой величины нулевого значения?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.