何时删除无关紧要的变量?

机器算法验证 r 回归 相关性
2022-02-03 00:17:59

我正在研究逻辑回归模型。我检查了基于 5 个独立变量的模型摘要,其中一个不显着,P 值为 0.74。我想知道我们是直接删除变量还是有其他方法来检查它的重要性?

我的一位前辈建议对无关紧要的变量进行对数变换,然后寻找相关性。这将计入检查它的重要性。

model <- glm(Buy ~ a_score + b_score+ c_score+lb+p, data = history, family = binomial)

除了显示不显着的 a_score 之外,所有变量都具有 2 或 3 颗星的显着性。

3个回答

首先让我问这个问题:模型的目标是什么?如果您只对预测客户是否会购买感兴趣,那么统计假设检验真的不是您主要关心的问题。相反,您应该通过对看不见的数据进行验证/测试程序从外部验证您的模型。

相反,如果您有兴趣检查哪些因素会影响客户购买的概率,则无需删除无法拒绝空值的变量(尤其是以逐步方式)。据推测,您在模型中包含了一个变量,因为您认为(根据过去的经验或专家意见)它在客户决定是否购买时发挥了重要作用。该变量未能拒绝空值并不会使您的模型成为一个坏模型,它只是意味着您的样本没有检测到该变量的影响。这完全没问题。

查看 和 的step()帮助drop1()页面add1()这些将帮助您添加/删除基于 AIC 的变量。然而,所有这些方法在它们的路径依赖性方面都存在一些缺陷。更好的方法是使用 penalized 或 glmnet 包中的函数执行套索回归。

自变量之间的相关性是什么?这对于纯粹的预测不太重要,但如果你想获得一些推论信息,那么自变量相当不相关是很重要的。通常,当您在业务环境中使用逻辑回归时,有关使用的变量的推断信息以及良好的预测都是利益相关者正在寻找的。

此外,删除变量的另一个好理由是模型简约。这样做的一些原因是出于内部审查目的、法律法规和易于实施的目的。这些导致非常需要找到能够提供良好业务信息和良好预测的最小变量集。例如,如果您正在开发一个信用模型,每个变量都需要接受法律审查,每个变量都必须可用并且在调用贷款评分时立即返回值,并且利益相关者(通常不精通模型构建)倾向于不想查看加载了变量的复杂模型。

尝试随机森林以了解变量重要性以及检查有无所有变量的预测能力也可能会有所帮助。

最后,您应该有充分的理由来转换变量。对变量进行每次转换,直到找到一个可以为您提供所需结果的转换,这是获得在新数据上表现不佳的过拟合模型的好方法。