Here is one way to do it.
local depvar binvar1
local indepvars predvar1 predvar2 predvar3
* expand and check collinearity *
_rmdcoll `depvar' `indepvars', expand
local indepvars "`r(varlist)'"
* first order individual variables by best chi-squared *
gen chisq = .
gen vars = ""
local i = 1
foreach v in `indepvars' {
di "RUN: logistic `depvar' `v'"
quietly logistic `depvar' `v'
* check if variable is not omitted (constant and iv) *
if `e(rank)' < 2 {
di "OMITTED (rank < 2): `v'"
}
* check if chi-squared is > 0 *
else if `e(chi2)' <= 0 {
di "OMITTED (chi2 <= 0): `v'"
}
* store *
else {
quietly replace vars = "`v'" in `i'
quietly replace chisq = -e(chi2) in `i'
local ++i
di "ADDED: `v' (chi2: `e(chi2)')"
}
}
sort chisq
replace chisq = -chisq
l vars chisq if chisq < ., noobs