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;
Ksharp_0-1712284711376.png
Or you could check the next graph "the explained variance" to find elbow point ?
Ksharp_1-1712284861249.png
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;
Ksharp_0-1712284711376.png
Or you could check the next graph "the explained variance" to find elbow point ?
Ksharp_1-1712284861249.png
This worked! Thank you!
CFC_SAS_Communities_400x225.jpg
It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.
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.
Ready to level-up your skills? Choose your own adventure.