为简约二元逻辑回归模型选择最佳变量子集

机器算法验证 r 特征选择
2022-04-16 22:38:04

除了PROC VARCLUSrandomForestglmnet和评估潜在预测变量之间的多重共线性(不考虑感兴趣的结果)之外,我正在寻找其他变量选择方法来代替使用逐步方法来构建更简约的二元逻辑回归模型(包含 8 到 12 个变量,用于从广泛的潜在预测变量(500 多个变量,200k+ 条记录)中预测结果,例如贷款支付/违约或当前/逾期支付历史)。

下面我包含了一个 R 脚本,使用FSelector来选择 8 个最高“排名”的变量:

library(FSelector)
fit <- information.gain(outcome ~ ., dataset)
fit2 <- cutoff.k(fit,8)
reducedmodel <- as.simple.formula(fit2,"outcome")
print(reducedmodel)

关于这个脚本和FSelector一般算法,我有两个问题:

  1. 上述脚本中的标准是Kullback-Leibler 散度information.gain的同义词吗?如果是这样,有人可以用比维基百科更通俗的术语来解释这一点,因为我对这个统计领域相对较新,并且想从这个概念的正确想法开始,因为我将来可能会大量使用这种方法?

  2. 这是一种有效的方法吗,如果存在有效方法,为二元逻辑回归模型选择所需数量的变量(例如,选择 8 个最高“排名”的变量用于简约模型)?如果没有,你能提供一种替代方法吗?

任何有关此主题和/或这些问题的见解或参考将不胜感激!

3个回答

没有惩罚的变量选择是无效的。

我相信我可以回答的问题很少出现。

这不在 R 中(至少我不相信它有插件)。它也不能回答您的确切问题,尽管我相信可能会有所帮助。

我正在寻找其他变量选择方法来代替使用逐步方法来构建更简洁的二元逻辑回归模型(包含 8 到 12 个变量来预测结果,例如贷款支付/违约或当前/逾期付款历史)。预测变量(500+ 个变量,200k+ 条记录)。

也许相关成分分析会回答您的问题。

见这里:http ://www.xlstat.com/en/products-solutions/ccr.html

使用 CCR/降压算法 选择预测变量 在降压选项的第 1 步中,使用 K* 分量估计包含所有预测变量的模型(其中 K* 由用户指定或由程序确定,如果自动选项是激活),并计算相关的 CV 统计数据。第二步,剔除标准化系数绝对值最小的预测变量后重新估计模型,再次计算CV统计量。请注意,步骤 1 和 2 都是在通过消除其中一个折叠形成的每个子样本中执行的。这个过程一直持续到用户指定的最小预测变量数保留在模型中(默认情况下,Pmin = 1)。报告模型中包含的预测变量数量 P* 是具有最佳 CV 统计量的模型。

这是 2 年前在巴黎关于 PLS 发展的研讨会上提出的摘要。

杰伊·马吉德森。“相关分量回归 PLS 回归的稀疏替​​代方案。” http://statisticalinnovations.com/technicalsupport/ParisWorkshop.pdf

听起来您部分尝试完成的是在本教程中使用此算法完成的:

使用具有二分 Y 和许多相关预测变量的相关分量回归。http://statisticalinnovations.com/products/xlstattutorials/XLCCRtutorial2.pdf

当人们通过参考其他作品而不是实际回答问题来回答问题时,我也讨厌它,但是,如果我正确理解所有内容,我只是觉得这是最好的答案。希望能帮助到你。

要回答以上两个问题:

1) 通俗地说,使用FSelector包时在 R 中显示的 Kullback-Leibler 散度是使用给定的潜在预测变量可以获得的相对信息量。

2) 为二元逻辑回归模型选择所需数量的变量(例如,选择 8 个最高“排名”变量用于简约模型)不是一种有效的方法,因为不存在这种方法。最重要的是,它没有考虑预测变量之间的共线性,因为它只是按信息增益对变量进行排序。就给定预测变量的分类强度的单变量测量而言,信息增益与c统计量或信息值非常相似。因此,对变量进行排序很有用,但还必须应用其他方法来进一步构建简约模型(例如 PCA 和 Lasso 或 Ridge 回归)。

我希望这可以帮助别人!