SAS 主成分分析

data cor1;
     input x1-x4;
	 cards;
40 2.0 5 20
10 1.5 5 30
120 3.0 13 50
250 4.5 18 0
120 3.5 9 50
10 1.5 12 50
40 1.0 19 40
270 4.0 13 60
280 3.5 11 60
170 3.0 9 60
180 3.5 14 40
220 1.5 17 20
130 2.0 30 50
160 1.5 35 60
220 2.5 14 30
140 2.0 20 20
220 2.0 14 10
40 1.0 10 0
20 1.0 12 60
120 2.0 20 0
;
proc print;   /*输出主成分分析的数据集*/
run;
proc princomp data=cor1          /*待分析数据集*/
               out=corout          /*主成分分析的结果*/
			   outstat=corstat      /*输出每个指标的均值、标准差等等*/
			   prefix=z;           /*指定主成分名称前缀为z*/
	  var x1-x4;
run;
proc print data=corout;  
run;
proc print data=corstat;   /*输出每个变量的特征值、相关系数矩阵、得分情况*/
run;


 

主成分分析之多元回归:

data cor2;
      input x1 x2 x3 y;
	  cards;
51.3 73.6 36.4 2.99
48.9 83.9 34.0 3.11
42.8 78.3 31.0 1.91
55.0 77.1 31.0 2.63
45.3 81.7 30.0 2.86
45.3 74.8 32.0 1.91
51.4 73.7 36.5 2.98
53.8 79.4 37.0 3.28
49.0 72.6 30.1 2.52
53.9 79.5 37.1 3.27
48.8 83.8 33.9 3.10
52.6 88.4 38.0 3.28
42.7 78.2 30.9 1.92
52.5 88.3 38.1 3.27
55.1 77.2 31.1 2.64
45.2 81.6 30.2 2.85
51.4 78.3 36.5 3.16
48.7 72.5 30.0 2.51
51.3 78.2 36.4 3.15
45.2 74.7 32.1 1.92
;
proc print;        /*查看数据集*/
run;
title '对变量作共线性分析';
proc reg data=cor2;
	model y=x1 x2 x3 / tol vif collin;  /*使用线性回归REG中的collin选项来作共线性分析*/
run;


title '主成分分析';
proc princomp data=cor2     
               out=cor2out 
               prefix=z;   /*主成分的前缀名*/
	var x1-x3;             /*需要分析的变量*/
run;
proc print data=cor2out;
run;
	


 

猜你喜欢

转载自blog.csdn.net/Tiaaaaa/article/details/58614943