BookmarkSubscribeRSS Feed
sammmy
Obsidian | Level 7

if i have a model like this;

 

proc logistic data=saslib.sad_PLFO;

where PLFO in (0,1);

class sex race  presents education wealth region / param=ref;

model PLFO (event='1') = age sex race  presents education wealth region age*education wealth*region region*education;

run;

 

How do I seperately get the odds ratio for all the ten variables  in the model using the oddratio statement in proc logistic. Since the variable region is invoved in two different interaction.

thanks

5 REPLIES 5
arodriguez
Lapis Lazuli | Level 10

Hi,

I'm not sure, but I think that is the exponential of the estimate. You could calculate it exporting the estimations or with the option  expb  in the model.

 

ods output ParameterEstimates=_PEst;
proc logistic data=sashelp.class;
	class sex;
	model sex(ref="F") = Age Weight Height / expb  ;
run;
sammmy
Obsidian | Level 7

Thank, I thought of that but the values I get are different from the values of the odds ratio estimate, I have checked that for the variables not in the interaction.

Ksharp
Super User


ods output OddsRatios=OddsRatios;
proc logistic data=sashelp.class;
	class sex;
	model sex(ref="F") = Age Weight Height   ;
	oddsratio age;
run;

sammmy
Obsidian | Level 7

thank you so much, but that is quit easy. But from my example one variable is invoveld in two seperate interaction.

what if I want to get the odds ratio for educatio*region without wealth since region is also involved in interaction with wealth?

JacobSimonsen
Barite | Level 11

You can not separately get an odds ratio of the variables that are involved in some interactionsterms. But, you can easily get the oddsratios for a variable for each level of the other variable it interacts with: just use the "at" option in the odds ratio statement. Like in this example which calculate the oddsratio for the variable A at each level of B, and the oddsratio for B for at level of A.

 

data mydata;
  n=1000;
  do a=0 to 1;
    do b=0 to 1;
	  odds=(1.2**a)*(0.75**b)*(0.8**(a*b));
	  p=odds/(1+odds);
	  y=rand('binomial',p,n);
	  output;
	end;
  end;
run;
proc logistic data=mydata;
  class a(ref="0") b(ref="0")/param=glm ;
  model y/n=a b a*b;
  oddsratio a/at(b=all) diff=ref;
  oddsratio b/at(a=all) diff=ref;
run;

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 5 replies
  • 2349 views
  • 2 likes
  • 4 in conversation