ANOVA LMER Эта квадрат - PullRequest
       32

ANOVA LMER Эта квадрат

1 голос
/ 07 марта 2020

Я использовал пакет lmer для запуска смешанных моделей, когда я использую функцию anova для получения результатов anova, все работает. Тем не менее, когда я пытаюсь вычислить ETA в квадрате, я последовательно получаю ошибку ниже. Есть идеи?

Dyestuff - это набор данных, доступный в пакете lmerTest. Я использую пакет 'lme4' версии 1.1-21. пакет 'lmerTest' версии 3.1-0 и пакет 'sjstats' версии 0.17.7

fm1 <- lmer(Yield ~ 1 + (1|Batch), Dyestuff)
am <- anova(fm1, test="F")
eta_sq(am, partial = FALSE, ci.lvl = NULL, n = 1000, method = c("dist", "quantile"))

Ошибка: результат 2 не является атомом длины 1 c вектор
Дополнительно: предупреждение сообщение: В tidy.anova (модель): Следующие имена столбцов в выходных данных ANOVA не были распознаны или преобразованы: NumDF, DenDF

1 Ответ

3 голосов
/ 08 марта 2020

tl; др

  • это может быть теоретически трудно вычислить ЕТА-квадрат для смешанных моделей, см. Например этот вопрос CV (он предлагает некоторые способы вычисления значений R ^ 2 для смешанных моделей, которые могут удовлетворить вашу потребность в размере эффекта)
  • фактически, проксимальная проблема, по-видимому, заключается в том, что внутренне вычисление квадрата eta в sjstats ожидает, что метод anova() вернет таблицу, содержащую строку, соответствующую остаточной дисперсии. ?anova.lmerModLmerTest возвращает таблицу, в которой только строки соответствуют определенным слагаемым эффекта (а не остаточной дисперсии).
  • в любом случае вы можете столкнуться с проблемами при вычислении квадрата для модели без нетривиальной модели фиксированные эффекты (т.е. только перехват с фиксированным эффектом) ...

Это может быть более подходящим для списка проблем sjstats , но я буду использовать это пространство для поделитесь тем, что я выяснил до сих пор.

  • Установка модели только для перехвата дает похожую ошибку, даже если это просто lm() подгонка (которая должна работать, если что-то работает):
fm0 <- lm(Yield ~ 1 , Dyestuff)
am0 <- anova(fm0, test="F")
eta_sq(am0)

Ошибка: Результат 2 должен быть одинарным двойным, а не двойным вектором длины 0
Выполнить rlang::last_error(), чтобы увидеть, где произошла ошибка.

  • Однако: подгонка нетривиального (больше фиксированных эффектов, чем просто перехват) * Модель 1038 * также дает сбой:
fm2 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
am2 <- anova(fm2, test="F")
eta_sq(am2)

Ошибка: результат 2 должен быть одиночный двойной, а не двойной вектор длины 0
Запустите rlang::last_error(), чтобы увидеть, где Произошла ошибка.
Кроме того: Предупреждение: В tidy.anova (модель): Следующие имена столбцов в выходных данных ANOVA не были распознаны или преобразованы: NumDF, DenDF

(Из чего я может сказать, что предупреждающее сообщение на самом деле безвредно.)

Проксимальной причиной этой проблемы, по-видимому, является то, что внутренняя функция sjstats:::aov_stat_summary() возвращает таблицу с единственной строкой для SSQ / MSQ / et c. из-за Days; в нем также должна быть строка для остаточного SSQ / MSQ / et c.

sjstats:::aov_stat_summary(am3)
##  term    sumsq   meansq NumDF    DenDF statistic      p.value
## 1 Days 30030.94 30030.94     1 16.99998  45.85296 3.263825e-06

Проблема заключается в том, что число членов вычисляется внутри как (nrow(aov.sum)-1), что не смысл здесь.

Сравните это с тем, что мы получаем с 1+Days моделью, использующей lm():

fm3 <- lm(Reaction ~ Days , sleepstudy)
am3 <- anova(fm3, test="F")
sjstats:::aov_stat_summary(am3)
##        term  df    sumsq     meansq statistic      p.value
## 1      Days   1 162702.7 162702.652  71.46442 9.894096e-15
## 2 Residuals 178 405251.6   2276.694        NA           NA

Копая немного глубже, мы видим, что это является прямым следствием способ представления результатов anova() для смешанных моделей:

anova(fm2)
## Type III Analysis of Variance Table with Satterthwaite's method
##      Sum Sq Mean Sq NumDF DenDF F value    Pr(>F)    
## Days  30031   30031     1    17  45.853 3.264e-06 ***

Обратите внимание, что в строке "остатки" нет. Для сравнения:

anova(fm3)
## Analysis of Variance Table
## Response: Reaction
##            Df Sum Sq Mean Sq F value    Pr(>F)    
## Days        1 162703  162703  71.464 9.894e-15 ***
## Residuals 178 405252    2277                      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...