PCA 是否适用于布尔(二进制)数据类型?

机器算法验证 主成分分析 数据可视化 二进制数据 降维 对应分析
2022-02-09 11:36:14

我想降低高阶系统的维数,并在最好的二维或一维场上捕获大部分协方差。我知道这可以通过主成分分析来完成,并且我在许多场景中都使用过 PCA。但是,我从来没有将它与布尔数据类型一起使用,我想知道用这个集合做 PCA 是否有意义。例如,假设我有定性或描述性指标,如果该指标对该维度有效,则分配“1”,否则分配“0”(二进制数据)。例如,假设您正在尝试比较白雪公主中的七个小矮人。我们有:

Doc、Dopey、Bashful、Grumpy、Sneezy、Sleepy 和 Happy,你想根据质量来排列它们,并且这样做是:

(Lactose IntolerantA Honor RollAthleticWealthyDoc1011Dopey0000Bashful1011Grumpy1111Sneezy0110Sleepy1000Happy1100)

例如,Bashful 是乳糖不耐症,不在 A 荣誉榜上。这是一个纯粹的假设矩阵,我的真实矩阵将有更多的描述性列。我的问题是,在这个矩阵上做 PCA 作为寻找个体之间相似性的手段是否仍然合适?

4个回答

您还可以使用多重对应分析 (MCA),它是主成分分析的扩展,当要分析的变量是分类变量而不是定量变量时(这里的二元变量就是这种情况)。例如,参见Husson 等人。(2010)Abdi 和 Valentin (2007)FactoMineR是执行 MCA(和 PC 上的层次聚类)的优秀 R 包

我想向您推荐一种相对较新的技术,用于从分类变量数据(包括二进制数据)中自动提取结构。该方法被南加州大学的 Greg van Steeg 称为 CorEx。这个想法是使用基于熵度量的总相关的概念。它之所以吸引人,是因为它简单且无需调整大量超参数。

关于分层表示的论文(最新的,建立在以前的措施之上)。 http://arxiv.org/pdf/1410.7404.pdf

如果您认为 PCA 是一种探索性技术,可以为您提供一种可视化变量之间关系的方法(在我看来,这是考虑它的唯一方法),那么是的,没有理由不能输入二进制变量。例如,这是您的数据的双图

在此处输入图像描述

它似乎相当有用。例如,您可以看到 Doc 和 Bashful 非常相似;人力资源与其他三个变量不同;Sleepy 和 Sneezy 非常不同,等等。

虽然 PCA 经常用于二进制数据,但有人认为 PCA 假设不适用于二进制或计数数据(参见Collins 2002的解释),并且存在概括:该策略在精神上类似于广义线性模型的发展对属于指数族的数据执行回归分析。

可以在包中找到 R 中不同方法的实现,并在此页面logisticPCA中找到教程

参考。Collins, M., Dasgupta, S., & Schapire, RE (2002)。将主成分分析推广到指数族。在神经信息处理系统的进展中(第 617-624 页)。