* Version: September 2013 * Alejandro Lopez-Feldman * Division de Economia * Centro de Investigacion y docencia economicas, CIDE * lopezfeldman@gmail.com program doubleb version 11 if replay() {`"`e(cmd)'"' !="double") error 301 Replay `0' } else Estimate `0' end program Estimate, eclass sortpreserve syntax varlist (min=4) [if] [in] [fweight pweight] [, Level(cilevel) noCONStant] if "`weight'" != " " { local wgt "[`weight' `exp']" } marksample touse gettoken lhs1 rhs0: varlist gettoken lhs2 rhs1: rhs0 gettoken lhs3 rhs2: rhs1 gettoken lhs4 rhs3: rhs2 local lhs `lhs1' `lhs2' `lhs3' `lhs4' tempvar check qui gen `check' = 1 if `touse' qui replace `check' = 0 if `lhs3'==0 & `lhs2'<`lhs1' & `touse' qui replace `check' = 0 if `lhs3'==1 & `lhs2'>`lhs1' & `touse' qui sum `check', meanonly if r(mean)>0 { di as err "There is an inconsistency in at least one of your observations." di as err "Check for situations where the response to the first question is yes but the second bid is lower than the first" di as err "or for situations where the response to the first question is no but the second bid is higher than the first." di as err "After solving this issue try the command again." exit 498 } ml model lf doubleb_ll /// (Beta: `lhs' = `rhs3' , `constant' ) (Sigma:) /// `wgt' if `touse', maximize ereturn local lhs1 `lhs1' ereturn local lhs2 `lhs2' ereturn local lhs3 `lhs3' ereturn local lhs4 `lhs4' ereturn local cmd doubleb Replay, level(`level') end program Replay syntax [, Level(cilevel)] ml display, level(`level') di _n as txt "First-Bid Variable:" as res _col(33) e(lhs1) di as txt "Second-Bid Variable:" as res _col(33) e(lhs2) di as txt "First-Response Dummy Variable:" as res _col(33) e(lhs3) di as txt "Second-Response Dummy Variable:" as res _col(33) e(lhs4) end