Скажімо, у нас є модель
mod <- Y ~ X*Condition + (X*Condition|subject)
# Y = logit variable
# X = continuous variable
# Condition = values A and B, dummy coded; the design is repeated
# so all participants go through both Conditions
# subject = random effects for different subjects
summary(model)
Random effects:
Groups Name Variance Std.Dev. Corr
subject (Intercept) 0.85052 0.9222
X 0.08427 0.2903 -1.00
ConditionB 0.54367 0.7373 -0.37 0.37
X:ConditionB 0.14812 0.3849 0.26 -0.26 -0.56
Number of obs: 39401, groups: subject, 219
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.49686 0.06909 36.14 < 2e-16 ***
X -1.03854 0.03812 -27.24 < 2e-16 ***
ConditionB -0.19707 0.06382 -3.09 0.00202 **
X:ConditionB 0.22809 0.05356 4.26 2.06e-05 ***
Тут ми спостерігаємо сингулярне прилягання, оскільки кореляція між перехопленням та x випадковими ефектами дорівнює -1. Тепер, згідно з цим корисним посиланням, одним із способів поводження з цією моделлю є видалення випадкових ефектів вищого порядку (наприклад, X: ConditionB) та перевірити, чи це має значення при тестуванні на особливість. Інший - використовувати байєсівський підхід, наприклад, blme
пакет, щоб уникнути сингулярності.
Що таке бажаний метод і чому?
Я запитую це, оскільки використання першого чи другого призводить до різних результатів - у першому випадку я видалю випадковий ефект X: ConditionB і не зможу оцінити кореляцію між випадковими ефектами X та X: ConditionB. З іншого боку, використання blme
дозволяє мені зберігати X: ConditionB і оцінювати задану кореляцію. Я не бачу жодної причини, чому я навіть повинен використовувати небайджеві оцінки та видаляти випадкові ефекти, коли виникають сингулярні пристосування, коли я можу оцінити все за допомогою байєсівського підходу.
Чи може хтось пояснити мені переваги та проблеми, використовуючи будь-який метод боротьби з сингулярними припадами?
Дякую.