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!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.