I am trying to determine if there is possibility unmeasured bias in my model. I have a continuous dep variable and binary ind variable which is TREATED (0/1). I want to determine if I have unmeasured bias. I don't have proc qlim so I need to create an inverse Mills ratio and run it through a GLM.
I first create a PROBIT model and output the estimated probabilities (prob) of being treated.
Next, I calculate the Inverse Mills Ratio:
IMR = pdf('NORMAL', prob ) / cdf('NORMAL', prob ); /*inverse mills ratio*/
Then run my GLM:
proc glm data = weighted_PS;
class RHS;
model LHS = RHS IMR/ ss3 solution;
weight weights;
run;
Is this correct?
You are correct that PROC QLIM is the most efficient, accurate and simplest way to accomplish Heckman's 2-step estimator.
You will need to correct your standard errors in your second stage. See the QLIM documentation. SAS/ETS(R) 13.2 User's Guide
You might just want to use PROC REG with some HCCME= options to correct your standard errors. SAS/STAT(R) 9.2 User's Guide, Second Edition
But you are close as is.
You are correct that PROC QLIM is the most efficient, accurate and simplest way to accomplish Heckman's 2-step estimator.
You will need to correct your standard errors in your second stage. See the QLIM documentation. SAS/ETS(R) 13.2 User's Guide
You might just want to use PROC REG with some HCCME= options to correct your standard errors. SAS/STAT(R) 9.2 User's Guide, Second Edition
But you are close as is.
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!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.