SAS中文论坛
标题:
紧急求助:关于SAS聚类的问题
[打印本页]
作者:
shiyiming
时间:
2012-6-13 10:23
标题:
紧急求助:关于SAS聚类的问题
测试数据集如下:
data jaccard;
input kw$ x1 x2 x3 x4 x5 x6 x7 x8;
cards;
a 0 0 1 0 1 0 0 0
b 0 0 0 1 1 0 0 0
c 0 0 1 0 0 0 0 0
d 0 0 0 1 1 0 0 0
e 0 0 0 1 0 0 0 0
;
run;
计算距离矩阵如下:
proc distance data= jaccard method=djaccard absent=0 out=distjacc;
var anominal(x1-x8);
id kw;
run;
proc print;run;
运行结果如下:
Obs kw Dist1 Dist2 Dist3 Dist4 Dist5
1 a 0.00000 . . . .
2 b 0.66667 0.0 . . .
3 c 0.50000 1.0 0 . .
4 d 0.66667 0.0 1 0.0 .
5 e 1.00000 0.5 1 0.5 0
现在我需要对这五个观测值进行聚类,但是需要满足如下条件:如果某两个观测值之间的距离大于0.6,则不能聚成一类,比如上面的观测点a和b距离是0.66667,所以不能聚成一类,最后上面的五个点应该聚成2类:a和c一类;b,d,e一类,SAS如何实现?
作者:
shiyiming
时间:
2012-6-13 12:10
标题:
Re: 紧急求助:关于SAS聚类的问题
有个问题,如果观测是如下形式
[code:r3hmigfz]
data jaccard;
input kw$ x1 x2 x3 x4 x5 x6 x7 x8;
cards;
a 1 1 1 1 1 1 1 1
b 1 1 1 1 0 0 0 0
c 0 0 0 0 1 1 1 1
;
run;
[/code:r3hmigfz]
然后计算Jaccard得到
Obs kw a b c
1 a 0.0 . .
2 b 0.5 0 .
3 c 0.5 1 0
可见a和b距离为0.5,a和c距离为0.5,b和c距离为1。根据规则,结果是三个类?即使ab,ac都是0.5,但仍不可为一类?
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2