Hello,
I have this multinomial logit model:
proc logistic data=edu.educationClean;
class Langue(ref='0') /param=ref;
model edu3(ref='2')= Langue /link=glogit rsquare;
weight pond / norm;
where model=1;
run;
With the following output:
Analysis of Maximum Likelihood Estimates | |||||||
---|---|---|---|---|---|---|---|
Parameter | edu3 | DF | Estimate | Standard Error |
Wald Chi-Square |
Pr > ChiSq | |
Intercept | 0 | 1 | -0.7505 | 0.0134 | 3131.3792 | <.0001 | |
Intercept | 1 | 1 | 0.1590 | 0.0103 | 236.5849 | <.0001 | |
Langue | 1 | 0 | 1 | -0.0533 | 0.0841 | 0.4021 | 0.5260 |
Langue | 1 | 1 | 1 | -0.2527 | 0.0677 | 13.9402 | 0.0002 |
Langue | 2 | 0 | 1 | 1.5045 | 0.0729 | 426.1495 | <.0001 |
Langue | 2 | 1 | 1 | 0.2267 | 0.0773 | 8.6057 | 0.0034 |
In addition to this, I would like to have reverse parameters (I mean edu3=2 vs other) and their p values. I think I can do it manually (but maybe I'm wrong), for example, for langue=1, by doing -(-0.0533+-0.2527) to get the parameter for edu3=2 compared to other categories. However, with this method, I don't get p values. Is there a way to produce this automacially in the output?
That implies that you want to model a logit defined as log[ Pr(Edu3=2)/(1-Pr(Edu3=2) ]. To do this, simply create a new response variable: new=(edu3=2); and fit a binary logistic model using it as the response.
That is what I tried.
data edu.educationClean;
set edu.educationClean;
HIGH=0;
if edu3=2 then HIGH=1;
run;
proc logistic data=edu.educationClean;
class Langue(ref='0') /param=ref;
model HIGH(ref='0')= Langue /link=glogit rsquare;
weight pond / norm;
where model=1;
run;
It gives this output:
SAS Output
Analysis of Maximum Likelihood Estimates | |||||||
---|---|---|---|---|---|---|---|
Parameter | HIGH | DF | Estimate | Standard Error |
Wald Chi-Square |
Pr > ChiSq | |
Intercept | 1 | 1 | -0.4974 | 0.00963 | 2667.2291 | <.0001 | |
Langue | 1 | 1 | 1 | 0.1913 | 0.0616 | 9.6420 | 0.0019 |
Langue | 2 | 1 | 1 | -0.7824 | 0.0675 | 134.4464 | <.0001 |
Which is not what I expected as parameters. From the multinomial outputs, in my mind, the parameter for edu3=2 when langue=1 should be -(-0.0533+-0.2527)=0.306. However, it is 0.1913 when using a binomial regression. Maybe something is wrong with my reasoning.
The generalized logit model you fit originaly is:
l0=log(p0/p2)=int0+lang01+lang02
l1=log(p1/p2)=int1+lang11+lang12
You now fit the model l2=log(p2/(p0+p1))=int+lang1+lang2.
When lang=1, under that first model:
l0=int0+lang01
l1=int1+lang11
And in the second model:
l2=int+lang1
Algebraically, I don't see that -(lang01+lang11) as you want to do, gets you to the lang1 parameter in the second model.
So there is no way to get log(p2/(p0+p1)) directly from the multinomial logit parameters?
My reasoning was the following:
In a binomial logit, when we change the reference category of the modelized variable, parameters for explainatory variables are just the negative. For example, in my binomial logit, if the reference category were 1 rather than 0, then parameter for langue=1 would be -(0.1913). So I though it was the same for a multinomial logit. Maybe, obviously, I'm wrong.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.