2016-05-08 11 views
2

В afex пакете можно найти этот пример анализа ANOVA:Как конвертировать модели Afex или автомобиля ANOVA в lmer? Наблюдаемые переменные

data(obk.long, package = "afex") 
# estimate mixed ANOVA on the full design: 
# can be written in any of these ways: 

aov_car(value ~ treatment * gender + Error(id/(phase*hour)), data = obk.long, 
     observed = "gender") 

aov_4(value ~ treatment * gender + (phase*hour|id), data = obk.long, 
     observed = "gender") 

aov_ez("id", "value", obk.long, between = c("treatment", "gender"), 
     within = c("phase", "hour"), observed = "gender") 

Мой вопрос, как я могу написать ту же модель в lme4? В частности, я не знаю, как включить «наблюдаемый» термин?

Если я просто пишу

lmer(value ~ treatment * gender + (phase*hour|id), data = obk.long, 
    observed = "gender") 

я получаю красноречивую ошибку, которая наблюдается не является допустимым вариантом.

Кроме того, если я просто удалить наблюдаемый параметр lmer производит ошибку:

Error: number of observations (=240) <= number of random effects (=240) for term (phase * hour | id); the random-effects parameters and the residual variance (or scale parameter) are probably unidentifiable.

Где в синтаксисе lmer ли я указать «между» или «в» переменной ?. Насколько я знаю, вы просто записываете зависимую переменную с левой стороны и все остальные переменные с правой стороны, а значение ошибки - как (1 | id).

В пакете «автомобиль» используется идентификатор для переменной внутри объекта.

ответ

2

Я мог бы не знать достаточно о классической теории ANOVA, чтобы полностью ответить на этот вопрос, но я взломаю. Во-первых, несколько баллов:

  • аргумент observed представляется только релевантным для вычисления размера эффекта.

observed: ‘character’ vector indicating which of the variables are observed (i.e, measured) as compared to experimentally manipulated. The default effect size reported (generalized eta-squared) requires correct specification of the obsered [sic] (in contrast to manipulated) variables.

... так что я думаю, что вы бы безопасно оставить его.

  • , если вы хотите, чтобы отменить ошибку вы можете использовать
control=lmerControl(check.nobs.vs.nRE="ignore") 

... но это, вероятно, не правильный путь вперед.

Я думаю, но я не уверен, что это правильный путь:

m1 <- lmer(value ~ treatment * gender + (1|id/phase:hour), data = obk.long, 
    control=lmerControl(check.nobs.vs.nRE="ignore", 
          check.nobs.vs.nlev="ignore"), 
    contrasts=list(treatment=contr.sum,gender=contr.sum)) 

Это указывает, что взаимодействие phase и hour колеблется в пределах id. Остаточная дисперсия и дисперсия (по часам в пределах id) смешаны (поэтому нам нужна переопределяющая спецификация lmerControl()), поэтому не доверяйте этим конкретным оценкам дисперсии. Однако основные последствия лечения и пола должны быть одинаковыми. Если вы загрузите lmerTest вместо lmer и запустите summary(m1) или anova(m1), он даст вам одинаковые степени свободы (10) для фиксированных (пол и лечение) эффектов, которые вычисляются afex.

lme дает сопоставимые ответы, но необходимо иметь взаимодействие фаз за часом построен заранее:

library(nlme) 
obk.long$ph <- with(obk.long,interaction(phase,hour)) 
m2 <- lme(value ~ treatment * gender, 
      random=~1|id/ph, data = obk.long, 
    contrasts=list(treatment=contr.sum,gender=contr.sum)) 
anova(m2,type="marginal") 

Я не знаю, как реконструировать тесты afex «s случайных эффектов.

3

Как правильно говорит Бен Болкер, просто оставьте observed.

Кроме того, я бы не рекомендовал делать то, что вы хотите сделать. Использование смешанной модели для набора данных без реплик в каждой ячейке дизайна для каждого участника несколько сомнительно, так как не совсем ясно, как указать структуру случайных эффектов. Важно отметить, что Barr et al. Максимум «держать его максимальным» здесь не работает, как вы поняли. Проблема в том, что модель перепараметризирована (следовательно, ошибка от lmer).

Я рекомендую использовать ANOVA. Больше обсуждения именно этого вопроса можно найти на перекрестной проверке, где Бен и я discussed this more thoroughly.

+0

Вы можете указать, что вы являетесь автором 'afex' (и, следовательно, что-то вроде авторитета по теме :-)) –

+0

Да, я знаю, я использую только случайные эффекты, когда у меня есть репликация для каждого индивидуальный. Я просто спрашивал в целом. – skan

+0

@BenBolker Возможно, это правда. Но тогда это всегда немного напоминает хвастовство. И для большинства вопросов, вращающихся вокруг 'lme4', вы, как правило, больше полномочий. – Henrik