2011-05-03 368 views
2

HI, 我的問題是技術(使用R)和統計。我正在研究圖像處理研究項目,我需要執行MCA。我以前發佈的有關如何使用Java Multivariate correspondence analysis (MCA) with JAVA做的問題,這要歸功於我決定做用R.它的答案,所以這裏是: 我從提取的特徵創造了一個應急表,該表的形式爲:與R的多重對應分析

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

individual1
individual2
individual3
individual4
...
individualn


在每個單元格中,我有一個double值,表示0.0到1.0之間的歸一化頻率計數。我的最終目標是能夠使用MCA將每個人繪製在不同的軸組合上。

我所做的:用FDATA <

  • - 函數read.table( 「filename.dat」)讀取被Java
  • 使用mca_obj <導出的矩陣文件 - dudi.acm( FDATA,scann = FALSE,NF = 3) 這給了一個錯誤,說所有的值應該是一個因素(有人能澄清這是什麼意思倍)
  • 使用burt_data = acm.burt(FDATA,FDATA)至ü瑟伯特的方法,因爲我有很多變數
  • 這給了我非常大的表我無法理解(我刪除的行名試行)

因此得出結論: 我知道我我非常接近找到在我的數據上執行MCA的正確方法,我只需要一些關於如何正確執行它的提示。任何人都可以請幫忙!

感謝名單

回答

2

這是很難提供真正具體的反饋你的情況,因爲它是很難猜測你的數據是什麼樣子。

這裏是我建議你做:

  1. 使用功能mca在包MASS做對應分析
  2. 研究在幫助文件中提供的例子:?mca

你會發現mca的要求也是一個由因素組成的數據幀。 (有關更多信息,請參閱幫助文件?factor。)但mca中的示例說明了這一點。它使用如包MASS的一部分供給的數據集farms

library(MASS) 
head(farms) 

    Mois Manag Use Manure 
1 M1 SF U2  C4 
2 M1 BF U2  C2 
3 M2 SF U2  C4 
4 M2 SF U2  C4 
5 M1 HF U1  C2 
6 M1 HF U2  C2 

請注意,在表中的每個點是一個因素的條目。這意味着您將不得不將輸入數據修改爲相似的格式。你提到你的輸入數據是一個頻率表,這不是所需的數據格式。

farms.mca <- mca(farms, abbrev=TRUE) 
farms.mca 
plot(farms.mca) 

enter image description here

4

編輯:

如果我理解正確的話,你的數據不適合任何MCA功能。您需要原始數據,而不是任何類型的標準化頻率計數。 MCA處理分類變量,而不是數字。你需要的是在檢測數據:

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

如果標準化後的頻率實在是你的數據,你有數值數據,你不能對執行MCA。


factor一個是R中的載體類型,它可以被看作是一個絕對或枚舉類型。如果你有數據,上述格式,你仍然有字符變量代替因子變量,你可以用

fdata2 <- as.data.frame(lapply(fdata,as.factor)) 

這一個,你應該能夠在dudi.acm()功能使用轉換您FDATA。

關於伯特表:當然,一個是巨大的。這是矩陣乘法X'X,其中X是您的因素的指標矩陣。所以你得到一個表(實際上是一個數據框),其中rownames和columnames形成爲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和綿延在數據幀伯特表。