preserve
reg srh i.country [pweight = weight]
predict means, xb
predict semeans, stdp
gen loci = means - 1.96 * semeans
gen hici = means + 1.96 * semeans
keep if pickone
egen order_ = rank(-means), unique
labmask order_, value(country) decode
twoway (dot means order_) (rcap loci hici order_) ///
, legend(off) xlab(1/29, valuelabels ang(v)) ///
ylabel(, format(%6.1f)) ///
ytitle("Self-rated health") ///
xtitle("") ///
note(`"Note: SRH ranges from 0 ("poor") to 4 ("excellent")"', span)
restore

preserve
logit srh_bin i.country [pweight = weight]
predict lr_index, xb
predict se_index, stdp
generate p_hat = exp(lr_index)/(1+exp(lr_index)) // Predicted probabilities
// (following http://www.stata.com/support/faqs/...)
gen lb = lr_index - invnormal(0.975)*se_index
gen ub = lr_index + invnormal(0.975)*se_index
gen plb = exp(lb)/(1+exp(lb))
gen pub = exp(ub)/(1+exp(ub))
replace p_hat = p_hat * 100
replace plb = plb * 100
replace pub = pub * 100
keep if pickone
egen order_ = rank(p_hat), unique
labmask order_, value(country) decode
twoway (dot p_hat order_) (rcap plb pub order_) ///
, legend(off) xlab(1/29, valuelabels ang(v)) ///
ylabel(, format(%6.0f)) ///
ytitle("% Poor health") xtitle("")