Programming the statistical procedures from SAS

Oddratio statement in in PROC logistic

Reply
New Contributor
Posts: 3

Oddratio statement in in PROC logistic

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

Frequent Contributor
Posts: 144

Re: Oddratio statement in in PROC logistic

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;
New Contributor
Posts: 3

Re: Oddratio statement in in PROC logistic

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.

Grand Advisor
Posts: 9,444

Re: Oddratio statement in in PROC logistic



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

New Contributor
Posts: 3

Re: Oddratio statement in in PROC logistic

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?

Super Contributor
Posts: 271

Re: Oddratio statement in in PROC logistic

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;

 

Ask a Question
Discussion stats
  • 5 replies
  • 268 views
  • 2 likes
  • 4 in conversation