*! version 3.1.1 13/10/93 (sg29: STB-23) program define smri version 3.1 parse "`*'", parse(" ,") local o "`1'" local e "`2'" confirm integer number `o' confirm number `e' if `o'<0 | `e'<0 { di in red "negative numbers invalid" exit 498 } mac shift mac shift local options "Level(integer $S_level)" parse "`*'" if `level'<10 | `level'>99 { di in red "level() invalid" exit 198 } quietly { local obslbl " Obs" local explbl " Exp" noisily di in gr _col(51) "-- Poisson Exact --" #delimit ; noisily di in gr _col(13) "| `obslbl' `explbl' O/E (%)" _col(51) "[`level'% Conf. Interval]" _n "------------+" _dup(61) "-" ; #delimit cr _crccip `o' `level' local l=100*($S_1/`e') local u=100*($S_2/`e') local r=100*(`o'/`e') if(`o'==0 & `e'!=0) { local mark "+" } local star "" local p 1 if `l'>100 { local p = gammap(`o',`e')} else if `u'<100 { local p = 1-gammap(`o'+1,`e')} if `p'<.0005 { local star "***" } else if `p'<.005 { local star "**" } else if `p'<.025 { local star "*" } #delimit ; noisily di in gr _col(13) "| " in yel %8.0f `o' _col(24) %9.4f `e' _col(35) %9.1f `r' "`star'" _col(51) %7.0f `l' _col(60) %7.0f `u' in gr "`mark'" ; #delimit cr } di _n if "`mark'"!="" { di in gr "(+) one-tail, " 100-(100-`level')/2 /* */ "% confidence interval" } if "`star'"=="*" {di in gr "(*) Twice 1-sided p<.05"} if "`star'"=="**" { di in gr "(**) Twice 1-sided p<.01"} if "`star'"=="***" { di in gr "(***) Twice 1-sided p<.001"} end