2012-01-04 51 views
0

我想比較一個配置文件(變量的平均外觀)與給定的結構(變量的實際外觀)。比較一個結構與R的配置文件

數據集的樣子,對於外形P:

structure(list(V1 = c(0.047, 0.092, 0.065, 0.091, 0.076, 0.067, 
0.087, 0.065, 0.076, 0.052), V2 = c(0.086, 0.06, 0.056, 0.076, 
0.09, 0.071, 0.075, 0.063, 0.078, 0.038), V3 = c(0.065, 0.085, 
0.097, 0.082, 0.061, 0.053, 0.073, 0.083, 0.073, 0.081), V4 = c(0.071, 
0.083, 0.091, 0.07, 0.063, 0.067, 0.107, 0.071, 0.109, 0.094), 
    V5 = c(0.102, 0.104, 0.107, 0.101, 0.12, 0.116, 0.113, 0.112, 
    0.122, 0.1), V6 = c(0.086, 0.067, 0.091, 0.08, 0.07, 0.067, 
    0.073, 0.067, 0.083, 0.081), V7 = c(0.086, 0.079, 0.095, 
    0.082, 0.093, 0.114, 0.081, 0.079, 0.078, 0.083), V8 = c(0.053, 
    0.056, 0.046, 0.058, 0.067, 0.037, 0.043, 0.057, 0.034, 0.063 
    ), V9 = c(0.069, 0.065, 0.069, 0.042, 0.067, 0.069, 0.071, 
    0.075, 0.06, 0.096), V10 = c(0.067, 0.054, 0.048, 0.042, 
    0.063, 0.051, 0.045, 0.053, 0.058, 0.073), V11 = c(0.024, 
    0.044, 0.042, 0.066, 0.023, 0.051, 0.024, 0.024, 0.022, 0.044 
    ), V12 = c(0.047, 0.048, 0.048, 0.04, 0.044, 0.047, 0.045, 
    0.051, 0.042, 0.052), V13 = c(0.075, 0.075, 0.056, 0.072, 
    0.053, 0.079, 0.075, 0.079, 0.06, 0.046), V14 = c(0.122, 
    0.088, 0.089, 0.095, 0.11, 0.11, 0.087, 0.12, 0.105, 0.098 
    )), .Names = c("V1", "V2", "V3", "V4", "V5", "V6", "V7", 
"V8", "V9", "V10", "V11", "V12", "V13", "V14"), row.names = c(NA, 
10L), class = "data.frame") 

的結構是這樣的:

structure(c(1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 
1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 
1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 
1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 
0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 
1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 
0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 
1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 
0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), .Dim = c(20L, 14L), .Dimnames = list(
    NULL, c("UH6401", "UH6402", "UH6403", "UH6404", "UH6409", 
    "UH6410", "UH6411", "UH6412", "UH6503", "UH66", "UH68", "UH6501a", 
    "UH6405a", "UH6407a"))) 

因此,在這兩種情況下變量的數量是相等的。也是結構。區別在於每個單元格中的數字。它在配置文件中的位置是浮點數,單元格是二進制的(變量可用或不可用)。我想現在找到最接近結構行的剖面矩陣的這一行。


UPDATE:

好吧,也許我的描述有點不清楚,我不應該使用具有特定含義的術語。因此,我試圖指定更多我嘗試去做的事情。 如果我們看一下第一個矩陣,它看起來像這樣:

 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 
1 0.047 0.086 0.065 0.071 0.102 0.086 0.086 0.053 0.069 0.067 0.024 0.047 0.075 0.122 
2 0.092 0.060 0.085 0.083 0.104 0.067 0.079 0.056 0.065 0.054 0.044 0.048 0.075 0.088 
3 0.065 0.056 0.097 0.091 0.107 0.091 0.095 0.046 0.069 0.048 0.042 0.048 0.056 0.089 
4 0.091 0.076 0.082 0.070 0.101 0.080 0.082 0.058 0.042 0.042 0.066 0.040 0.072 0.095 
5 0.076 0.090 0.061 0.063 0.120 0.070 0.093 0.067 0.067 0.063 0.023 0.044 0.053 0.110 
6 0.067 0.071 0.053 0.067 0.116 0.067 0.114 0.037 0.069 0.051 0.051 0.047 0.079 0.110 
7 0.087 0.075 0.073 0.107 0.113 0.073 0.081 0.043 0.071 0.045 0.024 0.045 0.075 0.087 
8 0.065 0.063 0.083 0.071 0.112 0.067 0.079 0.057 0.075 0.053 0.024 0.051 0.079 0.120 
9 0.076 0.078 0.073 0.109 0.122 0.083 0.078 0.034 0.060 0.058 0.022 0.042 0.060 0.105 
10 0.052 0.038 0.081 0.094 0.100 0.081 0.083 0.063 0.096 0.073 0.044 0.052 0.046 0.098 

每一行代表變量(V1到V14)的所謂的個人資料。我所說的藍線的變量(的Auslander,Keine Umweltbelastung等)

enter image description here

每一行的總和爲1,因此,在每個單元中的數是的變量的分數的輪廓整排。

RESP是21000×14矩陣,看起來像這樣:

 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 
[1,] 1 1 0 1 0 1 0 1 1 1 0 1 1 0 
[2,] 1 1 1 0 1 1 0 1 1 1 0 1 1 1 
[3,] 0 0 0 0 0 1 0 1 1 1 0 0 1 0 
[4,] 1 1 0 0 0 0 0 1 1 1 0 1 0 0 
[5,] 1 1 1 1 0 1 1 1 1 1 1 1 0 0 
[6,] 0 0 0 0 0 0 1 1 1 1 0 1 0 0 
[7,] 1 1 1 0 0 1 0 1 0 0 1 0 0 0 
[8,] 0 0 0 0 0 0 0 0 1 1 0 1 0 0 
[9,] 1 1 1 1 1 0 0 1 1 1 1 1 0 0 
[10,] 1 1 1 1 0 0 0 1 1 1 1 1 1 0 
[11,] 0 0 0 0 0 1 1 1 1 1 0 1 0 0 
[12,] 1 1 0 0 0 0 0 1 1 1 1 1 1 0 
[13,] 0 1 0 1 0 1 0 1 1 1 0 1 0 0 
[14,] 0 0 0 0 0 1 1 1 1 1 0 1 0 0 
[15,] 1 0 1 1 0 0 0 1 1 1 1 1 0 0 
[16,] 1 1 1 1 0 0 0 1 1 1 0 1 0 0 
[17,] 1 1 1 0 0 1 1 1 1 1 0 1 1 1 
[18,] 1 1 1 0 0 1 0 1 1 1 0 1 0 0 
[19,] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
[20,] 1 1 1 1 0 0 0 1 1 1 0 1 0 0 

每一行現在是一個申請人的小區條目指示如果一個變量(V1至V14)可用於他(1)或不(0)。雖然變量中的條目是一個小組所有受訪者的平均數據,但是觀察到的是條目中的條目。 變量代表組的鄰域結構。變量顯示10個不同的子組。我想知道,resp的答覆者可能屬於哪個小組。因此我需要比較resp中的每一行和變量中的每一行。我假設,受訪者屬於總體差異最小的小組。 我的第一個想法是將每行的resp除以行的總和,但結果並不適用。接下來我想用每個變量的平均值進行加權:

aver <- c(0.0718023287061849, 0.0693420423225302, 0.0753384763664876, 
0.0827043835101492, 0.109631516692048, 0.0765927537218141, 0.0870322381232645, 
0.0515014684350035, 0.0683398169561522, 0.0554744519820495, 0.0363337127130046, 
0.0463575341160886, 0.0671060291182815, 0.102443247236942) 

但是我不知道這是否有效。最後,我需要將觀察到的數據與平均數據進行比較(比較剖面)。然後將這個小組分配給一個受訪者,該受訪者的個人資料與小組平均值相差最小。

所以現在的問題是,什麼是生產從RESP以及如何比較這兩個配置文件可比較的輪廓適用的方式...

我希望這是一個好一點理解。 感謝您的幫助!

+0

你如何定義關閉?什麼會使輪廓行靠近結構行? – 2012-01-04 18:17:46

+0

@PLapointe:我剛更新了說明... – Dominik 2012-01-05 11:29:56

回答

0

在第二種情況下,您有一個矩陣,它是一個長度爲prod(dim(mtx))的摺疊向量,其摺疊由.Dim屬性管理。在第一種情況下,您有一個長度爲== 14的特殊形式的列表,稱爲數據框,與列表具有矩形形狀一樣,但與矩陣不同,可能具有不同模式的值:邏輯,整數,字符,數字或因子。它實際上是一組經過相同長度測試的命名列表。你在談論單元和配置文件,但這些都不是真正的R術語,所以你最後兩個問題真的在問什麼有點不清楚。

如果你想快速的方式來看待數據對象,嘗試:

str(object-name) 

迴應:如果我理解你正確更新你要開發的第一個對象行之間的距離測量,我我要打電話給「個人資料」和我打算稱爲「單元格」的第二個對象。因爲所有的配置文件行總和爲1,他們的平均值是1/14。您可以創建一個矩陣,其元素爲1或0,具體取決於「配置文件」中的每個行/列項目是高於還是低於平均值。稱此爲「處理」。

discrProfTF <- 0+ (profiles >1/14) 

如何斷開關係可能是進一步的輸入適合您的科學領域,你沒有提供的主題。

有具有「二元」的措施一dist功能,你可以將它應用到:

cbind(discrProfTF, Cells) # a 30 x 14 matrix 

dist(cbind(discrProfTF, Cells), "binary") # a 30 x 30 lower-triangular "distance matrix" 

而且你會忽略的距離比較不同procells行和單元格的行和只專注於之間的距離處理和細胞。我想你會發現其他策略適用於Cluster Task View.

+0

我剛更新了說明。我希望能更好地理解我在找什麼。 – Dominik 2012-01-05 11:30:46