聚类方法。每次观察的变量总和为 1 时的选择变量

Clustering method. Choice variables when sum of variables is 1 on each observation

有3个变量x,z=1-(x+y)。 ( x>=0, y>=0, z>=0 )

数据如下。

O(1)= (x1,y1,z1)

O(2)= (x2,y2,z2)

...

O(n)= (xn,yn,zn)

我认为 z 没有必要表达每个观察结果,因为 z 是由 x 和 y 决定的。

因此,我使用 x 和 y 对这些数据进行了聚类。 并且还用 x、y 和 z 对相同数据进行了聚类。

结果不同。 因为 2D 和 3D 中的距离不相等。 (变了。)

(是的,当然,2D和3D的距离不相等。)

但是,在这种情况下,正确的聚类方法是什么?

我必须使用 x 和 y 吗?或者,我必须使用 x、y 和 z 吗?为什么?

请有人帮助我。提前致谢!

下面是R代码。

############
x <- sample(c(0:100), 100, replace = T)
y <- sample(c(0:100), 100, replace = T)
z <- 200 - (x+y)
xyz <- cbind(x,y,z)
xyz <- xyz/200 # z=1-(x+y)
xy <- zyz[,-3] 

require(fpc)
(xy.pamk <- pamk(xy))
plot(xy,col=xy.pamk$pamobject$clustering)

(xyz.pamk <- pamk(xyz))
require(rgl)
plot3d(xyz,col=xyz.pamk$pamobject$clustering,xlim=c(0,1), ylim=c(0,1), zlim=c(0,1))

##############

你不需要 z,因为它可以从 x 和 y 计算出来的理论是有缺陷的。

如果是这样,那么 x,y 和 x,z 和 y,z 都会给出相同的结果。

但算法不假设 x+y+z=1。他们不会假设 x*x+y*y+z*z=1 两者或其他特征的依赖关系。