如何获取多重插补数据混合模型的R²、F统计量与p值?
多重插补模型获取F值的方法
对于用mice包完成多重插补后拟合的线性模型,要获取模型整体的F值,有两种可行方法:
方法一:手动计算(无需额外包)
先通过pool()得到合并后的模型结果,再结合样本量、预测变量数推导F值:
# 先合并插补模型 pooled_model <- pool(model1) # 获取回归自由度(预测变量个数,不含截距) df_reg <- length(pooled_model$pooled$estimate) - 1 # 获取原始样本量 n <- nrow(imp$data) # 计算残差均方(MSE)和回归均方(MSR) mse <- pooled_model$pooled$sigma^2 msr <- sum(pooled_model$pooled$estimate[-1] * coef(pooled_model)[-1]) / df_reg # 计算F值 f_value <- msr / mse
方法二:借助miceadds包快速获取
miceadds包的pool.compare()函数可以直接对比全模型和空模型,输出整体F检验结果:
# 先安装并加载miceadds包(首次使用需安装) # install.packages("miceadds") library(miceadds) # 拟合仅含截距的空模型 null_model <- with(imp, lm(outcome ~ 1)) # 对比全模型与空模型,获取检验统计量 model_compare <- pool.compare(model1, null_model = null_model) # 提取F值 f_value <- model_compare$test$F
内容的提问来源于stack exchange,提问作者lanmi
相关产品推荐
相关产品推荐

