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 |
比如说,维度为 |
metric |
指定要使用的度量的字符串。当前可用的选项有 “高尔距离”由度量 |
stand |
逻辑标志:如果为 TRUE,则在计算差异之前对 如果 |
type |
用于指定
每个组件都是一个(字符或数字)向量,包含
|
weights |
长度为 |
warnBin , warnAsym , warnConst |
逻辑指示是否应发出相应类型检查警告信号(当发现时)。 |
warnType |
逻辑指示所有类型检查警告是否应处于活动状态。 |
细节
daisy
的原始版本在 Kaufman 和 Rousseuw (1990) 的第一章中有完整说明。与输入必须是数值变量的 dist
相比,daisy
的主要特点是它也能够处理其他变量类型(例如名义变量、有序变量、对称二进制变量),即使同一数据中出现不同类型放。
名义、序数和(a)对称二进制数据的处理是通过使用 Gower (1971) 的一般相异系数来实现的。如果 x
包含这些数据类型的任何列,则参数 metric
和 stand
将被忽略,并且将使用高尔系数作为度量。对于纯数字数据,也可以通过 metric = "gower"
激活此函数。这样,每个变量(列)首先通过将每个条目除以相应变量的范围,然后减去最小值来标准化;因此,重新调整后的变量的范围恰好是 。
请注意,仅当不存在缺失值时,将类型设置为 symm
(对称二进制)与使用名义(为无序因子选择)具有相同的差异,并且效率更高。
请注意,当 2 值数值变量未指定显式 type
时, daisy
会发出警告,因为参考文献作者建议考虑使用 "asymm"
;该警告可能会被 warnBin = FALSE
静音。
在 daisy
算法中,x 行中的缺失值不包含在涉及该行的差异中。主要有两种情况,
-
如果所有变量都是区间缩放的(并且
metric
不是"gower"
),则度量为 "euclidean", 是第 i 行和第 j 行都没有 NA 的列数,则相异度 d(i ,j) 返回的是 ( ncol(x)) 乘以长度为 的两个向量之间的欧几里德距离,该长度被缩短以排除 NA。 "manhattan" 指标的规则类似,但系数为 。如果是 ,则差异为 NA。 -
当某些变量的类型不是区间缩放时,或者如果指定了
metric = "gower"
,则两行之间的差异是每个变量贡献的加权平均值。具体来说,换句话说,
= weigths[k]
、 为 0 或 1, 为 k-th 变量对总距离是x[i,k]
和x[j,k]
之间的距离,见下文。 是 的加权平均值,权重为 ,其中当变量
x[,k]
在任一行或两行(i 和 j)中缺失时,或者当变量是非对称二进制并且两个值都为零时,0-1 权重 变为零。在所有其他情况下,它都是 1。如果两个值相等,则名义变量或二元变量对总差异的贡献
1:K
替换。请注意,这与使用排名不同(因为通常存在平局)。 为 0,否则为 1。其他变量的贡献是两个值的绝对差除以该变量的总范围。请注意, “standard scoring” 应用于序数变量,即它们被整数代码由于个人贡献
NA
。 位于 中,因此相异度 将保持在此范围内。如果所有权重 均为零,则相异度设置为
值
类 "dissimilarity"
的对象,包含 x
行之间的差异。这通常是函数 pam
、 fanny
、 agnes
或 diana
的输入。有关更多详细信息,请参阅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.
也可以看看
相关用法
- R diana 分裂分析聚类
- R summary.clara “clara”对象的摘要方法
- R pluton 钚同位素成分批次
- R votes.repub 总统选举中共和党候选人的投票
- R agnes 凝聚嵌套(层次聚类)
- R print.mona MONA 对象的打印方法
- R print.clara CLARA 对象的打印方法
- R mona 二元变量的单论分析聚类
- R plot.diana 分裂层次聚类图
- R plot.mona 一元分裂层次聚类的旗帜
- R bannerplot 绘图横幅(层次聚类)
- R plot.partition 数据集分区图
- R summary.agnes “agnes”对象的摘要方法
- R pltree 绘制层次聚类的聚类树
- R summary.mona “mona”对象的摘要方法
- R plantTraits 植物物种性状数据
- R plot.agnes 凝聚层次聚类图
- R print.agnes AGNES 对象的打印方法
- R chorSub Kola 数据 C 范围的子集
- R pam 围绕 Medoid 进行分区
- R volume.ellipsoid 计算(椭球体的)体积
- R clusplot (分区对象的)双变量聚类图
- R print.pam PAM 对象的打印方法
- R clara 集群大型应用程序
- R agnes.object 聚合嵌套 (AGNES) 对象
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Dissimilarity Matrix Calculation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。