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

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

 
Добавить ответ в эту темуОткрыть тему
> Дисперсионный анализ (ANOVA) при одном наблюдении на ячейку
Blaid
сообщение 17.05.2021 - 23:51
Сообщение #1





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



Здравствуйте уважаемые участники форума!

Обращаюсь за помощью в решении следующего вопроса:

- вроде бы как есть обычный двухфакторный дисперсионный анализ в виде оценки влияния таких факторов как вид растения (фактор А) и тип растворителя-экстрагента (фактор Б) на цитотоксичность растительных экстрактов, протестированных на линии раковых клеток.

Зависимая переменная (переменная отклика) - количественная непрерывная (выраженная в мкг/мл).
Фактор А - это вид растения (всего 5 видов).
Фактор Б - тип растворителя-экстрагента (хлороформ, этилацетат, метанол, этанол и др.). Всего 7 типов экстрагентов для каждого вида и для каждого вида набор экстрагентов одинаков. Т.е. фактор Б не является вложенным в фактор А (поскольку для каждого вида набор из 7-ми экстрагентов одинаков, один и тот же).

НО ЕСТЬ ОСОБЕННОСТЬ: в ячейке данного дисперсионного комплекса только по одному наблюдению...

Т.е. допустим: есть вид растения полынь, для которого протестировано 7 типов экстрактов (метанольный, хлороформный, этилацетатный и т.д.). Далее - есть вид растения эхинацея, для которого протестировано 7 типов таких же экстрактов. Далее - есть вид растения чабрец, для которого протестировано 7 типов экстрактов (таких же, как для полыни и эхинацеи). И т.д. И для каждого типа экстракта того или иного вида есть ТОЛЬКО одно значение цитотоксичности (мкг/мл). Т.о. фактор А (на 5-ти уровнях градации) содержит по 7 значений (на каждом из 5-ти уровней, отвечающих 5-ти видам растений). А фактор Б (на 7-ми уровнях градации, одинаковых для каждой из 5-ти градаций фактора А) содержит только по одному значению.

Будет ли правильным - при такой схеме градации независимых переменных и одной переменной отклика - использовать дисперсионный анализ в целом?

Интересует ответ на вопрос какие факторы (вид растения и тип растворителя-экстрагента) влияют на вариацию цитотоксичности растительных экстрактов? Т.е. (проще говоря) от чего зависит цитоксичность: от вида растения или от типа растворителя-экстрагента (или же от их сочетания)?


Причина того, что для каждого типа экстракта (допустим метанольный из полыни или метанольный из эхинацеи) есть только одно значение цитотоксичности заключается в том, что данный показатель оценивался на основе построения кривых доза-эффект (с определением для каждой кривой показателя IC50 - полуэффективной подавляющей рост концентрации). И для каждого типа экстракта строилась (в силу ограниченности ресурсов) только одна кривая (а не, допустим, 3). Поэтому и наблюдение т.о. только одно...

Спасибо!

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
nokh
сообщение 20.05.2021 - 21:58
Сообщение #2





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



Цитата(Blaid @ 18.05.2021 - 01:51) *
...НО ЕСТЬ ОСОБЕННОСТЬ: в ячейке данного дисперсионного комплекса только по одному наблюдению...

Это действительно особенность, но не проблема. Просто дисперсионный комплекс с одним наблюдением на ячейку. Описан в Монтгомери (в переводном издании на стр. 150): https://yadi.sk/d/iWeppTdonLaAog
Также описано у Сокала и Рольфа, у Мардиа и Земроч, и в др. книжках. Поскольку наблюдение одно, ошибку нельзя отделить от взаимодействия, т.е. ошибкой выступает сумма (взаимодействие если оно есть + ошибка). Хотя судить о взаимодействии помогает тест Тьюки на неаддитивность. Получается как дисперсионный анализ главных эффектов (main effects anova).

Более проблематичной видится нормальность распределения ошибки, тест на которую пакеты скорее всего не выдадут. А асимметричное распределение ошибки увеличит дисперсию и снизит разрешающую способность анализа. Поэтому я бы провёл такую проверку вручную, удобно даже в Экселе:
0) Сначала рассчитать среднее для всей таблицы и вычесть его из каждого значения таблицы, т.е. убрать из модели мю (математическое ожидание). В принципе, этот шаг можно пропустить, т.к. вычитание константы не повлияет на распределение ошибки кроме как сдвигом.
1) Для оставшейся матрицы рассчитать средние значения по строкам и вычесть его из значений соответствующей строки, т.е. убрать из модели фактор строки (например, Вид)
2) Для оставшейся матрицы рассчитать средние значения по столбцам и вычесть его из значений соответствующего столбца, т.е. убрать из модели фактор столбца (например, Растворитель)
3) То, что останется и будет ошибкой модели. 5 х 7 = 35 значений. Этого уже хватит и для проверки на нормальность и для построения грубой гистограммы. Если распределение будет скошенным, исходные данные можно преобразовать, например попробовать логарифмирование. т.к. малые концентрации распределены близко к логнормальному.

Как вариант можно применить также непараметрику. Можно провести анализ Фридмана (для рандомизированных блоков) и оценить значимость эффекта строки. Затем транспонировать матрицу данных и повторить анализ, так получим оценку эффекта столбца. Поскольку метод ранговый, получится довольно грубо, но как вариант... Дисперсионный анализ мне нравится больше.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
comisora
сообщение 21.05.2021 - 09:48
Сообщение #3





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



2 Blaid,
По Вашему описанию выполнил генерацию данных. Как Вам указал nokh, особенность данных диктует сравнение общих эффектов. Высказанные опасения про несоответствие Ваших данных допущениям ANOVA игнорировать всё же не стоит. Поэтому можно использовать обобщение непараметрки "продуктивными методами анализа":

Код
library(ordinalCont)
library(ordinal)
library(rms)

set.seed(32167)
A <- c("Полынь", "Эхинацея", "Чабрец", "Мята", "Пельмень")
B <- c("метанольный", "хлороформный", "этилацетатный", "спиртовой", "угольный", "нефтяной", "квасной")
C <- rexp(n = length(A)*length(B))
data <- cbind(C,expand.grid(A,B))
colnames(data) <- c("Доза", "Растение", "Растворитель")

fit.a <- ocm(ordered(Доза)~Растение+Растворитель, data = data)
fit.b <- clm(ordered(Доза)~Растение+Растворитель, data = data)
fit.c <- orm(ordered(Доза)~Растение+Растворитель, data = data)


Ссылки:
Статья про использование "десятков уравнений" логистической регрессии Modeling continuous response variables using ordinal regression
Рассуждение в блоге на тему You Must Like the Proportional Odds Model
Просто про критерий Фридмена почитать на Researchgate
Прикрепленные файлы
Прикрепленный файл  example.xlsx ( 5,99 килобайт ) Кол-во скачиваний: 315
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

Добавить ответ в эту темуОткрыть тему