In this example the data are generated such that the selection variable is discrete and the variable Y is truncated from below by zero. The program follows, with the results shown in Output 22.5.1:
data trunc; keep z y x1 x2; do i = 1 to 500; x1 = rannor( 19283 ); x2 = rannor( 19283 ); u1 = rannor( 19283 ); u2 = rannor( 19283 ); zl = 1 + 2 * x1 + 3 * x2 + u1; y = 3 + 4 * x1 - 2 * x2 + u1*.2 + u2; if ( zl > 0 ) then z = 1; else z = 0; if y>=0 then output; end; run;
/*-- Sample Selection with Truncation --*/ proc qlim data=trunc method=qn; model z = x1 x2 / discrete; model y = x1 x2 / select(z=1) truncated(lb=0); run;
Output 22.5.1: Sample Selection with Truncation
Binary Data |
Model Fit Summary | |
---|---|
Number of Endogenous Variables | 2 |
Endogenous Variable | z y |
Number of Observations | 379 |
Log Likelihood | -344.10722 |
Maximum Absolute Gradient | 4.95535E-6 |
Number of Iterations | 17 |
Optimization Method | Quasi-Newton |
AIC | 704.21444 |
Schwarz Criterion | 735.71473 |
Parameter Estimates | |||||
---|---|---|---|---|---|
Parameter | DF | Estimate | Standard Error | t Value | Approx Pr > |t| |
y.Intercept | 1 | 3.014158 | 0.128548 | 23.45 | <.0001 |
y.x1 | 1 | 3.995671 | 0.099599 | 40.12 | <.0001 |
y.x2 | 1 | -1.972697 | 0.096385 | -20.47 | <.0001 |
_Sigma.y | 1 | 0.923428 | 0.047233 | 19.55 | <.0001 |
z.Intercept | 1 | 0.949444 | 0.190265 | 4.99 | <.0001 |
z.x1 | 1 | 2.163928 | 0.288384 | 7.50 | <.0001 |
z.x2 | 1 | 3.134213 | 0.379251 | 8.26 | <.0001 |
_Rho | 1 | 0.494356 | 0.176542 | 2.80 | 0.0051 |
In the following statements the data are generated such that the selection variable is discrete and the variable is censored from below by zero. The results are shown in Output 22.5.2.
data cens; keep z y x1 x2; do i = 1 to 500; x1 = rannor( 19283 ); x2 = rannor( 19283 ); u1 = rannor( 19283 ); u2 = rannor( 19283 ); zl = 1 + 2 * x1 + 3 * x2 + u1; yl = 3 + 4 * x1 - 2 * x2 + u1*.2 + u2; if ( zl > 0 ) then z = 1; else z = 0; if ( yl > 0 ) then y = yl; else y = 0; output; end; run;
/*-- Sample Selection with Censoring --*/ proc qlim data=cens method=qn; model z = x1 x2 / discrete; model y = x1 x2 / select(z=1) censored(lb=0); run;
Output 22.5.2: Sample Selection with Censoring
Binary Data |
Model Fit Summary | |
---|---|
Number of Endogenous Variables | 2 |
Endogenous Variable | z y |
Number of Observations | 500 |
Log Likelihood | -399.78508 |
Maximum Absolute Gradient | 2.30443E-6 |
Number of Iterations | 19 |
Optimization Method | Quasi-Newton |
AIC | 815.57015 |
Schwarz Criterion | 849.28702 |
Parameter Estimates | |||||
---|---|---|---|---|---|
Parameter | DF | Estimate | Standard Error | t Value | Approx Pr > |t| |
y.Intercept | 1 | 3.074276 | 0.111617 | 27.54 | <.0001 |
y.x1 | 1 | 3.963619 | 0.085796 | 46.20 | <.0001 |
y.x2 | 1 | -2.023548 | 0.088714 | -22.81 | <.0001 |
_Sigma.y | 1 | 0.920860 | 0.043278 | 21.28 | <.0001 |
z.Intercept | 1 | 1.013610 | 0.154081 | 6.58 | <.0001 |
z.x1 | 1 | 2.256922 | 0.255999 | 8.82 | <.0001 |
z.x2 | 1 | 3.302692 | 0.342168 | 9.65 | <.0001 |
_Rho | 1 | 0.350776 | 0.197093 | 1.78 | 0.0751 |