如何在 GLM 中使用主成分作为预测变量?

机器算法验证 主成分分析 广义线性模型 特征选择
2022-03-21 07:09:58

假设 PCA 用于 GLM 的变量选择,我将如何在广义线性模型 (GLM) 中使用主成分分析 (PCA) 的输出?

澄清:我想使用 PCA 来避免在 GLM 中使用相关变量。但是,PCA 给了我类似的输出.2*variable1+.5*variable3。我习惯于将变量 1 和 3 放入 GLM。因此,由于 PCA 给了我一个线性组合,我是否应该将其作为新变量放入 GLM 中(以考虑变量 1 和 3 响应的系统变化)?

3个回答

在线性模型中使用主成分的一个子集而不是原始变量作为解释变量是可能的,有时也是适当的。然后需要对得到的系数进行反向变换以应用于原始变量。结果是有偏差的,但可能优于更直接的技术。

PCA 提供一组主成分,它们是原始变量的线性组合。如果你有个原始变量,你最后仍然有个主成分,但是它们已经在维空间中旋转,因此它们彼此正交(即不相关)(这很容易用两个变量来思考)。 kkk

在线性模型中使用 PCA 的诀窍是您决定消除一定数量的主成分。该决定基于与用于构建模型的“通常”的黑色艺术变量选择过程类似的标准。

该方法用于处理多重共线性。它在线性回归中相当常见,具有从线性预测变量到响应的正态响应和恒等链接函数;但在广义线性模型中不太常见。网上至少有一篇关于这些问题的文章。

我不知道有任何用户友好的软件实现。做 PCA 并使用得到的主成分作为广义线性模型中的解释变量是相当简单的;然后翻译回原始比例。然而,估计你的估计者的分布(方差、偏差和形状)会很棘手;广义线性模型的标准输出将是错误的,因为它假设您正在处理原始观察结果。您可以围绕整个过程(PCA 和 glm 结合)构建引导程序,这在 R 或 SAS 中都是可行的。

我的回答不是针对原始问题,而是对您的方法的评论。

不建议先应用 PCA,然后再运行广义线性模型。原因是 PCA 将通过“变量方差”而不是“变量如何与预测目标相关”来选择变量重要性。换句话说,“变量选择”可能完全具有误导性,即选择不重要的变量。

这里有一个例子:左未来节目x1是对两类点进行分类的重要内容。但 PCA 显示相反。

在此处输入图像描述

详细信息可以在我的回答中找到。如何在 PCA 和逻辑回归之间做出决定?

我建议你看看这篇论文。它很好地展示了高斯族分布和类似 PCA 的学习器系统之间的关系。

http://papers.nips.cc/paper/2078-a-generalization-of-principal-components-analysis-to-the-exponential-family.pdf

编辑

简介:虽然许多人从几何解释中想到 PCA,即在数据集中找到对方差最负责的正交向量,然后提供参数以正确地将空间重新定向到这些向量,但本文使用指数概率函数来构建 PCA广义线性模型的上下文,并为指数族中的其他概率函数提供更强大的 PCA 扩展。此外,他们使用布雷格曼散度构建了一个类似于 PCA 的学习器算法。这很容易理解,对你来说,它似乎可以帮助你理解 PCA 和广义线性模型之间的联系。

引文:

柯林斯,迈克尔等人。“主成分分析对指数族的推广”。神经信息处理系统