*! version 3.0.0 4/9/92; Joseph Hilbe * 3X3 Unstratified Matched-Case Tests * Stuart-Maxwell statistic derived by Fliess and Everitt (1971) * Extended McNemar 3x3 test as modified by Maxwell (1970) program define mcc3i version 3.0 parse "`*'", parse(" ,") local n11 "`1'" local n12 "`2'" local n13 "`3'" local n21 "`4'" local n22 "`5'" local n23 "`6'" local n31 "`7'" local n32 "`8'" local n33 "`9'" confirm integer number `n11' confirm integer number `n12' confirm integer number `n13' confirm integer number `n21' confirm integer number `n22' confirm integer number `n23' confirm integer number `n31' confirm integer number `n32' confirm integer number `n33' if `n11'<0|`n12'<0|`n13'<0|`n21'<0|`n22'<0|`n23'<0|`n31'<0|`n32'<0|`n33'<0 { di in red "negative numbers invalid" exit 498 } mac shift mac shift mac shift mac shift mac shift mac shift mac shift mac shift mac shift local option "Level(integer $S_level) TB" parse "`*'" * Stuart-Maxwell 3x3 test local n_1 = `n11'+`n21'+`n31' local n_2 = `n12'+`n22'+`n32' local n_3 = `n13'+`n23'+`n33' local n1_ = `n11'+`n12'+`n13' local n2_ = `n21'+`n22'+`n23' local n3_ = `n31'+`n32'+`n33' local N = `n_1'+`n_2'+`n_3' local d1 = `n1_'-`n_1' local d2 = `n2_'-`n_2' local d3 = `n3_'-`n_3' #delimit ; local chiN =((`n23'+`n32')/2)*`d1'^2 + ((`n13'+`n31')/2)*`d2'^2 + ((`n12'+`n21')/2)*`d3'^2 ; local chiD =2*( ((`n12'+`n21')/2)*((`n13'+`n31')/2) + ((`n12'+`n21')/2)*((`n23'+`n32')/2) + ((`n13'+`n31')/2)*((`n23'+`n32')/2) ); #delimit cr local chi2 = `chiN'/`chiD' local chip = chiprob(2,`chi2') * Extended McNemar 3x3 extension local gr1= ((`n12'-`n21')^2)/(`n12'+`n21') local gr2= ((`n13'-`n31')^2)/(`n13'+`n31') local gr3= ((`n23'-`n32')^2)/(`n23'+`n32') local chiM=`gr1'+`gr2'+`gr3' local chipM= chiprob(3,`chiM') * Fleiss-Everitt Chi2 for ordered outcome variable local chi2oN = (`d1'-`d3')^2 local chi2oD = 2*((`n12'+`n21')/2+(4*((`n13'+`n31')/2))+(`n23'+`n32')/2) local chi2o = `chi2oN'/`chi2oD' local chiopre = chiprob(1,`chi2o') local chiopst = chiprob(2,`chi2o') * Screen output - Table di _n(1) in gr _col(34) "Controls" di in gr _col(9) "Cases | A B C | Total" di in gr _col(9) "-------+-------------------------------------+----------" di in gr _col(9) " A |" _col(18) %9.0g in ye `n11' _col(30) %9.0g `n12' _col(42) %9.0g `n13' in gr " |" _col(52) %9.0g in ye `n1_' di in gr _col(9) " B |" _col(18) %9.0g in ye `n21' _col(30) %9.0g `n22' _col(42) %9.0g `n23' in gr " |" _col(52) %9.0g in ye `n2_' di in gr _col(9) " C |" _col(18) %9.0g in ye `n31' _col(30) %9.0g `n32' _col(42) %9.0g `n33' in gr " |" _col(52) %9.0g in ye `n3_' di in gr _col(9) "-------+-------------------------------------+----------" di in gr _col(9) "Total |" _col(18) %9.0g in ye `n_1' _col(30) %9.0g `n_2' _col(42) %9.0g `n_3' in gr " |" _col(52) %9.0g in ye `N' * Screen output - Statistics #delimit ; di _n(1) _col(23) in gr "3X3 Matched Case-Control Tests"; di _n in gr " Stuart-Maxwell Chi2 = " in ye %9.2f `chi2' _col(40) in gr " Pr>chi2(2) = " in ye %9.4f `chip'; di _n in gr " Extend McNemar Chi2 = " in ye %9.2f `chiM' _col(40) in gr " Pr>chi2(3) = " in ye %9.4f `chipM'; di _n in gr " Fleiss-Everitt Chi2 = " in ye %9.2f `chi2o' _col(40) in gr " Pr>chi2(1) Pre = " in ye %9.4f `chiopre'; di in gr " (ordered cells)" _col(40) in gr " Pr>chi2(2) Post = " in ye %9.4f `chiopst'; #delimit cr di _n in gr " Summary Differences Between Cases and Controls" di in gr " Diff 1 = " in ye %7.0f `d1' di in gr " Diff 2 = " in ye %7.0f `d2' di in gr " Diff 3 = " in ye %7.0f `d3' end