我想知道是否可以在R中执行具有混合数据变量的数据聚类。换句话说,我有一个同时包含数值和分类变量的数据集,我正在寻找对其进行聚类的最佳方法。在SPSS中,我将使用两步式群集。我想知道是否可以在R中找到类似的技术。有人告诉我有关poLCA软件包的信息,但我不确定...
我想知道是否可以在R中执行具有混合数据变量的数据聚类。换句话说,我有一个同时包含数值和分类变量的数据集,我正在寻找对其进行聚类的最佳方法。在SPSS中,我将使用两步式群集。我想知道是否可以在R中找到类似的技术。有人告诉我有关poLCA软件包的信息,但我不确定...
Answers:
这可能会迟到,但请尝试使用klaR(http://cran.r-project.org/web/packages/klaR/index.html)
install.packages("klar")
它使用基于简单匹配作为距离函数的非分层k模式算法,因此两个数据点和的变量m之间的距离δ 由下式给出:
程序包存在一个缺陷,即如果两个数据点到群集中心的距离相同,则选择数据中的第一个而不是随机点,但是您可以轻松地修改代码中的位。
为了适应混合变量聚类,您将需要进入代码并修改距离函数,以识别数字和非数字模式以及变量。
您可以使用多重对应关系分析从分类变量创建连续维,然后在第二步中将它们与数字变量一起使用。
好吧,你当然可以。通过使分类变量成为人工数值。或者使用基于距离矩阵的聚类(fpc可以做到这一点)。您首先要回答的问题是:它实际上有意义吗?
您可以使用Gower的通用相似系数(请参见Sneath&Sokal 1973,第135-136页),对于两个OTU和, 对于所有字符。
权重为1或0,具体取决于比较是否有效(缺少数据,两个OTU中都没有二进制字符)。已经发布了更复杂的称重方案。
计算为
二进制变量:1表示一致性,0表示不一致(如果设置为0表示一致则等于Jaccard系数)
多状态字符(标称或有序):1表示相等,0表示其他(等于简单匹配系数)
基本字符:其中是字符的范围(在总体中还是在这个样本)。 ř我我
关于是它不仅可以处理所有类型的数据,而且对于丢失数据也很健壮。这也导致了正半确定相似矩阵,即OTU由Euklidian空间中的点表示(至少如果没有太多数据,则丢失)。
OTU之间的距离可以用
k型聚类可能更适合此处。它结合了k模式和k均值,并且能够聚类混合的数字/分类数据。对于R,使用包'clustMixType'。
https://cran.r-project.org/web/packages/clustMixType/clustMixType.pdf