*! overlapi -- Calculate the overlapping coefficient (sg27: STB-22) *! version 1.1.0 14 August 1993 R. Goldstein program define overlapi version 3.0 confirm number `1' confirm number `2' confirm number `3' * confirm number `4' local mean1=min(`1',`2') local mean2=max(`1',`2') if `mean1'==`1' { local sd1 `3' local sd2 `4' } else { local sd1 `4' local sd2 `3' } local numb1 `5' local numb2 `6' noi di "MLE of overlap:" cap confirm number `5' if _rc==0 { #del ; noi di " Variances equal: " %6.4f 2*normprob(-(abs(`mean1'-`mean2'))/ (2*(((`numb1'-1)*`sd1'^2)+(`numb2'-1)*`sd2'^2)/(`numb1'+`numb2'-2))) _skip(5) "Dissimilarity Index=1-OVL: "%6.4f 1-2*normprob(-(abs(`mean1'-`mean2'))/ (2*(((`numb1'-1)*`sd1'^2)+(`numb2'-1)*`sd2'^2)/(`numb1'+`numb2'-2))) ; #del cr } cap confirm number `4' if _rc!=0 { #del ; noi di " Variances equal: " %6.4f 2*normprob(-(abs(`mean1'-`mean2'))/ (2*`sd1')) _skip(5) "Dissimilarity Index=1-OVL: "%6.4f 1-2*normprob(-(abs(`mean1'-`mean2'))/(2*`sd1')) ; #del cr exit } #del ; local XA=(((`mean1'*(`sd2'^2))-(`mean2'*(`sd1'^2))) + ((`sd1'*`sd2') * sqrt(((`mean1'-`mean2')^2) + ((`sd2'^2-`sd1'^2)*ln(`sd2'^2/`sd1'^2)))))/(`sd2'^2-`sd1'^2) ; local XB=(((`mean1'*(`sd2'^2))-(`mean2'*(`sd1'^2))) - ((`sd1'*`sd2') * sqrt(((`mean1'-`mean2')^2) + ((`sd2'^2-`sd1'^2)*ln(`sd2'^2/`sd1'^2)))))/(`sd2'^2-`sd1'^2) ; #del cr * if min(`XA',`XB')<0 { local X1=min(`XA',`XB') local X2=max(`XA',`XB') * } * else { * local X1=max(`XA',`XB') * local X2=min(`XA',`XB') * } #del ; local OVL = normprob((`X1'-`mean1')/`sd1') + normprob((`X2'-`mean2')/`sd2') - normprob((`X1'-`mean2')/`sd2') - normprob((`X2'-`mean1')/`sd1') + 1 ; #del cr if `OVL'>1 { local OVL=1-mod(`OVL',1) } noi di " Variances UNequal: " %6.4f `OVL' _skip(5) /* */ "Dissimilarity Index=1-OVL: "%6.4f 1-`OVL' end