鼠标的pool.compare给出“错误:类调用对象没有任何扫视方法".用于lmerTest模型 [英] mice's pool.compare gives "Error: No glance method for objects of class call" for lmerTest models

查看:56
本文介绍了鼠标的pool.compare给出“错误:类调用对象没有任何扫视方法".用于lmerTest模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试比较使用多个插补构建的两个模型.当我尝试比较模型时,鼠标的pool.compare()给出以下错误:错误:类调用的对象没有扫视方法或错误:'fit1'和'fit0'的插补数不相等,即使我正在使用相同的估算数据集.这是一个可重现的示例:

I'm trying to compare two models built using multiple imputations. When I try to compare the models, mice's pool.compare() gives the error that Error: No glance method for objects of class call or Error: unequal number of imputations for 'fit1' and 'fit0', even though I'm using the same imputed dataset. Here is a reproducible example:

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

imp <- mice(nhanes, maxit = 2, m = 4)

summary(m0 <- pool(with(imp, lmerTest::lmer(bmi ~ 1 + (1 | chl)))))

summary(m1 <- pool(with(imp, lmerTest::lmer(bmi ~ 1 + hyp + (1 | chl)))))

pool.compare(m0, m1)

Error: No glance method for objects of class call

推荐答案

在进行 pool 处理之前,您需要比较对象.而顺序很重要, m1 > m0 .(注意:我在这里使用了 lme4 .)

You need to compare the objects before pooling. And the order matters, m1 > m0. (Note: I used lme4 here.)

library(mice)
library(miceadds)

set.seed(42)
imp <- mice(nhanes, maxit = 2, m = 4)

summary(pool(m0 <- with(imp, lme4::lmer(bmi ~ 1 + (1 | chl)))))
# boundary (singular) fit: see ?isSingular
# estimate std.error statistic       df      p.value
# (Intercept) 26.60791 0.9722573  27.36715 18.24326 4.440892e-16
summary(pool(m1 <- with(imp, lme4::lmer(bmi ~ 1 + hyp + (1 | chl)))))
# boundary (singular) fit: see ?isSingular
# estimate std.error  statistic       df      p.value
# (Intercept) 27.2308286  3.759095  7.2439857 5.181367 0.0006723643
# hyp         -0.5310514  2.746281 -0.1933711 4.928222 0.8543848658

pool.compare(m1, m0)
# $call
# pool.compare(fit1 = m1, fit0 = m0)
# 
# $call11
# with.mids(data = imp, expr = lme4::lmer(bmi ~ 1 + hyp + (1 | 
#                                                            chl)))
# 
# $call12
# mice(data = nhanes, m = 4, maxit = 2)
# 
# $call01
# with.mids(data = imp, expr = lme4::lmer(bmi ~ 1 + (1 | chl)))
# 
# $call02
# mice(data = nhanes, m = 4, maxit = 2)
# 
# $method
# [1] "wald"
# 
# $nmis
# age bmi hyp chl 
# 0   9   8  10 
# 
# $m
# [1] 4
# 
# $qbar1
# (Intercept)         hyp 
# 27.2308286  -0.5310514 
# 
# $qbar0
# (Intercept) 
# 26.60791 
# 
# $ubar1
# [1] 6.916910 3.560812
# 
# $ubar0
# [1] 0.8786098
# 
# $deviances
# NULL
# 
# $Dm
# [,1]
# [1,] 0.03739239
# 
# $rm
# [1] 1.118073
# 
# $df1
# [1] 1
# 
# $df2
# [1] 10.76621
# 
# $pvalue
# [,1]
# [1,] 0.850268

这篇关于鼠标的pool.compare给出“错误:类调用对象没有任何扫视方法".用于lmerTest模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆