1、SAS的Factor过程因子分析Factor 过程 (李东风教程 P251256,P255正交旋转,斜交旋转)DATA SOCECON;TITLE FIVE SOCIO-ECONOMIC VARIABLES;TITLE2 SEE PAGE 14 OF HARMAN: MODERN FACTOR ANALYSIS, 2ND ED; INPUT POP 1-9 SCHOOL 10-19 EMPLOY 20-29 SERVICES 30-39 HOUSE 40-49; LABEL POP=TOTAL POPULATION SCHOOL=MEDIAN SCHOOL YEARS EMPLOY=TOTAL
2、 EMPLOYMENT SERVICES=MISC. PROFESSIONAL SERVICES HOUSE=MEDIAN VALUE HOUSE; CARDS;5700 12.8 2500 270 250001000 10.9 600 10 100003400 8.8 1000 10 90003800 13.6 1700 140 250004000 12.8 1600 140 250008200 8.3 2600 60 120001200 11.4 400 10 160009100 11.5 3300 60 140009900 12.5 3400 180 180009600 13.7 360
3、0 390 250009600 9.6 3300 80 120009400 11.4 4000 100 13000;RUN;PROC PRINT;RUN; PROC FACTOR OUTSTAT=FACT1 METHOD=PRINCIPAL NFACT=2 ROTATE=VARIMAX PREPLOT PLOT SCORE;TITLE2 SEE PAGES 137 & 310 OF HARMAN: MODERN FACTOR ANALYSIS, 2ND ED;RUN; PROC PRINT; BY _TYPE_ NOTSORTED;TITLE2 OUTPUT DATA SET FROM PRO
4、C FACTOR;RUN; PROC SCORE SCORE=FACT1 DATA=SOCECON OUT=SCORES;TITLE2 FACTOR SCORES;PROC PRINT;RUN; PROC FACTOR DATA=FACT1 METHOD=PRIN NFACT=2; PRIORS SMC;TITLE2 SEE PAGE 162 OF HARMAN: MODERN FACTOR ANALYSIS, 2ND ED;RUN; PROC FACTOR DATA=FACT1 METHOD=ML NFACT=2 HEYWOOD;TITLE2 SEE PAGE 229 OF HARMAN:
5、MODERN FACTOR ANALYSIS, 2ND ED;RUN;一、 factor过程格式:proc factor 选项;var 变量;priors 公因子方差;run;注:1)、选项:data=输入数据集 outstat=输出数据集method=因子选择方法(包括principal , ML , alpha , prinit 等)rotate=因子转轴方式(包括none , varimax , promax , orthomax 等)Priors=计算公因子方差的方法(包括One Smc 等)2)priors语句为var语句中的变量设定公因子方差的预估值(介于0与1之间)。 例:美国洛
6、杉机市12个社区的社会经济状况分析:5个变量为:pop(人口)、school(教育程度)、employ(就业)、services(服务)、house(房价),程序如下:DATA economy;INPUT POP SCHOOL EMPLOY SERVICES HOUSE;CARDS;.PROC FACTOR DATA=economy SIMPLE CORR; TITLE Principal Component Analysis ;RUN;PROC FACTOR DATA=economy PRIORS=SMC ROTATE=PROMAX OUTSTAT=factall REORDER ;PROC
7、 PRINT; TITLE2FACTOR OUTPUT DATA SET ;RUN;参照上例自己编的程:libname abc D:/sas1;proc data abc.fitness;(想一想这里为什么用fitness而不用class)input NUM AGE WEIGHT RUNTIME RSTPULSE RUNPULSE MAXPULSE OXYGEN GROUP;proc factor data=abc.fitness PRIORS=SMC ROTALE=PROMAX OUTSTAT=factall REORDER;proc print;RUN;改进:把promax 改为varim
8、ax,去掉reorderPromax 和varimax是两种不同的旋转方法,一般用varimax.Smc是计算公因子方差的方法习题八第3题因子分析data chemical;input SO TO FO CO KO;cards;75.20 0.14 1.86 0.91 5.2175.15 0.16 2.11 0.74 4.9372.19 0.13 1.52 0.69 4.6572.35 0.13 1.37 0.83 4.8772.74 0.10 1.41 0.72 4.9973.29 0.033 1.07 0.17 3.1573.72 0.033 0.77 0.28 2.78;proc factor data=chemical SIMPLE CORR;title chemical component;run;proc factor data=chemical PRIORS=SMC ROTATE=PROMAX OUTSTAT=factall REORDER;PROC PRINT;title2factor output data set;run;