// program drop _all // mata: mata clear program orse, rclass *! orse 1.1.0 CFBaum 17oct2007 * 1.1.0: modified to refer to eststo rather than discontinued esto syntax [,ADD(string) ] version 9.2 if "`e(cmd)'" ~= "logit" & "`e(cmd)'" ~= "ologit" { error 301 } if "`add'" != "" { capture which estadd if _rc == 111 { di as error "You must install estadd to use add( )" exit 198 } capture which eststo if _rc == 111 { di as error "You must install eststo to use add( )" exit 198 } } tempname b v se mat `b' = e(b) local k = e(df_m) mat `v' = e(V) mata: orse(`k') local col: colnames `b' local col: subinstr local col "_cons" " ", all local row: rownames `b' mat colnames or = `col' mat rownames or = `row' mat colnames orse = `col' mat rownames orse = `row' di _n "OR, ORse stored in matrices or, orse" if "`add'" != "" { estadd matrix or = or estadd matrix orse = orse eststo `add' di _n "You may tabulate these estimates with " di "estout `add', cells(or orse(par)) style(fixed) drop(_cons)" _n } end mata: void orse(real scalar k) { b = st_matrix("e(b)") v = st_matrix("e(V)") or = exp(b[|1,1 \ 1,k|]) dv = sqrt(diagonal(v[|1,1 \ k,k|]))' orse = or :* dv st_matrix("or",or) st_matrix("orse",orse) } end