The following five examples show how to estimate different types of Tobit models (see Types of Tobit Models). Output 22.6.1 through Output 22.6.5 show the results of the corresponding programs.
Type 1 Tobit
data a1; keep y x; do i = 1 to 500; x = rannor( 19283 ); u = rannor( 19283 ); yl = 1 + 2 * x + u; if ( yl > 0 ) then y = yl; else y = 0; output; end; run;
/*-- Type 1 Tobit --*/ proc qlim data=a1 method=qn; model y = x; endogenous y ~ censored(lb=0); run;
Binary Data |
Model Fit Summary | |
---|---|
Number of Endogenous Variables | 1 |
Endogenous Variable | y |
Number of Observations | 500 |
Log Likelihood | -554.17696 |
Maximum Absolute Gradient | 4.65556E-7 |
Number of Iterations | 9 |
Optimization Method | Quasi-Newton |
AIC | 1114 |
Schwarz Criterion | 1127 |
Parameter Estimates | |||||
---|---|---|---|---|---|
Parameter | DF | Estimate | Standard Error | t Value | Approx Pr > |t| |
Intercept | 1 | 0.942734 | 0.056784 | 16.60 | <.0001 |
x | 1 | 2.049571 | 0.066979 | 30.60 | <.0001 |
_Sigma | 1 | 1.016571 | 0.039035 | 26.04 | <.0001 |
Type 2 Tobit
data a2; keep y1 y2 x1 x2; do i = 1 to 500; x1 = rannor( 19283 ); x2 = rannor( 19283 ); u1 = rannor( 19283 ); u2 = rannor( 19283 ); y1l = 1 + 2 * x1 + 3 * x2 + u1; y2l = 3 + 4 * x1 - 2 * x2 + u1*.2 + u2; if ( y1l > 0 ) then y1 = 1; else y1 = 0; if ( y1l > 0 ) then y2 = y2l; else y2 = 0; output; end; run;
/*-- Type 2 Tobit --*/ proc qlim data=a2 method=qn; model y1 = x1 x2 / discrete; model y2 = x1 x2 / select(y1=1); run;
Binary Data |
Model Fit Summary | |
---|---|
Number of Endogenous Variables | 2 |
Endogenous Variable | y1 y2 |
Number of Observations | 500 |
Log Likelihood | -476.12328 |
Maximum Absolute Gradient | 8.30075E-7 |
Number of Iterations | 17 |
Optimization Method | Quasi-Newton |
AIC | 968.24655 |
Schwarz Criterion | 1002 |
Parameter Estimates | |||||
---|---|---|---|---|---|
Parameter | DF | Estimate | Standard Error | t Value | Approx Pr > |t| |
y2.Intercept | 1 | 3.066992 | 0.106903 | 28.69 | <.0001 |
y2.x1 | 1 | 4.004874 | 0.072043 | 55.59 | <.0001 |
y2.x2 | 1 | -2.079352 | 0.087544 | -23.75 | <.0001 |
_Sigma.y2 | 1 | 0.940559 | 0.039321 | 23.92 | <.0001 |
y1.Intercept | 1 | 1.017140 | 0.154975 | 6.56 | <.0001 |
y1.x1 | 1 | 2.253080 | 0.256097 | 8.80 | <.0001 |
y1.x2 | 1 | 3.305140 | 0.343695 | 9.62 | <.0001 |
_Rho | 1 | 0.292992 | 0.210073 | 1.39 | 0.1631 |
Type 3 Tobit
data a3; keep y1 y2 x1 x2; do i = 1 to 500; x1 = rannor( 19283 ); x2 = rannor( 19283 ); u1 = rannor( 19283 ); u2 = rannor( 19283 ); y1l = 1 + 2 * x1 + 3 * x2 + u1; y2l = 3 + 4 * x1 - 2 * x2 + u1*.2 + u2; if ( y1l > 0 ) then y1 = y1l; else y1 = 0; if ( y1l > 0 ) then y2 = y2l; else y2 = 0; output; end; run;
/*-- Type 3 Tobit --*/ proc qlim data=a3 method=qn; model y1 = x1 x2 / censored(lb=0); model y2 = x1 x2 / select(y1>0); run;
Binary Data |
Model Fit Summary | |
---|---|
Number of Endogenous Variables | 2 |
Endogenous Variable | y1 y2 |
Number of Observations | 500 |
Log Likelihood | -838.94087 |
Maximum Absolute Gradient | 9.71691E-6 |
Number of Iterations | 16 |
Optimization Method | Quasi-Newton |
AIC | 1696 |
Schwarz Criterion | 1734 |
Parameter Estimates | |||||
---|---|---|---|---|---|
Parameter | DF | Estimate | Standard Error | t Value | Approx Pr > |t| |
y2.Intercept | 1 | 3.081206 | 0.080121 | 38.46 | <.0001 |
y2.x1 | 1 | 3.998361 | 0.063734 | 62.73 | <.0001 |
y2.x2 | 1 | -2.088280 | 0.072876 | -28.66 | <.0001 |
_Sigma.y2 | 1 | 0.939799 | 0.039047 | 24.07 | <.0001 |
y1.Intercept | 1 | 0.981975 | 0.067351 | 14.58 | <.0001 |
y1.x1 | 1 | 2.032675 | 0.059363 | 34.24 | <.0001 |
y1.x2 | 1 | 2.976609 | 0.065584 | 45.39 | <.0001 |
_Sigma.y1 | 1 | 0.969968 | 0.039795 | 24.37 | <.0001 |
_Rho | 1 | 0.226281 | 0.057672 | 3.92 | <.0001 |
Type 4 Tobit
data a4; keep y1 y2 y3 x1 x2; do i = 1 to 500; x1 = rannor( 19283 ); x2 = rannor( 19283 ); u1 = rannor( 19283 ); u2 = rannor( 19283 ); u3 = rannor( 19283 ); y1l = 1 + 2 * x1 + 3 * x2 + u1; y2l = 3 + 4 * x1 - 2 * x2 + u1*.2 + u2; y3l = 0 - 1 * x1 + 1 * x2 + u1*.1 - u2*.5 + u3*.5; if ( y1l > 0 ) then y1 = y1l; else y1 = 0; if ( y1l > 0 ) then y2 = y2l; else y2 = 0; if ( y1l <= 0 ) then y3 = y3l; else y3 = 0; output; end; run;
/*-- Type 4 Tobit --*/ proc qlim data=a4 method=qn; model y1 = x1 x2 / censored(lb=0); model y2 = x1 x2 / select(y1>0); model y3 = x1 x2 / select(y1<=0); run;
Binary Data |
Model Fit Summary | |
---|---|
Number of Endogenous Variables | 3 |
Endogenous Variable | y1 y2 y3 |
Number of Observations | 500 |
Log Likelihood | -1128 |
Maximum Absolute Gradient | 0.0000161 |
Number of Iterations | 21 |
Optimization Method | Quasi-Newton |
AIC | 2285 |
Schwarz Criterion | 2344 |
Parameter Estimates | |||||
---|---|---|---|---|---|
Parameter | DF | Estimate | Standard Error | t Value | Approx Pr > |t| |
y2.Intercept | 1 | 2.894656 | 0.076079 | 38.05 | <.0001 |
y2.x1 | 1 | 4.072704 | 0.062675 | 64.98 | <.0001 |
y2.x2 | 1 | -1.901163 | 0.076874 | -24.73 | <.0001 |
_Sigma.y2 | 1 | 0.981655 | 0.039564 | 24.81 | <.0001 |
y3.Intercept | 1 | 0.064594 | 0.179441 | 0.36 | 0.7189 |
y3.x1 | 1 | -0.938384 | 0.096570 | -9.72 | <.0001 |
y3.x2 | 1 | 1.035798 | 0.123104 | 8.41 | <.0001 |
_Sigma.y3 | 1 | 0.743124 | 0.038240 | 19.43 | <.0001 |
y1.Intercept | 1 | 0.987370 | 0.067861 | 14.55 | <.0001 |
y1.x1 | 1 | 2.050408 | 0.060819 | 33.71 | <.0001 |
y1.x2 | 1 | 2.982190 | 0.072552 | 41.10 | <.0001 |
_Sigma.y1 | 1 | 1.032473 | 0.040971 | 25.20 | <.0001 |
_Rho.y1.y2 | 1 | 0.291587 | 0.053436 | 5.46 | <.0001 |
_Rho.y1.y3 | 1 | -0.031665 | 0.260057 | -0.12 | 0.9031 |
Type 5 Tobit
data a5; keep y1 y2 y3 x1 x2; do i = 1 to 500; x1 = rannor( 19283 ); x2 = rannor( 19283 ); u1 = rannor( 19283 ); u2 = rannor( 19283 ); u3 = rannor( 19283 ); y1l = 1 + 2 * x1 + 3 * x2 + u1; y2l = 3 + 4 * x1 - 2 * x2 + u1*.2 + u2; y3l = 0 - 1 * x1 + 1 * x2 + u1*.1 - u2*.5 + u3*.5; if ( y1l > 0 ) then y1 = 1; else y1 = 0; if ( y1l > 0 ) then y2 = y2l; else y2 = 0; if ( y1l <= 0 ) then y3 = y3l; else y3 = 0; output; end; run;
/*-- Type 5 Tobit --*/ proc qlim data=a5 method=qn; model y1 = x1 x2 / discrete; model y2 = x1 x2 / select(y1>0); model y3 = x1 x2 / select(y1<=0); run;
Binary Data |
Model Fit Summary | |
---|---|
Number of Endogenous Variables | 3 |
Endogenous Variable | y1 y2 y3 |
Number of Observations | 500 |
Log Likelihood | -734.50612 |
Maximum Absolute Gradient | 3.57134E-7 |
Number of Iterations | 20 |
Optimization Method | Quasi-Newton |
AIC | 1495 |
Schwarz Criterion | 1550 |
Parameter Estimates | |||||
---|---|---|---|---|---|
Parameter | DF | Estimate | Standard Error | t Value | Approx Pr > |t| |
y2.Intercept | 1 | 2.887523 | 0.095193 | 30.33 | <.0001 |
y2.x1 | 1 | 4.078926 | 0.069623 | 58.59 | <.0001 |
y2.x2 | 1 | -1.898898 | 0.086578 | -21.93 | <.0001 |
_Sigma.y2 | 1 | 0.983059 | 0.039987 | 24.58 | <.0001 |
y3.Intercept | 1 | 0.071764 | 0.171522 | 0.42 | 0.6757 |
y3.x1 | 1 | -0.935299 | 0.092843 | -10.07 | <.0001 |
y3.x2 | 1 | 1.039954 | 0.120697 | 8.62 | <.0001 |
_Sigma.y3 | 1 | 0.743083 | 0.038225 | 19.44 | <.0001 |
y1.Intercept | 1 | 1.067578 | 0.142789 | 7.48 | <.0001 |
y1.x1 | 1 | 2.068376 | 0.226020 | 9.15 | <.0001 |
y1.x2 | 1 | 3.157385 | 0.314743 | 10.03 | <.0001 |
_Rho.y1.y2 | 1 | 0.312369 | 0.177010 | 1.76 | 0.0776 |
_Rho.y1.y3 | 1 | -0.018225 | 0.234886 | -0.08 | 0.9382 |