从 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.frame
的 drop.unused.levels
参数,该函数将作用于您提供给 glm()
的任何 subset
参数。
PS:请注意我是如何指定 family
的;你不需要做奇怪的引用组合。 binomial
、binomial()
或 "binomial"
之一应该没问题,因为 logit link 是二项式族的规范 link,因此它是 R 的默认值bionmial()
家庭功能。如果要指定 link,请使用以下形式:binomial(link = "logit")
.
我建立了一个 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.frame
的 drop.unused.levels
参数,该函数将作用于您提供给 glm()
的任何 subset
参数。
PS:请注意我是如何指定 family
的;你不需要做奇怪的引用组合。 binomial
、binomial()
或 "binomial"
之一应该没问题,因为 logit link 是二项式族的规范 link,因此它是 R 的默认值bionmial()
家庭功能。如果要指定 link,请使用以下形式:binomial(link = "logit")
.