當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R daisy 相異矩陣計算

R語言 daisy 位於 cluster 包(package)。

說明

計算數據集中觀測值之間的所有成對差異(距離)。原始變量可能是混合類型。在這種情況下,或者每當設置 metric = "gower" 時,都會使用高爾公式的推廣,請參閱下麵的“詳細信息”。

用法

daisy(x, metric = c("euclidean", "manhattan", "gower"),
      stand = FALSE, type = list(), weights = rep.int(1, p),
      warnBin = warnType, warnAsym = warnType, warnConst = warnType,
      warnType = TRUE)

參數

x

比如說,維度為 的數字矩陣或 DataFrame 。將計算 x 的行之間的差異。 numeric 模式的列(即 x 為矩陣時的所有列)將被識別為區間縮放變量,factor 類的列將被識別為名義變量,ordered 類的列將被識別為序數變量。其他變量類型應使用 type 參數指定。允許缺失值 (NA s)。

metric

指定要使用的度量的字符串。當前可用的選項有"euclidean"(默認),"manhattan""gower".
歐幾裏得距離是差值的平方根,曼哈頓距離是絕對差值之和。

“高爾距離”由度量 "gower" 選擇,如果 x 的某些列不是數字,則自動選擇。也稱為高爾係數 (1971),表示為相異性,這意味著將對每個變量應用特定的標準化,並且兩個單元之間的 “distance” 是所有 variable-specific 距離的總和,請參閱詳細信息部分。

stand

邏輯標誌:如果為 TRUE,則在計算差異之前對 x 中的測量值進行標準化。通過減去變量的平均值並除以變量的平均絕對偏差,對每個變量(列)的測量值進行標準化。

如果 x 的所有列並非都是數字,則 stand 將被忽略,並且在任何情況下都將應用 Gower 的標準化(基於 range ),請參閱上麵的參數 metric 和詳細信息部分。

type

用於指定 x 中的部分(或全部)變量(列)類型的列表。該列表可能包含以下組件:

"asymm"

非對稱二進製變量,又名結果 Types 中的 "A" ,請參閱 dissimilarity.object

"symm"

對稱二進製變量,又名 "S"

"factor"

標稱 - factor 變量的默認值,又名 "N"

"ordered"

序號 - ordered(因子)變量的默認值,又名 "O" ,請參閱 dissimilarity.object

"logratio"

要進行對數轉換 ( log10 ) 然後將其視為數值 ( "I" ) 的比率縮放數值變量:必須是正數值變量。

"ordratio"

“raTio” 類變量被視為 ordered (使用因子代碼 unclass(as.ordered(x[,j])) ),又名 "T"

"numeric" /"integer"

間隔縮放 - x 的所有數字(包括 integer )列的默認值,也稱為結果 Types 中的 "I" ,請參閱 dissimilarity.object

每個組件都是一個(字符或數字)向量,包含 x 相應列的名稱或編號。

type 中未提及的變量將照常解釋,請參閱參數 x 以及上麵的‘default’。因此,默認的 type = list() 通常就足夠了。

weights

長度為 的可選數值向量 (= ncol(x) );用於“情況 2”(混合變量,或 metric = "gower" ),指定每個變量的權重 ( x[,k] ),而不是高爾原始公式中的

warnBin , warnAsym , warnConst

邏輯指示是否應發出相應類型檢查警告信號(當發現時)。

warnType

邏輯指示所有類型檢查警告是否應處於活動狀態。

細節

daisy 的原始版本在 Kaufman 和 Rousseuw (1990) 的第一章中有完整說明。與輸入必須是數值變量的 dist 相比,daisy 的主要特點是它也能夠處理其他變量類型(例如名義變量、有序變量、對稱二進製變量),即使同一數據中出現不同類型放。

名義、序數和(a)對稱二進製數據的處理是通過使用 Gower (1971) 的一般相異係數來實現的。如果 x 包含這些數據類型的任何列,則參數 metricstand 將被忽略,並且將使用高爾係數作為度量。對於純數字數據,也可以通過 metric = "gower" 激活此函數。這樣,每個變量(列)首先通過將每個條目除以相應變量的範圍,然後減去最小值來標準化;因此,重新調整後的變量的範圍恰好是

請注意,僅當不存在缺失值時,將類型設置為 symm(對稱二進製)與使用名義(為無序因子選擇)具有相同的差異,並且效率更高。

請注意,當 2 值數值變量未指定顯式 type 時, daisy 會發出警告,因為參考文獻作者建議考慮使用 "asymm" ;該警告可能會被 warnBin = FALSE 靜音。

daisy 算法中,x 行中的缺失值不包含在涉及該行的差異中。主要有兩種情況,

  1. 如果所有變量都是區間縮放的(並且 metric 不是 "gower" ),則度量為 "euclidean", 是第 i 行和第 j 行都沒有 NA 的列數,則相異度 d(i ,j) 返回的是 ( ncol(x)) 乘以長度為 的兩個向量之間的歐幾裏德距離,該長度被縮短以排除 NA。 "manhattan" 指標的規則類似,但係數為 。如果是 ,則差異為 NA。

  2. 當某些變量的類型不是區間縮放時,或者如果指定了metric = "gower",則兩行之間的差異是每個變量貢獻的加權平均值。具體來說,

    換句話說, 的加權平均值,權重為 ,其中 = weigths[k] 為 0 或 1, 為 k-th 變量對總距離是 x[i,k]x[j,k] 之間的距離,見下文。

    當變量 x[,k] 在任一行或兩行(i 和 j)中缺失時,或者當變量是非對稱二進製並且兩個值都為零時,0-1 權重 變為零。在所有其他情況下,它都是 1。

    如果兩個值相等,則名義變量或二元變量對總差異的貢獻 為 0,否則為 1。其他變量的貢獻是兩個值的絕對差除以該變量的總範圍。請注意, “standard scoring” 應用於序數變量,即它們被整數代碼 1:K 替換。請注意,這與使用排名不同(因為通常存在平局)。

    由於個人貢獻 位於 中,因此相異度 將保持在此範圍內。如果所有權重 均為零,則相異度設置為 NA

"dissimilarity" 的對象,包含 x 行之間的差異。這通常是函數 pamfannyagnesdiana 的輸入。有關更多詳細信息,請參閱dissimilarity.object

背景

差異被用作聚類分析和多維尺度的輸入。指標的選擇可能會產生很大的影響。

例子


data(agriculture)
## Example 1 in ref:
##  Dissimilarities using Euclidean metric and without standardization
d.agr <- daisy(agriculture, metric = "euclidean", stand = FALSE)
d.agr
as.matrix(d.agr)[,"DK"] # via as.matrix.dist(.)
## compare with
as.matrix(daisy(agriculture, metric = "gower"))

data(flower)
## Example 2 in ref
summary(dfl1 <- daisy(flower, type = list(asymm = 3)))
summary(dfl2 <- daisy(flower, type = list(asymm = c(1, 3), ordratio = 7)))
## this failed earlier:
summary(dfl3 <- daisy(flower,
        type = list(asymm = c("V1", "V3"), symm= 2,
                    ordratio= 7, logratio= 8)))

作者

Anja Struyf, Mia Hubert, and Peter and Rousseeuw, for the original version.
Martin Maechler improved the NA handling and type specification checking, and extended functionality to metric = "gower" and the optional weights argument.

參考

Gower, J. C. (1971) A general coefficient of similarity and some of its properties, Biometrics 27, 857-874.

Kaufman, L. and Rousseeuw, P.J. (1990) Finding Groups in Data: An Introduction to Cluster Analysis. Wiley, New York.

Struyf, A., Hubert, M. and Rousseeuw, P.J. (1997) Integrating Robust Clustering Techniques in S-PLUS, Computational Statistics and Data Analysis 26, 17-37.

也可以看看

dissimilarity.objectdistpamfannyclaraagnesdiana

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Dissimilarity Matrix Calculation。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。