*! version 1.1.0 10/15/92 (STB-10: sg9.1) program define similari version 3.0 parse "`*'", parse(" ,") local d "`1'" local c "`2'" local b "`3'" local a "`4'" confirm integer number `a' confirm integer number `b' confirm integer number `c' confirm integer number `d' if `a'<0|`b'<0|`c'<0|`d'<0 { di in red "negative numbers invalid" exit 498 } mac shift mac shift mac shift mac shift local SUM = `a'+`b'+`c'+`d' local SUM0 = `b'+`c' local SUM1 = `a'+`d' local N_1 = `a'+`c' local N_2 = `b'+`d' local N1_ = `a'+`b' local N2_ = `c'+`d' * Anderberg's D local AD1n = max(`a',`b') + max(`c',`d')+ max(`a',`c') + max(`b',`d') local ADd = 2 * `SUM' local AD2n = max(`N_1',`N_2') + max(`N1_',`N2_') local AD = (`AD1n' - `AD2n') / `ADd' * Czekanowski local Cz = (2*`a') / (2*`a'+`SUM0') * Dispersion local D = ((`a'*`d')-(`b'*`c')) / `SUM'^2 * Hamann local H = (`SUM1'-`SUM0')/`SUM' * Jaccard local J = `a' /(`a'+`b'+`c') * Goodman and Krusal's Lambda local L = `AD1n'/`ADd' - `AD2n'/`ADd' * Matching local M = `SUM1'/`SUM' * Ochiai local O = sqrt((`a'/`N1_')*(`a'/`N_1')) * Pattern (difference also) * local PD = (`b'*`c')/`SUM'^2 * Phi 4-Point correlation local Phi4 = (`a'*`d' - `b'*`c') / sqrt(`N1_' * `N_1' * `N_2' * `N2_') * Russell and Rao similarity measure local RR = `a'/ `SUM' * Yule's Q local YQ = (`a'*`d' - `b'*`c') / (`a'*`d' + `b'*`c') * Yule's Y local YY = (sqrt(`a'*`d')-sqrt(`b'*`c'))/(sqrt(`a'*`d') + sqrt(`b'*`c')) * Odds ratio local ODD = (`a'*`d')/(`b'*`c') * Relative risk local RelR = (`a'*(`b'+`d'))/(`b'*(`a'+`c')) * Screen output - Table di in gr _col(12) "Similarity coefficients for 2 X 2 binary data" di _n(1) in gr _col(27) "Controls" di in gr _col(9) "Cases | 0 1 | Total" di in gr _col(9) "-------+--------------------------------+----------" di in gr _col(9) " 0 |" _col(18) %9.0g in ye `d' _col(30) %9.0g `c' in gr " |" _col(49) %9.0g in ye `N2_' di in gr _col(9) " 1 |" _col(18) %9.0g in ye `b' _col(30) %9.0g `a' in gr " |" _col(49) %9.0g in ye `N1_' di in gr _col(9) "-------+--------------------------------+----------" di in gr _col(9) "Total |" _col(18) %9.0g in ye `N_2' _col(30) %9.0g `N_1' in gr " |" _col(49) %9.0g in ye `SUM' di _n di in gr " Proximity measures" _col(40) " Conditional probability measure" di in gr "Czekanowski = " in ye %9.4f `Cz' in gr _col(40) "Hamann = " in ye %9.4f `H' di in gr "Dispersion = " in ye %9.4f `D' di in gr "Jaccard = " in ye %9.4f `J' in gr _col(40) " Predictability measures" di in gr "Match % = " in ye %9.4f `M' in gr _col(40) "Anderbergs D = " in ye %9.4f `AD' di in gr "Ochiai = " in ye %9.4f `O' in gr _col(40) "G & K Lambda = " in ye %9.4f `L' di in gr "Phi 4-point = " in ye %9.4f `Phi4' in gr _col(40) "Yules Q = " in ye %9.4f `YQ' di in gr "Russell & Rao = " in ye %9.4f `RR' in gr _col(40) "Yules Y (colligation)= " in ye %9.4f `YY' di in gr _n "Odds ratio = " in ye %9.4f `ODD' in gr _col(40) "Relative risk = " in ye %9.4f `RelR' end