Я использую mice
, чтобы подготовить набор множественных наборов данных вменения, и на каждом из них запущены две вложенные обобщенные линейные модели. Теперь я хочу сравнить модели с использованием ANOVA (критерий Вальда или отношения правдоподобия). Я пробовал несколько подходов, которые дают совершенно разные ответы (медиан p = 0,018, mice::pool.compare
= 0,194, miceadds :: micombine.chisquare = 0.147, and
miceadds :: MIwaldtest` = 0.803), и я хотел проверьте, правильно ли я использовал каждый метод.
Я пришел к выводу, что последний (MIwaldtest
) не должен использоваться для многократного вменения GLM ?? А также наткнулся на следующую очень полезную статью https://rdcu.be/b2NlV, в которой подробно рассматриваются подходы.
dat <- tibble::rownames_to_column(mice::boys, "id")
imp <- mice::mice(dat, maxit = 2, m = 50, print = FALSE, seed = 1234)
#> Warning: Number of logged events: 1
imp_list <- mitml::mids2mitml.list(imp)
## Fit individual models
fit1 <- with(imp, glm(gen > levels(gen)[1] ~ hgt + hc + reg, family = binomial))
fit0 <- with(imp, glm(gen > levels(gen)[1] ~ hgt + hc, family = binomial))
## Calcuate LRT for each imputation
reg_lrt <- lapply(fit1$analyses, function(x)
drop1(x, "reg", test = "LRT")
)
## Distribution of p values from individual LRT
round(summary(sapply(reg_lrt, "[[", 2, 5)), 3)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.000 0.002 0.018 0.049 0.058 0.328
## Pool using Meng and Rubin (1992) method mice::pool.compare.
round(mice::pool.compare(fit1, fit0, method = 'likelihood')$pvalue, 3)
#> [1] 0.194
## Pool using miceadds::micombine.chisquare
miceadds::micombine.chisquare(sapply(reg_lrt, "[[", 2, 4), 4)
#> Combination of Chi Square Statistics for Multiply Imputed Data
#> Using 50 Imputed Data Sets
#> F(4, 342.72)=1.711 p=0.14702
## Pool using miceadds::MIwaldtest
qhat <- mitools::MIextract(fit1$analyses, fun = coef)
u <- mitools::MIextract(fit1$analyses, fun = vcov)
pars <- names(qhat[[1]])
des <- miceadds::create.designMatrices.waldtest( pars=pars, k=1)
Cdes <- des$Cdes
rdes <- des$rde
Cdes[1, grepl("reg", pars)] <- 1
summary(miceadds::MIwaldtest( qhat, u, Cdes, rdes ))
#> Loading required namespace: CDM
#> Wald Test
#> F df1 df2 pval
#> 1 0.0625 1 228.0297 0.8028
#>
#> Linear Hypotheses
#> est se t df Pr(>|t|) lo 95 hi 95 fmi
#> par1 0.4284 1.7132 0.2501 228.0297 0.8028 -2.9473 3.8041 0.4586
Создано в 2020-03-11 пакетом Представить (v0.3.0)