考虑以下矩阵:
structure(list(X1 = c(1L, 2L, 3L, 4L, 2L, 5L), X2 = c(2L, 3L,
4L, 5L, 3L, 6L), X3 = c(3L, 4L, 4L, 5L, 3L, 2L), X4 = c(2L, 4L,
6L, 5L, 3L, 8L), X5 = c(1L, 3L, 2L, 4L, 6L, 4L)), .Names = c("X1",
"X2", "X3", "X4", "X5"), class = "data.frame", row.names = c(NA,
-6L))
每列对应一个被告,每一行载有被申请人指定用于某一特定对象的排名数,并注意排名的范围可能不同于被申请人。
我试图根据每列的宽度来设定一个相似度量,根据每列的宽度来加权距离。 < 坚固> 这是我迄今尝试过的: 坚固>
m <- test
d <- dist(m, "manhattan", diag=FALSE, upper=TRUE)/nrow(m)
maxmin <- max(m, na.rm=TRUE) - min(m,na.rm=TRUE)
WeightedAgreement <- as.matrix((-1 * d + maxmin) / maxmin)
按照这一尺度,X1和X3之间的距离为0.761(1.666 * - 1)+7)/7 = 0.761。
我公式的问题在于它使用的是表格中所有值的范围 -- 所以“ 最大值” 总是 7, 偏向于相似值的计算。 我需要在计算相似值时使用列的范围, 而不是表格。 第1和第3栏的最大值应该是 4 (5-1), X1 和 X3 之间的相似值应该是 0.583 。