Резюме
Дійсно часто говорять, що якщо всі можливі рівні факторів включені в змішану модель, то цей фактор слід розглядати як фіксований ефект. Це не обов'язково вірно ДВОМИ РОЗУМИ:
(1) Якщо кількість рівнів велика, то може бути доцільним трактувати [перекреслений] фактор як випадковий.
Я погоджуюся і з @Tim, і @RobertLong тут: якщо фактор має велику кількість рівнів, які всі включені в модель (наприклад, наприклад, усі країни світу; або всі школи в країні; або, можливо, все населення країни суб'єктів обстежують тощо), то немає нічого поганого в тому, щоб трактувати це як випадковий --- це може бути більш парсимонічним, могло б забезпечити деяку усадку тощо.
lmer(size ~ age + subjectID) # fixed effect
lmer(size ~ age + (1|subjectID)) # random effect
(2) Якщо фактор вкладений в інший випадковий ефект, він повинен трактуватися як випадковий, незалежно від його кількості рівнів.
У цій темі була велика плутанина (див. Коментарі), оскільки інші відповіді стосуються справи №1 вище, але приклад, який ви навели, є прикладом іншої ситуації, а саме цього випадку №2. Тут є лише два рівні (тобто зовсім не "велика кількість"!), І вони вичерпують усі можливості, але вони вкладені всередині іншого випадкового ефекту , даючи вкладений випадковий ефект.
lmer(size ~ age + (1|subject) + (1|subject:side) # side HAS to be random
Детальне обговорення вашого прикладу
Сторони та предмети у вашому уявному експерименті пов'язані, як класи та школи, на прикладі стандартної ієрархічної моделі. Можливо, у кожній школі (№1, №2, №3 та ін.) Є клас А та клас В, і ці два класи повинні бути приблизно однаковими. Ви не будете моделювати класи A і B як фіксований ефект з двома рівнями; це було б помилкою. Але ви не будете моделювати класи A і B як "окремий" (тобто перехрещений) випадковий ефект з двома рівнями; це теж буде помилкою. Замість цього ви будете моделювати класи як вкладений випадковий ефект всередині шкіл.
Дивіться тут: Перехрещені проти вкладених випадкових ефектів: як вони відрізняються і як їх правильно вказати в lme4?
i = 1 … nj = 1 , 2
Розмірi j k= μ + α ⋅ Висотаi j k+ β⋅ Вагаi j k+ γ⋅ Вікi j k+ ϵi+ ϵi j+ ϵi j k
ϵi∼ N( 0 , σ2с у b j e c t s) ,Випадковий перехоплення для кожного предмета
ϵi j∼ N( 0 , σ2предметний) ,Випадковий int. для сторони, вкладеної в тему
ϵi j k∼ N( 0 , σ2шум) ,Помилка
Як ви самі писали, "немає підстав вважати, що права нога в середньому буде більшою, ніж ліва." Отже, взагалі не повинно бути «глобального» ефекту (ні фіксованого, ні випадкового схрещування) правої чи лівої стопи; натомість кожен предмет може подумати, що він має "одну" ногу та "іншу" стопу, і цю мінливість ми повинні включати в модель. Ці "одні" та "інші" ноги вкладені в предмети, отже, вкладені випадкові ефекти.
Більше деталей у відповідь на коментарі. [26 вересня]
Моя модель вище включає Side як вкладений випадковий ефект у Subjects. Ось альтернативна модель, запропонована @Robert, де Side є фіксованим ефектом:
Розмірi j k= μ + α ⋅ Висотаi j k+ β⋅ Вагаi j k+ γ⋅ Вікi j k+ δ⋅ сторонаj+ ϵi+ ϵi j k
i j
Це не може.
Те саме стосується гіпотетичної моделі @ gung із Side як перекреслений випадковий ефект:
Розмірi j k= μ + α ⋅ Висотаi j k+ β⋅ Вагаi j k+ γ⋅ Вікi j k+ ϵi+ ϵj+ ϵi j k
Він також не враховує залежності.
Демонстрація за допомогою моделювання [2 жовтня]
Ось пряма демонстрація в Р.
Я генерую набір іграшок із п’ятьма предметами, виміряними на обох ногах протягом п’яти років поспіль. Ефект віку лінійний. Кожен предмет має випадковий перехоплення. І кожен предмет має одну з ніг (ліву чи праву) більше, ніж іншу.
set.seed(17)
demo = data.frame(expand.grid(age = 1:5,
side=c("Left", "Right"),
subject=c("Subject A", "Subject B", "Subject C", "Subject D", "Subject E")))
demo$size = 10 + demo$age + rnorm(nrow(demo))/3
for (s in unique(demo$subject)){
# adding a random intercept for each subject
demo[demo$subject==s,]$size = demo[demo$subject==s,]$size + rnorm(1)*10
# making the two feet of each subject different
for (l in unique(demo$side)){
demo[demo$subject==s & demo$side==l,]$size = demo[demo$subject==s & demo$side==l,]$size + rnorm(1)*7
}
}
plot(1:50, demo$size)
Вибачте за мої жахливі вміння R. Ось як виглядають дані (кожна п’ять послідовних п'яти крапок - це одна нога однієї людини, виміряна роками; кожна десять послідовних точок - це дві фути однієї людини):
Тепер ми можемо помістити купу моделей:
require(lme4)
summary(lmer(size ~ age + side + (1|subject), demo))
summary(lmer(size ~ age + (1|side) + (1|subject), demo))
summary(lmer(size ~ age + (1|subject/side), demo))
Всі моделі включають фіксований ефект age
та випадковий ефект subject
, але трактуються по- side
різному.
side
age
t = 1,8
side
age
t = 1,4
side
age
t = 37
Це чітко показує, що side
слід трактувати як вкладений випадковий ефект.
Нарешті, у коментарях @Robert запропонував включити глобальний ефект side
як контрольну змінну. Ми можемо це зробити, зберігаючи вкладений випадковий ефект:
summary(lmer(size ~ age + side + (1|subject/side), demo))
summary(lmer(size ~ age + (1|side) + (1|subject/side), demo))
side
t = 0,5side