You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取模型估计中被剔除观测数据框的实现方案

模型估计中缺失观测的提取函数实现

背景说明

在进行模型估计时,估计函数会剔除因公式*左侧(LHS)或右侧(RHS)*所用变量存在缺失值的观测(即数据行)。

示例代码

dt <- mtcars
dt[1:5, "wt"] <- NA
mod <- lm(mpg ~ wt + cyl + disp, data = dt)
summary(mod)
print(paste0(nrow(dt), " observations in the dataframe"))
print(paste0(nobs(mod), " have been used in the estimator"))
print(paste0(nrow(dt) - nobs(mod), " have been dropped"))

此例中,lm会剔除前5行,因为这些行的RHS变量wt存在缺失值。上述代码返回:

"32 observations in the dataframe"
"27 have been used in the estimator"
"5 have been dropped"

函数编写需求

需要编写一个名为get_dropped_obs的函数,返回模型估计中未被使用的被剔除观测数据框,且该函数需尽可能适配多种估计函数(如lm、glm、glmmTMB等)。

待适配的估计函数示例

library(magrittr)

mods <- list()
mods %<>% rlist::list.append(lm(mpg ~ wt + cyl + disp, data = dt))
mods %<>% rlist::list.append(glm(am ~ wt, data = dt, family = binomial()))
mods %<>% rlist::list.append(glmmTMB::glmmTMB(mpg ~ wt + cyl + disp, data = dt))
mods %<>% rlist::list.append(glmmTMB::glmmTMB(am ~ wt + vs, data = dt, family = binomial()))
mods %<>% rlist::list.append(glmmTMB::glmmTMB(carb ~ wt + gear, data = dt, family = glmmTMB::nbinom2()))
mods %<>% rlist::list.append(pscl::zeroinfl(vs ~ wt + cyl + disp, data = dt))
mods %<>% rlist::list.append(pscl::hurdle(vs ~ wt + cyl + disp, data = dt))
mods %<>% rlist::list.append(fixest::feols(vs ~ wt | gear, data = dt))
mods %<>% rlist::list.append(fixest::feglm(am ~ wt + cyl | vs, data = dt, family = binomial()))
mods %<>% rlist::list.append(lme4::lmer(vs ~ wt + (1 | gear), data = dt))

测试要求

该函数需通过如下测试:

for (i in seq_along(mods)) {
    tryCatch(
        {
            df_dropped <- get_dropped_obs(mods[[i]], dt)
            cat(paste0(
                "Model ",
                i,
                ": ",
                nrow(df_dropped),
                " observations have been dropped\n"
            ))
        },
        error = function(e) {
            cat(paste0("Model ", i, ": ", e))
        }
    )
}

内容的提问来源于stack exchange,提问作者robertspierre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:33:09