SAS-观测到集群中心的距离

SAS-观测到集群中心的距离,sas,output,distance,hierarchical-clustering,Sas,Output,Distance,Hierarchical Clustering,是否有一种简单的方法可以获得每次观测到的距离,即距离其对应的星团中心的距离 我的任务如下: 我有一个包含42000个观察值的数据集,每个都有8个变量 我在SAS中运行集群过程 proc cluster data=WORK.stndstandardized_0000 method=average pseudo noeigen outtree=WORK.tree; id POL_NUMBER; var stnd_P_M200 stnd_P_M150 stnd_P_M100 stnd_P_M50 st

是否有一种简单的方法可以获得每次观测到的距离,即距离其对应的星团中心的距离

我的任务如下:

  • 我有一个包含42000个观察值的数据集,每个都有8个变量

  • 我在SAS中运行集群过程

    proc cluster data=WORK.stndstandardized_0000 method=average pseudo noeigen outtree=WORK.tree;
    id POL_NUMBER;
    var stnd_P_M200 stnd_P_M150 stnd_P_M100 stnd_P_M50 stnd_P_50 stnd_P_100  stnd_P_150 stnd_P_200;
    run;
    
    proc tree out=WORK.part nclusters=10;
    id POL_NUMBER;
    copy stnd_P_M200 stnd_P_M150 stnd_P_M100 stnd_P_M50 stnd_P_50 stnd_P_100 stnd_P_150 stnd_P_200;
    proc sort;
    by cluster;
    run;
    
  • 我应该分析单个星团,并提取离星团中心最近、距离星团中心最远的观测值

  • 我的输出包含所有具有相应集群名称的观察结果。但我想得到更详细的信息,例如观测到星团中心的距离


    有没有自动的方法,如何得到它?我已经花了相当多的时间阅读手册,但我没有找到任何方法。谢谢你的帮助

    这是一个使用FastClus的解决方案

    PROC FASTCLUS不会返回集群树,只返回指定集群数量的一个解决方案。PROC FASTCLUS所需的时间大致与观测次数成正比。此外,据我所知,它提供相同的聚类,但其他输出数据集

    创建聚类
    mean=mean
    指定您希望在数据集的工作中使用CETROID。mean'和
    out=prelim
    指定您希望在数据集的工作中使用观察值,包括聚类数和距离。prelim´

    title2 ’Preliminary Analysis by FASTCLUS’;
    proc fastclus data=sashelp.iris summary maxc=10 maxiter=99 converge=0
        mean=mean out=prelim cluster=preclus;
        var petal: sepal:;
    run;
    
    剩下的是老式SAS编程 你可能会适应你的要求

    proc sort data=mean;
        by preclus;
    proc sort data=prelim;
        by preclus distance;
    
    data closest farthest;
    
        format Species $22. Distance 5.2
            SepalLength 5.2 centroidSepalLength 5.2  
            SepalWidth  5.2 centroidSepalWidth  5.2   
            PetalLength 5.2 centroidPetalLength 5.2  
            PetalWidth  5.2 centroidPetalWidth  5.2   ;
        merge prelim
            mean (rename=(
                SepalLength=centroidSepalLength 
                SepalWidth=centroidSepalWidth  
                PetalLength=centroidPetalLength 
                PetalWidth=centroidPetalWidth ) drop=_:);
        by preclus;
        if first.preclus then output closest;
        if last.preclus then output farthest;
    run;
    

    对于中心,你指的是质心,对吗?@Dirk我实际上更喜欢获得一些中心观测值(即集群中一组观测值中最平均的观测值),我想你指的是“最远的”;-)