gpt4 book ai didi

r - 使用 R 进行多重对应分析

转载 作者:行者123 更新时间:2023-12-04 12:16:06 26 4
gpt4 key购买 nike

你好,
我的问题是技术性的(使用 R)和统计性的。我正在从事一个图像处理研究项目,我需要执行 MCA。我之前发布了一个关于如何使用 Java 执行此操作的问题 Multivariate correspondence analysis (MCA) with JAVA ,感谢答案,我决定使用 R 来做。所以这里是:
我有一个从提取的特征创建的列联表,其形式为:

            var1_1 var1_2 var1_3 var2_1 var2_2 var2_3 ... var18_1 var18_2 var18_3

个人1
个人2
个人3
个人4
...
个体

在每个单元格中,我有一个 double 值,表示 0.0 和 1.0 之间的归一化频率计数。我的最终目标是能够使用 MCA 在不同的轴组合上绘制每个人。

我做了什么 :

  • used fdata <- read.table("filename.dat") to read the matrix file exported by Java
  • used mca_obj <- dudi.acm(fdata,scann=FALSE, nf=3) That gives an error saying all values should be a factor (Could someone clarify what does it mean a factor)
  • used burt_data=acm.burt(fdata, fdata) to use the burt method since I have many variables
  • that gave me a very big table I couldn't understand (I experimented with removing the row names)


所以总结一下:
我知道我非常接近找到对我的数据执行 MCA 的正确方法我只需要一些关于如何正确执行的提示。任何人都可以请帮忙!

谢谢

最佳答案

编辑 :

如果我理解正确,您的数据不适合任何 mca 函数。您需要原始数据,而不是任何类型的标准化频率计数。 MCA 适用于分类变量,而不适用于数值。您需要的是以下意义上的数据:

              color   beak ...
individual1 red big
individual2 red small
individual3 blue medium
individual4 green small
...

如果归一化频率确实是您的数据,则您拥有数值数据,并且无法对其执行 MCA。

A factor是R中的向量类型,可以看作是分类类型或枚举类型。如果您拥有上述格式的数据,并且您仍然拥有字符变量而不是因子变量,则可以将 fdata 转换为
fdata2 <- as.data.frame(lapply(fdata,as.factor))

这个你应该可以在 dudi.acm() 中使用功能。

关于 Burt table :当然,那个 table 很大。它是矩阵乘法 X'X,其中 X 是您的因子的指标矩阵。所以你得到一个表(实际上是一个数据框),其中行名和列名形成为 nameOfFactor.nameOfLevel .因此,如果每 5 个级别有 4 个因子,则您已经拥有一个 20x20 的矩阵。

您可以使用这些知识来剖析 Burt 表并获取有关某些感兴趣因素的信息。按照帮助文件中的示例,您可以执行以下操作:
require(ade4)
data(banque)
banque.acm <- dudi.acm(banque, scann = FALSE, nf = 3)
bb <- acm.burt(banque, banque)

idrow <- grepl("csp.",rownames(bb),fixed=T)
idcol <- grepl("duree.",names(bb),fixed=T)

> bb[idrow,idcol]
duree.dm2 duree.d24 duree.d48 duree.d812 duree.dp12
csp.agric 3 6 6 3 11
csp.artis 7 3 15 13 10
csp.cadsu 13 19 32 9 30
csp.inter 12 14 19 25 32
csp.emplo 13 19 38 28 53
csp.ouvri 12 26 46 43 56
csp.retra 4 8 9 7 24
csp.inact 15 14 22 15 19
csp.etudi 12 23 20 1 1

它为您提供数据框中 csp 和 duree 因子的 Burt 表。

关于r - 使用 R 进行多重对应分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5869853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com