The QLIM Procedure

Example 22.6 Types of Tobit Models

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;

Output 22.6.1: Type 1 Tobit

Binary Data

The QLIM Procedure

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;

Output 22.6.2: Type 2 Tobit

Binary Data

The QLIM Procedure

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;

Output 22.6.3: Type 3 Tobit

Binary Data

The QLIM Procedure

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;

Output 22.6.4: Type 4 Tobit

Binary Data

The QLIM Procedure

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;

Output 22.6.5: Type 5 Tobit

Binary Data

The QLIM Procedure

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