SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1142|回复: 1
打印 上一主题 下一主题

紧急求助:关于SAS聚类的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-6-13 10:23:10 | 只看该作者

紧急求助:关于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如何实现?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-6-13 12:10:11 | 只看该作者

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,但仍不可为一类?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-6 13:12 , Processed in 0.067237 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表