I ran the following codes to graphically show the predicted probabilities of y (binary) vs. x1 (continuous) at different values of x2 (continuous).
proc logistic data=data;
model y(event='1') = x1 | x2;
store logiMod;
run;
title "Predicted probabilities";
proc plm source=logiMod;
effectplot slicefit(x=x1 sliceby=x2=0 to 30 by 5);
run;These codes give me the graph for the whole range of x1. But I want to show this graph for a specified range of x1 (say, for 0-20 with an increment of 2 for grids) without changing my main model. How can I get that? Can anyone demostrate any alternative way to produce a similar graph if such an option is not available in proc plm?
For more flexibility, you could skip proc plm and do your own scoring. For example:
data heart;
set sashelp.heart;
alive = missing(ageAtDeath);
run;
data graphValues;
do smoking = 0, 10, 20, 30;
do systolic = 120 to 180;
output;
end;
end;
label
smoking="Cigarettes per day"
systolic="Systolic blood pressure";
run;
proc logistic data=heart;
model alive = systolic smoking;
score data=graphValues out=graphScores;
run;
proc sgplot data=graphScores;
series x=systolic y=p_0 / group=smoking lineattrs=(pattern=solid);
run;
For more flexibility, you could skip proc plm and do your own scoring. For example:
data heart;
set sashelp.heart;
alive = missing(ageAtDeath);
run;
data graphValues;
do smoking = 0, 10, 20, 30;
do systolic = 120 to 180;
output;
end;
end;
label
smoking="Cigarettes per day"
systolic="Systolic blood pressure";
run;
proc logistic data=heart;
model alive = systolic smoking;
score data=graphValues out=graphScores;
run;
proc sgplot data=graphScores;
series x=systolic y=p_0 / group=smoking lineattrs=(pattern=solid);
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.