You could save these data firstly ,afterwards polt it by PROC SGPLOT.
ods select none;
ods output ScreePlot=ScreePlot;
PROC FACTOR DATA = sashelp.heart METHOD=PRINCIPAL PRIORS=SMC RESIDUAL
ROTATE=VARIMAX OUTSTAT=OUTSTAT
PLOTS(UNPACK)=SCREE REORDER ;
VAR _numeric_ ;
RUN;
ods select all;
%let n=6; /*the number of factors you want to display*/
proc sgplot data=ScreePlot(where=(number<=&n.));
series x=number y=Eigenvalue/markers;
run;
Or you could check the next graph "the explained variance" to find elbow point ?
Did you look at the Proc Factor option NPLOTS= to limit the number of factors plotted?
You could save these data firstly ,afterwards polt it by PROC SGPLOT.
ods select none;
ods output ScreePlot=ScreePlot;
PROC FACTOR DATA = sashelp.heart METHOD=PRINCIPAL PRIORS=SMC RESIDUAL
ROTATE=VARIMAX OUTSTAT=OUTSTAT
PLOTS(UNPACK)=SCREE REORDER ;
VAR _numeric_ ;
RUN;
ods select all;
%let n=6; /*the number of factors you want to display*/
proc sgplot data=ScreePlot(where=(number<=&n.));
series x=number y=Eigenvalue/markers;
run;
Or you could check the next graph "the explained variance" to find elbow point ?
This worked! Thank you!
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.