是否可以将主成分分析应用于包含连续变量和分类变量的数据集?


147

我有一个既包含连续数据又包含分类数据的数据集。我正在使用PCA进行分析,想知道是否可以将分类变量作为分析的一部分。我的理解是PCA只能应用于连续变量。那是对的吗?如果不能将其用于分类数据,则可以使用哪些替代方法进行分析?



Answers:


87

尽管将PCA应用于二进制数据所产生的结果可与通过多对应分析获得的结果相媲美(因子得分和特征值呈线性相关),但还有更合适的技术可用于处理混合数据类型,即对混合数据中的混合数据进行多因子分析。所述FactoMineR ř包(AFDM())。如果您的变量可以被视为描述性属性的结构化子集,则也可以使用多因素分析MFA())。

分类变量的挑战是找到一种合适的方法来表示变量类别和阶乘空间中的个体之间的距离。为了克服这个问题,您可以寻找具有最佳缩放比例的每个变量的非线性转换(无论是标称,有序,多项式还是数字)。这在R:Package homal中的最佳缩放的Gifi方法中已得到很好的解释,并且在相应的R package homal中提供了一种实现。


2
chl,感谢您指向FADM的指针。我当时在想:将FADM应用于数据集(obj <-FADM(x))之后,我可以通过obj $ ind $ coord 轻松访问转换后的数据集。但是,如果我想将相同的转换应用于另一个数据集,该怎么做?(例如,这是必要的,如果我有一个训练集,然后从该训练集中找到“主要组成部分”,然后想通过这些“主要组成部分”查看测试集)。文档对此并不清楚,该函数所基于的论文是法文。
卡桑德拉2014年

关于:Although a PCA applied on binary data would yield results comparable to those obtained from a Multiple Correspondence Analysis,我们是否不能将名义分类变量(假设具有N个基数)转换为(N-1)个伪二进制文件的集合,然后对该数据执行PCA?(我知道还有更多合适的技术)
Zhubarb 2014年

31

S. Kolenikov(@StasK)和G. Angeles 对Google搜索“离散变量的pca”进行了很好的概述。要补充到chl答案,PC分析实际上是对协方差矩阵的特征向量的分析。因此,问题在于如何计算“正确的”协方差矩阵。一种方法是使用 多色相关


(+1)感谢您的链接。也可以考虑使用异构相关矩阵(例如hetcor(),参见polycor软件包)。如果VC矩阵是SDP,则它应该完成工作-主要是出于因子分析的精神。标称变量可能是伪编码。
chl 2010年

@StasK,荣誉:)似乎不仅我觉得这个演讲很有用,否则它不会在gooogle搜索中排在首位。这个问题有时会弹出,所以也许您想为我们的社区博客撰写有关此问题的博客文章?
mpiktas 2011年

@StasK,我已编辑帖子以提及概述的作者。我最初的目的是证明在Google上进行搜索可以提供很好的答案,因此这里没有明确的要求。但是,鉴于互联网的动荡,这不是没有引用作者的借口。
mpiktas 2011年

1
@mpiktas,谢谢。有一篇针对该工作的经济学家的真实文章:dx.doi.org/10.1111/j.1475-4991.2008.00309.x,尽管编辑要求我们切掉太多内容,以至于我建议阅读以下工作文件信息,并引用已发布的内容。
StasK,2011年

9

我建议您看一下Linting&Kooij,2012年“ 使用CATPCA进行非线性主成分分析:教程 ”,《人格评估》94(1)。

抽象

本文旨在作为非线性主成分分析(NLPCA)的教程,系统地指导读者完成通过Rorschach Inkblot测试分析人格评估的实际数据的过程。NLPCA是线性PCA的一种更灵活的替代方案,可以处理具有不同类型的测量级别的可能与非线性相关的变量的分析。该方法特别适合于分析可能与数字数据结合的名义(定性)和有序(例如Likert型)数据。分析中使用了SPSS中“类别”模块中的程序CATPCA,但是该方法描述可以轻松地推广到其他软件包。


4

我尚未获得评论某人的帖子的特权,因此我将我的评论添加为单独的答案,因此请耐心等待。

继续@Martin F的评论,最近我遇到了非线性PCA。当数据变得稀疏时,当连续变量接近序数变量的分布时,我正在研究非线性PCA(可能是另一种选择)(遗传学中很多次该变量的次要等位基因频率越来越低而您又离开了计数数量很少,您不能真正证明连续变量的分布是正确的,因此必须通过使它成为有序变量或分类变量来放松分布假设。)非线性PCA可以处理这两种情况,但是在与遗传学系的统计学大师讨论,共识是非线性PCA的使用不多,并且这些PCA的行为尚未得到广泛测试(可能是它们仅指遗传学领域,因此请以盐为准)。确实,这是一个有趣的选择。我希望我在讨论中添加了2美分(很重要)。


欢迎您的回答,Mandar。您是通过CATPCA方法还是另一种非线性PCA(然后是什么方法)来指代非线性PCA。还要注意,对于二元变量,CATPAA是无用的或琐碎的,因为除……之外,无法量化二分法的规模!
ttnphns

谢谢你@ttnphns。对于二进制变量,我同意您的观点,对于二进制变量,任何假设都无关紧要。否则,我实际上是在参考“非线性PCA简介” [link](openaccess.leidenuniv.nl/bitstream/handle/1887/12386/…)中的一章。它主要指CATPCA和SAS的PRINQUAL软件包。
Mandar 2015年

2

最近有一种解决此类问题的方法:广义低秩模型

使用该技术的论文之一甚至被称为“ 数据帧上的PCA”


PCA可以这样构成:

nmM

nkX^kmY^k

X^,Y^argminX,YMXYF2

GLRM中的“通用”代表更改并添加一个正则项。F2


这听起来更像是重塑,而不是新主意。搜索gifi!
kjetil b halvorsen

您说的不对,GLRM似乎是一种概括(实际上,我链接的论文引用了gifi软件包)。
雅各布·巴特祖克

1

PCAmixdata#Rstats 软件包

对定量和定性变量的混合物进行主成分分析,正交旋转和多因素分析。

小插图的示例显示了连续输出和分类输出的结果

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.