BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
psj2
Calcite | Level 5

Dear All,

I want to model binary data with a multiple predictor logistic regression and want to show a profile likelihood confidence interval for the (covariate adjusted) odds ratio with a corresponding p-value for one of the predictors (treatment). I'm not too familiar with profile likelihoods but I found out that the confidence interval is obtained by inverting a likelihood-ratio test. So my question is:

(How) Can I produce a p-value that is consistent with the profile likelihood confidence interval?

It seems that SAS does not produce LR-tests for single parameters but only for the complete model against a null model. My idea would be to manually calculate the LR-test for the 2-category treatment parameter like this:

  1. run proc logistic with 2 predictors for treatment and the covariate, i.e. the full model
    1. model outcome = treatment covariate
    2. oddratio statement requesting a profile likelihood confindence interval for treatment odds ratio (adjusted for covariate)
  2. search the output for the value of -2 Log L for Intercept and Covariates, call it D_full
  3. run proc logistic again with reduced model without treatment variable but keeping the covariate
    1. model outcome = covariate
  4. search the output for the value of -2 Log L for Intercept and Covariates, call it D_red
  5. calculate p-value = 1-probchi(D_red - D_full, 1)

The p-value obtained in step 5 should be consistent with the profile likelihood confidence interval for the covariate adjusted treatment odds ratio in the sense that if e.g. the 95% the confidence interval does not include 1, then the p-value is below 5%. Or did I miss something?

psj2

1 ACCEPTED SOLUTION
6 REPLIES 6
Reeza
Super User

Are any of your variables categorical? Are you using a class statement?

Can you post your proc logistic code?

Usually when this happens, the class parameterization hasn't been specified appropriately so the hypothesis are out of line.

psj2
Calcite | Level 5

Hi Reeza,

thank you very much for the hint. Right now, I'm not having an discrepancy anywhere but I want to be sure that my thinking is correct, as I have to specify an analysis a-priori and want to be sure that it makes sense. If it turns out to be wrong concept-wise, that would mean some trouble Smiley Happy

My question can be re-stated more simple: The test of a parameter in a multiple logistic regression reported by default is a Wald test, so it is consistent with the default odds ratio confidence interval, the two belong together: If the p-value of the parameter is less than 5% then the 95%confidence interval of the corresponding adjusted parameter does not include 1. The question is: Is this also true for the pair of LR test and profile likelihood confidence interval?

To add more detail in my case: The treatment variable is a class variable with 2 classes, the covariate is a center variable with many classes (around 20). Because the variable in question is the treatment variable, it is a class variable with 2 levels, and therefore the chi-square distribution to compare against for the LR test should be the one with 1 df, at least if I got it right Smiley Happy

psj2

PS: In SAS code, my idea looks like this: (I have let it run for some example data and it looks ok, but that were only examples Smiley Happy )

proc logistic data=foo;

class treatment center;

model outcome(event="1")=treatment center;

oddsratio treatment / CL=PL;

ods output FitStatistics=fullmod OddsRatiosPL=ORs;

run;

proc logistic data=foo;

class center;

model outcome(event="1")= center;

ods output FitStatistics=redmod;

run;

data bar;

merge

  fullmod(where=(Criterion="-2 Log L") keep=InterceptAndCovariates Criterion rename=(InterceptAndCovariates=Dfull))

  redmod(where=(Criterion="-2 Log L") keep=InterceptAndCovariates Criterion rename=(InterceptAndCovariates=Dred))

  ORs

;

pval=1-probchi(Dred-Dfull,1);

keep Effect OddsRatioEst LowerCL UpperCL pval;

run;

proc print noobs label; run;

SteveDenham
Jade | Level 19

You may want to rethink considering 'center' as a fixed effect, especially if you want to generalize your conclusions regarding the treatment to apply to settings other than the centers at which the study is conducted.  If you do so, then shifting to PROC GLIMMIX will "kill two birds with one stone."

The following should (warning untested code) provide likelihood ratio F tests and profile confidence bounds for the odds ratio.  This approach will give the odds ratio conditional on the centers--in other words, what odds ratio would you expect to see in any given center, including those not in the study.

proc glimmix data=foo method=laplace;

class treatment center ;

model outcome(event="1")=treatment/dist=binary;

random intercept/subject=center;

lsmeans treatment/diff oddsratio cl;

run;

This code will give marginal odds ratios--what odds ratio would you expect, averaged over all possible centers.

proc glimmix data=foo ;

class treatment center ;

model outcome(event="1")=treatment/dist=binary;

random intercept/subject=center;

lsmeans treatment/diff oddsratio cl;

run;

Hope this helps.

Steve Denham

psj2
Calcite | Level 5

Dear Steve,


Thank you very much for the hint, I'll definitively consider it for my analysis.


But it is still interesting for me to know the answer to my original question above: Is the profile likelihood confidence interval consistent to the likelihood ratio test (outlined above in SAS code), as it is true for the Wald confidence interval and the type III tests in logistic regression (this could even be true for any kind of linear model).

psj2

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

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
  • 6 replies
  • 2876 views
  • 3 likes
  • 3 in conversation