比较拟合模型时,如何使用 (pool.compare) 函数解决 "Deprecated" 警告?

How do I resolve a "Deprecated" warning using the (pool.compare) function when comparing fitted models?

我有两个模型,我正在 运行 跨越估算数据集,以生成合并估计。我的理解是,因为这两个模型都是 运行 通过数百个估算的数据框,所以我必须将所有回归模型估计汇总或基本上“平均”为一个“总体”估计。以下是我执行的步骤:

#1 IMPUTE MASTER DATASET
     imputed_data <- mice(master, m=20, maxit=50, seed=5798713)

#2 RUN LINEAR MODEL 
     model.linear <- with(imputed_data, lm(outcome~exposure+age+gender+weight))
     summary(pool(model.linear))

#3 RUN NON-LINEAR RESTRICTED CUBIC SPLINE (3-KNOT) MODEL
     model.rcs <- with(imputed_data, lm(outcome~rcs(exposure,3)+age+gender+weight))
     summary(pool(model.rcs))

#4 COMPARE BOTH MODELS USING POOL.COMPARE FUNCTION
     pool.compare(model.rcs, model.linear)

一旦我使用“summary(pool(..)”函数,线性模型和 RCS 模型都会产生“合并”估计、95% CI 和 p 值。但是,问题是当我 运行 “pool.compare” 函数时,我收到一条错误消息:

Error: Model 'fit0' not contained in 'fit1'
In addition: Warning message:
'pool.compare' is deprecated.
Use 'D1' instead.
See help("Deprecated") 

我很困惑为什么当“曝光”、“结果”和列出的所有协变量在线性模型和 RCS 模型之间相同时,模型说 fit0 不包含在 fit1 中。有没有我在这里遗漏的选项?

任何 help/guidance 将不胜感激。

P.S。不幸的是,考虑到估算的数据集有多大,我无法提供样本数据。如果有任何困惑,请告诉我如何更好地改进我的问题。

如错误所述,pool.compare 已弃用。而是使用 D1

library(mice)
library(rms)
D1(model.rcs, model.linear)
#    test statistic df1      df2 dfcom    p.value      riv
# 1 ~~ 2  6.248565   2 8.635754    20 0.02098072 0.449098

在某些例子中,只有警告,但在其他例子中,它同时给出错误和警告

pool.compare(model.rcs, model.linear)
#Error: Model 'fit0' not contained in 'fit1'
#In addition: Warning message:
#  'pool.compare' is deprecated.
#Use 'D1' instead.
#See help("Deprecated") 

错误可能是因为模型本身,即 rcs 模型,而下面我们比较的是两个线性模型

imp <- mice(nhanes)
model.linear <- with(imp, lm(age ~ bmi + hyp + chl))
model.rcs <- with(imp, lm(age ~ rcs(bmi, 3) + hyp + chl))

可重现的例子

imp <- mice(nhanes2, print=FALSE, m=50, seed=00219)
fit0 <- with(data=imp,expr=lm(bmi~age+hyp))
fit1 <- with(data=imp,expr=lm(bmi~age+hyp+chl))
stat <- pool.compare(fit1, fit0)
#Warning message:
#'pool.compare' is deprecated.
#Use 'D1' instead.
#See help("Deprecated") 

stat <- D1(fit1, fit0)
stat
#   test statistic df1     df2 dfcom    p.value       riv
# 1 ~~ 2  7.606026   1 16.2182    20 0.01387548 0.3281893