Я пытаюсь проанализировать некоторые данные, используя модель смешанного эффекта. Собранные мной данные показывают вес некоторых молодых животных с различным генотипом с течением времени.
Я использую предлагаемый здесь подход: https://gribblelab.wordpress.com/2009/03/09/repeated-measures-anova-using-r/
В частности я использую решение № 2
Так у меня что то типа
require(nlme)
model <- lme(weight ~ time * Genotype, random = ~1|Animal/time,
data=weights)
av <- anova(model)
Теперь я хотел бы провести несколько сравнений. Используя multcomp
я могу сделать:
require(multcomp)
comp.geno <- glht(model, linfct=mcp(Genotype="Tukey"))
print(summary(comp.geno))
И, конечно, я мог сделать то же самое со временем.
У меня есть два вопроса:
- Как мне использовать,
mcp
чтобы увидеть взаимодействие между временем и генотипом? Когда я бегу,
glht
я получаю это предупреждение:covariate interactions found -- default contrast might be inappropriate
Что это означает? Могу ли я безопасно проигнорировать это? Или что я должен сделать, чтобы избежать этого?
РЕДАКТИРОВАТЬ: я нашел этот PDF, который говорит:
Поскольку в этом случае невозможно автоматически определить интересующие параметры, mcp () в multcomp по умолчанию будет генерировать сравнения только для основных эффектов, игнорируя ковариаты и взаимодействия . Начиная с версии 1.1-2, можно указать усреднение по терминам взаимодействия и ковариатам с использованием аргументов взаимодействия_верация = ИСТИНА и covariate_average = ИСТИНА соответственно, тогда как версии старше 1.0-0 автоматически усредняются по условиям взаимодействия. Тем не менее, мы предлагаем пользователям вручную написать набор желаемых контрастов.Это следует делать всякий раз, когда возникает сомнение в том, что измеряют контрасты по умолчанию, что обычно происходит в моделях с терминами взаимодействия более высокого порядка. Мы обращаемся к Hsu (1996), глава ~ 7, и Searle (1971), глава ~ 7.3, для дальнейшего обсуждения и примеров по этому вопросу.
У меня нет доступа к этим книгам, но, может быть, кто-то здесь есть?
Ответы:
Если
time
иGenotype
оба являются категориальными предикторами, какими они кажутся, и вы заинтересованы в сравнении всех пар время / генотип друг с другом, то вы можете просто создать одну переменную взаимодействия и использовать на ней контрасты Тьюки:Если вас интересуют другие контрасты, то вы можете использовать тот факт, что
linfct
аргумент может принимать матрицу коэффициентов для контрастов - таким образом, вы можете установить именно те сравнения, которые вы хотите.РЕДАКТИРОВАТЬ
В комментариях появляется некоторая обеспокоенность тем, что модель, снабженная
TimeGeno
предиктором, отличается от исходной модели, снабженнойTime * Genotype
предиктором. Это не так , модели эквивалентны. Единственная разница заключается в параметризации фиксированных эффектов, которая настраивается для облегчения использованияglht
функции.Я использовал один из встроенных наборов данных (в нем есть Diet вместо Genotype), чтобы продемонстрировать, что два подхода имеют одинаковую вероятность, прогнозируемые значения и т. Д .:
Разница лишь в том, что какие гипотезы легко проверить. Например, в первой модели легко проверить, взаимодействуют ли два предиктора, во второй модели нет явного теста для этого. С другой стороны, совместный эффект двух предикторов легко проверить во второй модели, но не в первой. Другие гипотезы проверяемы, это просто больше работы, чтобы установить их.
источник
glht
использует степени свободы, указанные в модели lme. Я не уверен, что эти степени свободы являются подходящими ...?Animal/time
который сейчас не является одним из факторов. Это правдаunderstand
?all.equal(resid(model1), resid(model2))
увидеть, что они одинаковы, прежде чем угадать иначе? Только фиксированная параметризация эффектов отличается.TimeDiet
это не просто термин взаимодействия, и он не эквивалентенTime:Diet
, а скорееTime + Diet + Time:Diet
.