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

时间:2017-03-17 09:36:45

标签: variables cluster-analysis

有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由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))

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

1 个答案:

答案 0 :(得分:0)

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

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

但算法不假设x + y + z = 1。他们不会假设x*x+y*y+z*z=1或其他功能依赖。