capture program drop svyttest program define svyttest *! v 1.1 gmh sep 21 2004 syntax varlist, BY(varname) [SUBPOP(string) ] di " " qui svyset local pweight "`r(pweight)'" local strata "`r(strata)'" local psu "`r(psu)'" if "`weight'"=="" { local weight "" } if "`strata'"=="" { local strata "" } if "`psu'"=="" { local psu "" } *** make the display header di in gr "Survey mean t-tests" di " " di in gr "pweight: " in ye _col(10) "`pweight'" di in gr "Strata: " in ye _col(10) "`strata'" di in gr "PSU: " in ye _col(10) "`psu'" di in gr "by: " in ye _col(10) "`by'" di " " if `"`subpop'"'~="" { di in gr "Subpopulation:" _col(20) in ye `"`subpop'"' in gr local sub = `"subpop(`subpop')"' } di " " tempvar byvar egen `byvar' = group(`by') qui replace `byvar' = `byvar'-1 ** assume by is numeric qui sum `by' if `byvar'==0, meanonly local lab0 : label (`by') `r(mean)' qui sum `by' if `byvar'==1, meanonly local lab1 : label (`by') `r(mean)' di in gr "Variable " _col(30) "Overall" _col(45) "`lab0'" _col(60) "`lab1'" _col(75) "p-value" di in gr _dup(80) "-" tempname mn0 mn1 pval mn foreach v of local varlist { qui svymean `v', `sub' matrix `mn' = e(est) *mat l `mn' qui svyreg `v' `byvar', `sub' local varlab: variable label `v' if "`varlab'"=="" { local varlab "`v'" } scalar `mn0' = _b[_cons] scalar `mn1' = _b[_cons] + _b[`byvar'] scalar `pval'= normprob(-abs(_b[`byvar'] / _se[`byvar']))*2 di in gr "`varlab' " in ye _col(30) `mn'[1,1] _col(45) scalar(`mn0') _col(60) scalar(`mn1') _col(75) %5.4f scalar(`pval') in gr } di in gr _dup(80) "-" di " " end