Не удается заставить вычисление p-значения kr в tab_model (sjPlot) работать

Я пытаюсь обобщить модель lmer с помощью sjPlot::tab_model. Это работает, пока я не попытаюсь получить p-значения «kr», чтобы также получить степени свободы. У меня установлен pbkrtest, и я могу использовать его отдельно, но он безуспешно вызывается tab_model. Кто-нибудь знает, что мне не хватает?

Я запустил линейную модель смешанных эффектов. Я могу создать таблицу, используя

tab_model(BWRTmod1b,show.stat = TRUE)

Когда я изменяю вызов, чтобы получить p-значения на основе аппроксимированных степеней свободы Кенворда-Роджера, например:

tab_model(BWRTmod1b,p.val= "kr" ,show.stat = TRUE) 

Я получаю следующее сообщение об ошибке:

Ошибка в раунде (attr (pv, "df.kr", точно = TRUE)) : нечисловой аргумент математической функции

Я погуглил проблему, и единственное, что я нашел, это отсутствующий пакет pbkrtest, но здесь это не так. Я также погуглил само сообщение об ошибке и обнаружил, что это может произойти, когда фрейм данных передается в функцию, которая требует числового ввода. Я также обновил R и переустановил/обновил все пакеты, но это не помогло.

Я не знаю, могу ли я это исправить и как, и вполне возможно, что я упускаю что-то еще. Любые подсказки будут оценены.

Ссылка на выходные данные модели

# working
tab_model(BWRTmod1b,show.stat = TRUE)

# not working
tab_model(BWRTmod1b,p.val= "kr" ,show.stat = TRUE) 

# long term goal
tab_model(BWRTmod1b,p.val= "kr", show.df=TRUE ,show.stat = TRUE) 

Я ожидал создать таблицу результатов моей линейной модели смешанных эффектов, которая включает степени свободы. Я могу сгенерировать сводную таблицу на основе приближения Вальда, но не могу получить версию Кенворда-Роджера со степенями свободы.


person Romy Frömer    schedule 08.08.2019    source источник
comment
Боюсь, что без минимального воспроизводимого примера ответить на него более или менее невозможно. Я попытался построить некоторые базовые LMM, даже заставив один из них быть единственным, сделав набор данных очень маленьким, и до сих пор не смог сгенерировать вашу ошибку. Получаете ли вы какие-либо предупреждения при примерке модели...?   -  person Ben Bolker    schedule 09.08.2019
comment
Привет, Бен, у меня не было ошибок при подгонке модели, и я могу вставить ее с приближением Вальда. lmerTest также дает мне разумную сводку, поэтому я не думаю, что с моделью что-то не так (она сошлась нормально и все такое). Ммм. Позвольте мне посмотреть, могу ли я как-то прикрепить вывод модели.   -  person Romy Frömer    schedule 09.08.2019
comment
ссылка, которую вы разместили, требует разрешения ...   -  person Ben Bolker    schedule 09.08.2019
comment
О человек, прости! Я изменил это. Это работает сейчас? Должен быть.   -  person Romy Frömer    schedule 09.08.2019
comment
Обновление: я переделал модель после отключения lmerTest, и это сработало!   -  person Romy Frömer    schedule 09.08.2019
comment
Хм, теперь я озадачен, пытаясь воспроизвести это/найти пример, где это действительно работает...   -  person Ben Bolker    schedule 09.08.2019
comment
В случае, если это поможет, когда я делаю сводку с KR df, как вы предлагаете ниже, он игнорирует аргумент KR df, так что это не работает, но работает интерфейс с tab_model.   -  person Romy Frömer    schedule 09.08.2019
comment
да, но вы действительно получаете p-значения KR? Если вы переустановите модель с прикрепленным lmerTest, я не думаю, что вы сможете получить значения KR ... ? Я довольно глубоко запутался в этот момент. Я думаю, что, возможно, стоит опубликовать проблему в списке проблем для sjPlot ...   -  person Ben Bolker    schedule 09.08.2019
comment
О, я думаю, вы меня неправильно поняли: я переустанавливаю его БЕЗ lmerTest. Итак, проблема была в lmerTest, и когда я его отсоединил, он заработал.   -  person Romy Frömer    schedule 09.08.2019
comment
Хм. Я все еще не уверен, что понял. Если вам это нужно: github.com/strengejacke/sjPlot/issues   -  person Ben Bolker    schedule 09.08.2019
comment
Спасибо! На самом деле я вчера тоже разместил это там: github.com/strengejacke/sjPlot/issues/446< /а>   -  person Romy Frömer    schedule 09.08.2019


Ответы (1)


Оказывается, это ошибка/неудачное взаимодействие между пакетами lmerTest и sjPlot. Воспроизводимый пример:

library(lmerTest)
fm3 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy,
            REML=TRUE)
sjPlot::tab_model(fm3,p.val="kr")
## Error in round(attr(pv, "df.kr", exact = TRUE)) : 
## non-numeric argument to mathematical function

тогда как то же самое работает, если вы начинаете с library(lme4) вместо library(lmerTest). Теперь это должно быть исправлено в разрабатываемой версии sjPlot.

Не уверен, как это взаимодействует с REML=TRUE...

person Ben Bolker    schedule 09.08.2019
comment
Хм! Перед отключением lmerTest я пытался установить REML, и это не сработало, а сейчас я использую REML= FALSE, только без lmerTest, и это работает. - person Romy Frömer; 09.08.2019