SAS常用基础代码例子-主成分分析

本文通过SAS代码演示了如何对1991年30个省、区、市城镇居民的消费数据进行主成分分析,包括求样本相关系数矩阵,计算主成分贡献率和前两个主成分的累计贡献率,并依据第一主成分得分对地区进行排序,揭示消费水平差异。

SAS常用基础代码例子-主成分分析
给出1991年我国30个省、区、市城镇居民的月平均消费数据,所考察的八个指标如下(单位均为元/人)
X1:人均粮食支出; X2:人均副食支出;X3 :人均烟酒茶支出;X4 :人均其他副食支出;
X5 :人均衣着商品支出;X6 :人均日用品支出;X7 :人均燃料支出; X8:人均非商品支出;
(1)求样本相关系数矩阵R;
(2)从R出发做主成分分析,求各主成分的贡献率及前两个主成分的累计贡献率;
(3)求出前两个主成分并解释其意义,按第一主成分得分将30个省、区、市排序,结果如何?

解:建立数据集shuju,运用sas的proc corr过程求得八个变量的观测数据的样本协方差矩阵S:
proc corr cov nosimple data=shuju;
var x1-x8;
run;
proc princomp data=shuju out=bb;
var x1-x8;
run;
协方差矩阵(Covariance Matrix)S为:
在这里插入图片描述由此看出,各指标的样本方差差异很大,因此从样本相关系数矩阵出发做主成分分析(即求标准化指标的样本成分)。
由SAS的proc princomp过程可求得其样本相关系数矩阵(Correlation Matrix)R为:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述按第一主成分得分将30个省、区、市排序:
data score1;
set bb;
proc sort data=score1;
by descending prin1;
proc print data=score1;
var area prin1 x1-x8;
run;
在这里插入图片描述由此可知,广东居民的月平均消费水平最高,上海居民次之,而江西居民的月平均消费水平是其中最低的。

代码块:

data shuju;
input area $ x1 x2 x3 x4 x5 x6 x7 x8 @@;
cards;
山西 8.35 23.53 7.51 8.62 17.42 10.00 1.04 11.21
内蒙古 9.25 23.75 6.61 9.19 17.77 10.48 1.72 10.51
吉林 8.19 30.50 4.72 9.78 16.28 7.60 2.52 10.32
黑龙江 7.73 29.20 5.42 9.43 19.29 8.49 2.52 10.00
河南 9.42 27.93 8.20 8.14 16.17 9.42 1.55 9.76
甘肃 9.16 27.98 9.01 9.32 15.99 9.10 1.82 11.35
青海 10.06 28.64 10.52 10.05 16.18 8.39 1.96 10.81
河北 9.09 28.12 7.40 9.62 17.26 11.12 2.49 12.65
陕西 9.41 28.20 5.77 10.80 16.36 11.56 1.53 12.17
宁夏 8.70 28.12 7.21 10.53 19.45 13.30 1.66 11.96
新疆 6.93 29.85 4.54 9.49 16.62 10.65 1.88 13.61
湖北 8.67 36.05 7.31 7.75 16.67 11.68 2.38 12.88
云南 9.98 37.69 7.01 8.94 16.15 11.08 0.83 11.67
湖南 6.77 38.69 6.01 8.82 14.79 11.44 1.74 13.23
安徽 8.14 37.75 9.61 8.49 13.15 9.76 1.28 11.28
贵州 7.67 35.71 8.04 8.31 15.13 7.76 1.41 13.25
辽宁 7.90 39.77 8.49 12.94 19.27 11.05 2.04 13.29
四川 7.18 40.91 7.32 8.94 17.60 12.75 1.14 14.80
山东 8.82 33.70 7.59 10.98 18.82 14.73 1.78 10.10
江西 6.25 35.02 4.72 6.28 10.03 7.15 1.93 10.39
福建 10.60 52.41 7.70 9.98 12.53 11.70 2.31 14.69
广西 7.27 52.65 3.84 9.16 13.03 15.26 1.98 14.57
海南 13.45 55.85 5.50 7.45 9.55 9.52 2.21 16.30
天津 10.85 44.68 7.32 14.51 17.13 12.08 1.26 11.57
江苏 7.21 45.79 7.66 10.36 16.56 12.86 2.25 11.69
浙江 7.68 50.37 11.35 13.30 19.25 14.59 2.75 14.87
北京 7.78 48.44 8.00 20.51 22.12 15.73 1.15 16.61
西藏 7.94 39.65 20.97 20.82 22.52 12.41 1.75 7.90
上海 8.28 64.34 8.00 22.22 20.06 15.12 0.72 22.89
广东 12.47 76.39 5.52 11.24 14.52 22.00 5.46 25.50
;
run;
proc corr cov nosimple data=shuju;
var x1-x8;
run;
proc princomp data=shuju out=bb;
var x1-x8;
run;

data score1;
set bb;
proc sort data=score1;
by descending prin1;
proc print data=score1;
var area prin1 x1-x8;
run;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值