使用miceadds计算合并线性回归F统计量p值时遇对象未找到错误
问题原因及修正方法
错误核心:代码里调用的
fit对象根本没定义,你得先确认自己存储多重插补后模型的对象到底叫什么名字。修正步骤:
先回溯你拟合插补模型的代码,比如用mice包的话,通常是这样的流程:
# 生成插补数据集 imp <- mice(your_data, m = 5) # 对每个插补数据集拟合线性模型,这里的对象名是fit(你可能用了别的名字) fit <- with(imp, lm(y ~ x1 + x2 + x3))如果你的模型对象不是叫
fit,而是mi_model之类的,那代码里的fit要全部换成你实际的对象名。提取残差自由度时,也可以直接用列表索引替代
el()函数,更直观:# 取第一个插补模型的残差自由度(所有插补模型的df.residual通常一致) df_res <- fit$analyses[[1]]$df.residual完整修正后的p值计算代码示例:
df_mod <- aov_fit$anova.table$df1[-nrow(aov_fit$anova.table)] df_res <- fit$analyses[[1]]$df.residual # 计算p值 pf(q = fval, df1 = sum(df_mod), df2 = df_res, lower.tail = FALSE)
额外提醒:如果你用的是
miceadds::lm.mice()拟合模型,存储模型的对象结构类似,同样要替换成你实际的对象名。
内容的提问来源于stack exchange,提问作者Halina
相关产品推荐
相关产品推荐

