*! version 1.2.0 13 September 1993 RG STB-17: sg21 program define equimi version 3.1 * enter control group first: n mean sd n mean sd[, delta() sdelta2() Random] local options "Delta(string) SDelta(string) Random" parse "`*'", parse(" ,") local n1 `1' local u1 `2' local sd1 `3' cap confirm number `5' if _rc!=0 { local u2 `4' mac shift 4 parse "`*'" if "`random'"!="" { di in red "random not allowed in this situation" exit 198 } if "`delta'"=="" { local d1=.2*`u1' } else if "`delta'"!="" { if substr("`delta'",-1,.)=="%" { local leng=length("`delta'") local dp=real(substr("`delta'",1,`leng'-1))/100 local d1=`dp'*`u1' } else { local d1=real("`delta'") } } if "`sdelta'"=="" { local d2 `d1' } else if substr("`sdelta'",-1,.)=="%" { local leng2=length("`sdelta'") local dp2=real(substr("`sdelta'",1,`leng2'-1))/100 local d2=`dp2'*`u1' } else { local d2=real("`sdelta'") } local se1=`sd1'/sqrt(`n1') local t1= ((`u1' - `u2') - (-`d1'))/ `se1' local t2= ((`u1' - `u2') - `d2')/ `se1' local CI1 = (`u1')-(invnorm(.95)*`se1') local CI2 = (`u1')+(invnorm(.95)*`se1') qui cii `n1' `u1' `sd1', level(90) local CI1a=$S_5 local CI2a=$S_6 di "Westlake version of test of Equivalence w/delta fixed and known:" di " test1: "%9.3f `t1' _skip(3) "normal p-value: "%6.4f /* */ round(1-normprob(abs(`t1')),.0001) _skip(3) "t p-value: "%6.4f /* */ round(tprob(`n1'-1,`t1'),.0001) di " test2: "%9.3f `t2' _skip(3) "normal p-value: "%6.4f /* */ round(1-normprob(abs(`t2')),.0001) _skip(3) "t p-value: "%6.4f /* */ round(tprob(`n1'-1,`t2'),.0001) di " Confidence Interval: Lower Limit"%14.3f `CI1' _skip(2) /* */ "Upper Limit "%9.3f `CI2' di "t-Confidence Interval: Lower Limit"%14.3f `CI1a' _skip(2) /* */ "Upper Limit "%9.3f `CI2a' di "Equivalence Criteria (-/+ (s)delta)"%13.3f `u2'-`d1' _skip(14) %9.3f `u2'+`d2' di "" di "t-test:" ttesti `n1' `u1' `sd1' `u2' di "" di "standard confidence interval:" cii `n1' `u1' `sd1' exit } local n2 `4' local u2 `5' local sd2 `6' mac shift 6 parse "`*'" if "`delta'"=="" { local d1=.2*`u1' } else if "`delta'"!="" { if substr("`delta'",-1,.)=="%" { local leng=length("`delta'") local dp=real(substr("`delta'",1,`leng'-1))/100 local d1=`dp'*`u1' } else { local d1=real("`delta'") } } if "`sdelta'"=="" { local d2 `d1' } else if substr("`sdelta'",-1,.)=="%" { local leng2=length("`sdelta'") local dp2=real(substr("`sdelta'",1,`leng2'-1))/100 local d2=`dp2'*`u1' } else { local d2=real("`sdelta'") } if "`random'"=="" { local se1 = (sqrt(((((`n1' - 1) * `sd1'^2) + /* */ ((`n2' - 1) * `sd2'^2)) / (`n1' + `n2' - 2)) * ((1/`n1')+(1/`n2')))) local t1= ((`u1' - `u2') - (-`d1'))/ `se1' local t2= ((`u1' - `u2') - `d2')/ `se1' local CI1 = (`u1' - `u2')-(invnorm(.95)*`se1') local CI1a = (`u1' - `u2')-(invt(`n1'+`n2'-2,.95)*`se1') local CI2 = (`u1' - `u2')+(invnorm(.95)*`se1') local CI2a = (`u1' - `u2')+(invt(`n1'+`n2'-2,.95)*`se1') di "Westlake version of test of Equivalence w/delta fixed and known:" di " test1: "%9.3f `t1' _skip(3) "normal p-value: "%6.4f /* */ round(1-normprob(abs(`t1')),.0001) _skip(3) "t p-value: "%6.4f /* */ round(tprob(`n1'+`n2'-2,`t1'),.0001) di " test2: "%9.3f `t2' _skip(3) "normal p-value: "%6.4f /* */ round(1-normprob(abs(`t2')),.0001) _skip(3) "t p-value: "%6.4f /* */ round(tprob(`n1'+`n2'-2,`t2'),.0001) di " Confidence Interval: Lower Limit"%14.3f `CI1' _skip(2) /* */ "Upper Limit "%9.3f `CI2' di "t-Confidence Interval: Lower Limit"%14.3f `CI1a' _skip(2) /* */ "Upper Limit "%9.3f `CI2a' } else if "`random'"!="" { local pct=`d1'/`u1' local se3 = (((sqrt(((((`n1' - 1) * `sd1'^2) + /* */ ((`n2' - 1) * `sd2'^2)) / (`n1' + `n2' - 2)))) * /* */ (sqrt((((1 + `pct')^2)/`n1') + (1/`n2'))))) local t3 = ((`u1' - `u2') - (-`d1'))/ `se3' local t4 = ((`u1' - `u2') - (`d2'))/ `se3' local CI3 = (`u1' - `u2')-(invnorm(.95)*`se3') local CI3a = (`u1' - `u2')-(invt(`n1'+`n2'-2,.95)*`se3') local CI4 = (`u1' - `u2')+(invnorm(.95)*`se3') local CI4a = (`u1' - `u2')+(invt(`n1'+`n2'-2,.95)*`se3') di "Westlake version of test of Equivalence w/delta random and unknown:" di " test3: "%9.3f `t3' _skip(3) "normal p-value: "%6.4f /* */ round(1-normprob(abs(`t3')),.0001) _skip(3) "t p-value: "%6.4f /* */ round(tprob(`n1'+`n2'-2,`t3'),.0001) di " test4: "%9.3f `t4' _skip(3) "normal p-value: "%6.4f /* */ round(1-normprob(abs(`t4')),.0001) _skip(3) "t p-value: "%6.4f /* */ round(tprob(`n1'+`n2'-2,`t4'),.0001) di " Confidence Interval: Lower Limit"%14.3f `CI3' _skip(2) /* */ "Upper Limit "%9.3f `CI4' di "t-Confidence Interval: Lower Limit"%14.3f `CI3a' _skip(2) /* */ "Upper Limit "%9.3f `CI4a' } di "Equivalence Interval (-/+ (s)delta)" %13.3f -`d1' _skip(14) %9.3f `d2' di "" di "t-test" ttesti `n1' `u1' `sd1' `n2' `u2' `sd2' local sdt=sqrt((((`n1'-1)*`sd1'^2)+((`n2'-1)*`sd2'^2))/(`n1'+`n2'-2)) local CIt1=(`u1'-`u2')+(invt(`n1'+`n2'-2,.05)*`sdt'*sqrt((1/`n1')+(1/`n2'))) local CIt2=(`u1'-`u2')+(invt(`n1'+`n2'-2,.95)*`sdt'*sqrt((1/`n1')+(1/`n2'))) di "" di "confidence interval: Lower Limit "%13.3f `CIt1' _skip(2) /* */ "Upper Limit "%13.3f `CIt2' di "" local T=(`u1'-`u2'-((`d1'+`d2')/2))/(`sdt'*sqrt((1/`n1')+(1/`n2'))) local DEL=((`d2'-`d1')/2)/(`sdt'*sqrt((1/`n1')+(1/`n2'))) if (abs(`T')-`DEL')<0 { local T1=.5*tprob(`n1'-1,abs(`T')-`DEL') } else { local T1=1-(.5*tprob(`n1'-1,abs(`T')-`DEL')) } if (-(abs(`T'))-`DEL')<0 { local T2=.5*tprob(`n2'-1,(-(abs(`T')))-`DEL') } else { local T2=1-(.5*tprob(`n2'-1,(-(abs(`T')))-`DEL')) } local PV=`T1'-`T2' di "H-A p-value: "%7.4f `PV' end