log using choice_binary_revised.log, replace use choice_binary.dta set more off list job age school gender regress job age school gender predict p_lpm, xb regress job age school gender, robust logit job age school gender predict p_logit, p mfx compute *dlogit2 job age school gender logistic job age school gender predict p_logistic, p mfx compute probit job age school gender predict p_probit, p mfx compute *dprobit job age school gender list p_lpm p_probit p_logit p_logistic * WLS gen sigi = sqrt(p_lpm*(1-p_lpm)) gen job1 = job/sigi gen age1 = age/sigi gen school1 = school/sigi gen gender1 = gender/sigi gen sigi_inv = 1/sigi regress job1 age1 school1 gender1 sigi_inv, noconst regress job age school gender [aw = 1/sigi] wls0 job age school gender, wvar(sigi) type(abse) noconst graph wls0 job age school gender, wvar(sigi) type(e2) noconst graph /* WLS: example of Greene chapter 12 */ use http://www.ats.ucla.edu/stat/stata/examples/greene/TBL5-1, clear rename x1 age rename x2 income rename x3 exp rename x4 ownrent rename x5 selfemp generate incomesq = income^2 drop if exp==0 save chapter12, replace /* summary check */ gen age1 = age / income^0.5 gen income1 = income / income^0.5 gen exp1 = exp / income^0.5 gen ownrent1 = ownrent / income^0.5 gen selfemp1 = selfemp / income^0.5 gen incomesq1 = incomesq / income^0.5 gen const1 = 1 / income^0.5 wls0 exp age ownrent income incomesq , wvar(income) type(abse) noconst /* 12.3a */ regress exp age ownrent income incomesq [aw = 1/income] regress exp1 age1 ownrent1 income1 incomesq1 const1, noconstant regress exp1 age1 ownrent1 income1 incomesq1 /* end of checkup */ log close