@ Ответ Джона выше должен быть в значительной степени правильным. Вы добавляете фиктивную переменную (т.е. факторную переменную Y
) в модель. Здесь у вас есть 3 подписки i= 1...N
для наблюдений, j=1,...,4
для блоков и h=1,2
для зависимых переменных. Но вам также нужно принудительно установить уровень ошибки уровня 1 в 0 (или почти в ноль), что я не уверен, lme4
делает. Бен Болкер может предоставить больше информации. Это описано более подробно в Goldstein (2011), глава 6 и глава 7, для скрытых многомерных моделей.
IE
Y_hij = \ beta_ {01} z_ {1ij} + \ beta_ {02} z_ {2ij} + \ beta X + u_ {1j} z_ {1ij} + u_ {2j} z_ {2ij}
Итак:
require(reshape2)
Data = melt(data, id.vars=1:3, variable_name='Y')
Data$Y = factor(gsub('Y(.+)', '\\1', Data$Y))
m1 <- lmer(value ~ Y + A*B + (1|Block) + (1|Block*A), data= Data)
# not sure how to set the level 1 variance to 0, @BenBolker
# also unclear to me if you're requesting Y*A*B instead of Y + A*B