我对 R 比较陌生,并且正在使用一个非常大的数据集,其中包含数字分数(例如,家庭收入)和文本值(即种族)。我计划使用 PCA 来分析这个数据集,但它只适用于数值数据。有什么好的选择吗?
如何在 R 中处理 PCA 的文本和数字?
机器算法验证
r
主成分分析
分类数据
2022-04-02 06:56:32
2个回答
查看包中的dudi.mix()功能ade4:混合定量变量和因素的表格排序。例子:
library(ade4)
scatter.dudi(dudi.mix(iris,scannf=FALSE))
还有其他几个包可以进行混合对应分析。
您也可以继续对分类变量进行完全虚拟编码。这在理论上并不合理,但它确实完成了工作。
制作变量
使您的文本值使用名义变量factor或使用序数变量,ordered例如,如果您有一个名为mydatathen的数据框
mydata <- transform(race=factor(race))
将文本竞赛变量转换为名义变量。详情请参阅?transform。
这样,当您适合任何模型时,R 将向您显示标签,但会在后台为您构建适当的虚拟变量。您可以使用 更改默认对比编码中的基线类别relevel。
如果您曾经read.csv获取过数据,那么这可能已经在您没有请求的情况下发生了。您可以使用检查每个变量的类
lapply(mydata, class)
作为因素的事物列出了它们的水平。事实上,与 R 的一半战斗是说服不要进行这些“方便”的变量转换。
尺度变量?
如果您正在考虑 PCA,那么我想您正在尝试以某种方式扩展这些数据。如果是这种情况,您可以使用可以处理混合变量类型的因子分析方法。一种这样的方法是MCMCmixfactanal在MCMCpack R 包中。
另一方面,您可能会问自己,您将从包含如此多不同内容的大型模型中获得什么空间。在拟合常规多元模型的背景下,也许更明智的计划是将名义变量保留为条件/分层的事物。
如果您想详细说明您的 PCA 计划的目的,我们或许可以提供更多替代方案。您试图通过扩展从数据中获取哪些信息?
其它你可能感兴趣的问题