Stata/Tobit and Selection Models
< Stata
Censoring
editWe observe the full marginal distribution of x but we only observe the distribution of y above or below a given threshold.
clear set obs 1000 gen u = invnorm(uniform()) gen x = invnorm(uniform()) gen y = x + u su replace y=0 if y < 0 su hist y
#delimit ; tw (sc y x, m(Oh) msize(small) ) (sc ycens x , m(Oh) msize(small) ) (lfit y x, lw(thick)) (lfit ycens x, lw(thick)) ; #delimit cr
Estimation :
eststo clear eststo : reg y x eststo : tobit y x , ll(0) esttab , se
We can also have a two limit tobit model :
*** Data Generating Process *** clear set obs 1000 gen u = invnorm(uniform()) gen x = invnorm(uniform()) gen y = x + u su replace y=-2 if y < -2 replace y=2 if y > 2 su hist y *** Estimation *** eststo clear eststo : reg y x eststo : tobit y x , ll(-2) ul(2) esttab , se
Truncation
editWe only observe the distribution of x and y if y is above or below a given threshold.
clear set obs 1000 gen u = invnorm(uniform()) gen x = invnorm(uniform()) gen y = x + u replace y = . if y > 0 /* drop some observations*/ eststo clear eststo : reg y x eststo : truncreg y x , ul(0) esttab , se
Selection Models
editheckman estimates the Heckman selection model.
clear set obs 1000 gen u = invnormal(uniform()) gen v = 1 + u + invnormal(uniform()) gen x = invnormal(uniform()) gen z = invnormal(uniform()) gen d = (1 + x + z + v > 0) gen ystar = 1 + x + u gen y = ystar if d heckman y x, select(d = z x) test x = 1