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

Dear SASusers,

I spent several hours to search in the manual and on the web the formula to back transform the eBLUP from the proc GLIMMIX, see the code below.

Any ideas are welcome.

proc glimmix data=pocheNG asycov  ;

class site;

model surv(event ='1') =  site /s dist = binary link = probit noint ;

random intercept /s subject = male ;

random _residual_ ; *to fit an overdispersion ;

/**output out = a1 /ALLSTAT  ; **/

ods output solutionR = BLUP ;

run ;

I know that i could have the eBLUP in the original scale from the "output statment"... but i will need this formula later.

QUESTION 1 : How could i back transform the eBLUP estimation in the probit scale to the original scale ?

Thanks you,

Jb

1 ACCEPTED SOLUTION

Accepted Solutions
SteveDenham
Jade | Level 19

To get from the probit scale to the probability scale, you could use the CDF function.

eblup_prob_scale=CDF('NORMAL', eblup_probit_value);

Steve Denham

View solution in original post

4 REPLIES 4
SteveDenham
Jade | Level 19

Look up the ILINK option to the OUTPUT statement.  Something like:

output out=a1 pred(blup ilink)=predicted;

This should give an eblup for every observation in the dataset.

However, I want to ask if your dataset is sorted by "male".  I assume that it is a numeric id.

Steve Denham

Eisa
Calcite | Level 5

Dear Steve,

First of all, Yes, "male" is an numeric id and it was sorted by this variable.

Second, thanks you for the tips about the "ilink" option, but as mentioned before i just need the  formula... My problem was more about mathematic rather than programming in SAS my wish. It was to back transform EBLUP in a proc IML program. I found an elegant solution, I use a logit link which is fairy similar to probit link but the reverse formula is much easier to calculate.

Cheers,

jb

SteveDenham
Jade | Level 19

To get from the probit scale to the probability scale, you could use the CDF function.

eblup_prob_scale=CDF('NORMAL', eblup_probit_value);

Steve Denham

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
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
  • 4 replies
  • 1922 views
  • 0 likes
  • 2 in conversation