/** 多维标度分析 **/
proc transpose data=brand out=tmpbrand;
/*brand数据的行代表152个人,列代表20个品牌特征。
使用transpose过程对其进行转置,输出数据集tmpbrand的行代表20个品牌特征,
列代表152个人,缺省的列名为col1、col2、...、col152。
此外,tmpbrand中还会生成两个新的列:
"_name_"表示原brand数据集中各列(品牌特征)的名称,
"_label_"表示原brand数据集中各列(品牌特征)的标签。*/
run;
proc distance data=tmpbrand out=distbrand method=cityblock;
/*使用distance过程计算数据集tmpbrand中各行
(即原brand数据集中各品牌特征)之间的距离。
输出数据集distbrand记录了计算出的距离矩阵。
计算距离的方法为"cityblock",即两行之间的距离为各列的差异的绝对值之和,
也就是说两个品牌特征之间的距离是152个人给这两个特征评分的差异的
绝对值之和。*/
var interval(col1-col152);
/*指明用于计算距离的列为定序变量col1至col152*/
id _name_;
/*指出数据集tmpbrand中"_name_"列(即品牌特征的名称)代表了各行的ID*/
run;
proc print data=distbrand;
run;
proc mds data=distbrand out=out;
id _name_;
/*使用mds过程进行多维标度分析。
输入数据集为前面计算出
SAS:多维标度分析(也可起到降维分析的作用)
最新推荐文章于 2022-11-07 21:48:39 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)