/*********************************************** SAS EXAMPLE -- FREQUENCY TABULATIONS FOR MATCHED OR RELATED CATEGORICAL VARIABLES. MCNEMAR'S TEST OF SYMMETRY COHEN'S KAPPA. FILENAME: MATCHFREQ.SAS ***********************************************/ OPTIONS NODATE PAGENO=1 FORMDLIM=" "; TITLE; *------------------------MCNEMAR'S TEST FOR MATCHED PROSPECTIVE DATA; PROC FORMAT; VALUE AGEFMT 1 = "YOUNG" 2 = "MEDIUM" 3 = "MATURE"; VALUE CHOLFMT 0 = "LOW" 1 = "HIGH"; VALUE PILLFMT 1 = "NO PILL" 2 = "PILL"; VALUE WTFMT 1 = "LOW" 2 = "MEDIUM" 3 = "HIGH"; VALUE HIAGEFMT 0 = "YOUNG+MEDIUM" 1 = "MATURE"; RUN; DATA WERNER; INFILE "C:\TEMP\LABDATA\WERNER2.DAT"; INPUT ID $ 1-4 AGE 5-8 HT 9-12 WT 4. PILL 4. CHOL 4. ALB 25-28 1 CALC 29-32 1 URIC 33-36 1 PAIR 37-39; IF HT = 999 THEN HT=.; IF WT = 999 THEN WT=.; IF ALB = 99 THEN ALB=.; IF CALC= 99 THEN CALC=.; IF URIC= 99 THEN URIC=.; IF AGE NOT=. THEN DO; IF AGE <= 27 THEN AGEGROUP=1; IF AGE > 27 AND AGE <= 39 THEN AGEGROUP=2; IF AGE > 39 THEN AGEGROUP=3; IF AGE <= 39 THEN HIAGE=0; IF AGE > 39 THEN HIAGE=1; END; IF CHOL >= 400 OR CHOL < 100 THEN CHOL=.; IF CHOL < 240 AND CHOL NE . THEN HICHOL=0; IF CHOL >= 240 THEN HICHOL=1; IF WT NOT=. THEN DO; IF WT <= 120 THEN WTCAT=1; IF WT > 120 AND WT <= 137 THEN WTCAT=2; IF WT > 137 THEN WTCAT=3; END; RUN; DATA NOPILL; SET WERNER(KEEP=ID PAIR PILL AGE HICHOL WTCAT); IF PILL=1; RENAME ID=ID1 AGE=AGE1 HICHOL=HICHOL1 WTCAT=WTCAT1; RUN; DATA PILL; SET WERNER(KEEP=ID PAIR PILL AGE HICHOL WTCAT); IF PILL=2; RENAME ID=ID2 AGE=AGE2 HICHOL=HICHOL2 WTCAT=WTCAT2; RUN; PROC SORT DATA=NOPILL; BY PAIR; RUN; PROC SORT DATA=PILL; BY PAIR; RUN; DATA PAIRS; MERGE NOPILL PILL; BY PAIR; RUN; PROC FREQ DATA=PAIRS; TABLES HICHOL1* HICHOL2 / AGREE; FORMAT HICHOL1 HICHOL2 CHOLFMT.; TITLE "McNemar's Test for Matched Data: From Werner"; RUN; PROC FREQ DATA=PAIRS; TABLES WTCAT1*WTCAT2/AGREE NOCOL NOROW; FORMAT WTCAT1 WTCAT2 WTFMT.; TITLE "More Than 2 Categories"; RUN; *----------------------------------------------MATCHED CASE-CONTROL STUDY; PROC FORMAT; VALUE BEAUTFMT 1="1: Beautician" 2="2: NonBeautician"; DATA STUDY2; INPUT CONTBEAUT CASEBEAUT COUNT; CARDS; 1 1 0 1 2 1 2 1 6 2 2 169 ; PROC FREQ DATA=STUDY2; TABLES CASEBEAUT * CONTBEAUT / AGREE; WEIGHT COUNT; FORMAT CASEBEAUT CONTBEAUT BEAUTFMT.; TITLE "Matched Pair Design to Study the Risk of Lung Cancer"; TITLE2 "Among Beauticians: Table From Selvin"; RUN; *------------------------------COMPARISON OF TWO EXPERIMENTAL METHODS; DATA STUDY3; INPUT BELL $ KATOKATZ $ COUNT; CARDS; + + 184 + - 54 - + 14 - - 63 ; PROC FREQ DATA=STUDY3; TABLES BELL*KATOKATZ/ AGREE NOROW NOCOL; WEIGHT COUNT; TITLE "Comparison of Bell vs Kato Methods for Detecting Schistosoma Mansoni Eggs"; TITLE2 "315 Samples Examined Using Two Methods"; RUN; *------------------------------COHEN'S KAPPA FOR INTER-RATER RELIABILITY; DATA GRADERS; INPUT CAND EXAMINRA EXAMINRB; CARDS; 1 1 2 2 0 0 3 0 0 4 2 2 5 0 0 6 4 3 7 0 0 8 0 0 9 0 0 10 2 3 11 1 2 12 2 3 13 0 1 14 4 3 15 4 3 16 1 2 17 0 2 18 1 2 19 2 3 20 0 0 21 2 3 22 4 4 23 0 0 24 0 0 25 4 3 26 0 2 27 1 2 28 3 4 29 2 3 ; PROC FREQ DATA=GRADERS; TABLES EXAMINRA * EXAMINRB / AGREE NOCOL NOROW NOPERCENT; EXACT AGREE; TITLE "KAPPA AND WEIGHTED KAPPA: AGREEMENT FOR 2 RATERS"; TITLE2 "SCALE IS ORDINAL: WEIGHTED KAPPA IS APPROPRIATE"; TITLE3 "DATA FROM HAND ET AL"; RUN;