从 GLM 中排除特定记录?

Exclude Specific Records from GLM?

我建立了一个 GLM 模型,基本上是这样的:

glm(conversion ~ action, data = data, family = "binomial"(link="logit")

变量 "action" 的一些结果与模型无关(即 "Did not use")。然而,在我构建的其他模型中,这些记录仍然很重要。如果可能的话,我不想只为这个模型过滤我的数据框。

This question 告诉我如何排除列。有没有办法在公式中从 GLM 中排除特定记录?

您可以使用 R 中许多建模函数所具有的 subset 参数。例如:

glm(conversion ~ action, data = data, family = binomial(),
    subset = action != "Did not use")

将在删除 action == "Did not use" 所在的行后使模型适合数据集。如果您在 action 中还有其他关卡要掉落,您可以使用

glm(conversion ~ action, data = data, family = binomial(),
        subset = !action %in% c("Did not use", "Other"))

这将排除 action 等于任一提供选项的任何行。

您可能还想查看 model.framedrop.unused.levels 参数,该函数将作用于您提供给 glm() 的任何 subset 参数。

PS:请注意我是如何指定 family 的;你不需要做奇怪的引用组合。 binomialbinomial()"binomial" 之一应该没问题,因为 logit link 是二项式族的规范 link,因此它是 R 的默认值bionmial()家庭功能。如果要指定 link,请使用以下形式:binomial(link = "logit").