используйте name_repair для объекта mids у мышей - PullRequest
0 голосов
/ 16 января 2020

У меня есть набор из 5 наборов данных, которые были сгенерированы путем многократного вменения с использованием пакета мышей. Я использую иерархическую регрессию для этих наборов данных, но когда я пытаюсь объединить результаты, я получаю ошибку, что «столбец 6 должен быть назван» и использовать .name_repair. Я никогда не видел эту проблему, и я проверил имена моих столбцов, и все они имеют имя. Может кто-нибудь объяснить, что я должен сделать для устранения неполадок?

pool(with(mids_dis, lmer(exer_vig ~ 1 + (1 | team_num) + (1 | dept_client))))

Error: Column 6 must be named.
Use .name_repair to specify repair.
Call `rlang::last_error()` to see a backtrace
> rlang::last_error()
<error>
message: Column 6 must be named.
Use .name_repair to specify repair.
class:   `rlang_error`
backtrace:
  1. mice::pool(...)
  2. mice:::pool.fitlist(getfit(object), dfcom = dfcom)
  4. mice:::summary.mira(fitlist, type = "tidy", exponentiate = FALSE)
  8. base::lapply(fitlist, tidy, effects = "fixed", ...)
 10. broom:::tidy.merMod(X[[i]], ...)
 11. broom::fix_data_frame(ret, newnames = nn)
 13. tibble:::as_tibble.data.frame(ret)
 14. tibble:::as_tibble.list(unclass(x), ..., .rows = .rows, .name_repair = .name_repair)
 15. tibble:::lst_to_tibble(x, .rows, .name_repair, col_lengths(x))
 16. tibble:::set_repaired_names(x, .name_repair)
 21. tibble:::repaired_names(names(x), .name_repair = .name_repair)
 22. tibble:::check_unique(new_name)
Call `rlang::last_trace()` to see the full backtrace

1 Ответ

1 голос
/ 16 января 2020

После некоторых поисков я нашел ответ на свой вопрос здесь:

https://github.com/stefvanbuuren/mice/issues/95

Короче говоря, мыши выдают ошибку name_repair при использовании lmerTest. Есть два способа обойти эту ошибку:

Если вам НЕ нужны значения значимости (p), тогда загрузка lme4 или использование lme4 :: lmer будут работать без проблем.

Если вы Нужны значения значимости, тогда вам также нужно загрузить пакет miceadds . С этим загруженным, вы можете использовать lmerTest без проблем.

library(mice)
library(miceadds)
library(lmerTest)

summary(pool(with(mids_dis, lmerTest::lmer(exer_vig ~ 1 + age + (1 | team_num) + (1 | dept_client)))))

              estimate  std.error statistic       df      p.value
(Intercept) 2.36102939 0.31957622  7.388001 244.3050 2.353007e-12
age         0.01096181 0.01042713  1.051277 238.7271 2.941943e-01
...