/*Siskel and Ebert data for Cohen's kappa */ /* Loglinear models for matched pairs*/ options ls=90 nocenter nodate; data movies; input siskel $ ebert $ count ; /*create indicator variables for each diagonal cell*/ icon=0; if siskel='con' AND ebert='con' THEN icon=1; imixed=0; if siskel='mixed' AND ebert='mixed' THEN imixed=1; ipro=0; if siskel='pro' AND ebert='pro' THEN ipro=1; symm=0; if siskel=ebert='con' THEN symm=1; if siskel=ebert='mixed' THEN symm=2; if siskel=ebert='pro' THEN symm=3; if siskel='mixed' AND ebert='con' THEN symm=4; if siskel='con' AND ebert='mixed' THEN symm=4; if siskel='mixed' AND ebert='pro' THEN symm=5; if siskel='pro' AND ebert='mixed' THEN symm=5; if siskel='con' AND ebert='pro' THEN symm=6; if siskel='pro' AND ebert='con' THEN symm=6; datalines; con con 24 con mixed 8 con pro 13 mixed con 8 mixed mixed 13 mixed pro 11 pro con 10 pro mixed 9 pro pro 64 ; proc freq; weight count; tables siskel*ebert / agree chisq; run; /*independence*/ proc genmod data=movies order=data; class siskel ebert; model count=siskel ebert / link=log dist=poisson lrci type3 obstats; title "Independence Model"; run; /*quasi-independence*/ proc genmod data=movies order=data; class siskel ebert; model count=siskel ebert icon imixed ipro/ link=log dist=poisson lrci type3 obstats; title "Quasi-Independence Model"; run; /*symmetry*/ proc genmod data=movies order=data; class symm; model count=symm/ link=log dist=poisson lrci type3 obstats; title "Symmetry Model"; run; /*quasi-symmetry*/ proc genmod data=movies order=data; class siskel ebert symm; model count=siskel ebert symm/ link=log dist=poisson lrci type3 obstats; title "Quasi-Symmetry Model"; run;