当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。