/* Hypothetical example on sampling zeros from Fienberg (1980)*/ options ls=90 nocenter nodate; /* non-zero margin, bad patter of zeros */ data zeros; input X $ Y $ Z $ count @@; datalines; x1 y1 z1 0 x1 y1 z2 6 x1 y2 z1 5 x1 y2 z2 9 x2 y1 z1 16 x2 y1 z2 5 x2 y2 z1 7 x2 y2 z2 0 ; proc freq; weight count; tables Z*X*Y / chisq nocol nopct; run; proc sort; by X; /*saturated model */ proc genmod order=data; class X Y Z; model count = X Y Z X*Y X*Z Y*Z X*Y*Z /link=log dist=poi obstats; title 'Yaturated model: (XYZ)'; run; /* complete independence */ proc genmod order=data; class X Y Z; model count = X Y Z /link=log dist=poi obstats; title 'Complete independence model: (X,Y,Z)'; run; /* joint independence of (XY,Z) */ proc genmod order=data; class X Y Z; model count = X Y Z X*Y /link=log dist=poi obstats; title 'Joint Independence: (XY,Z)'; run; /* joint independence of (XZ,Y) */ proc genmod order=data; class X Y Z; model count = X Y Z X*Z /link=log dist=poi obstats; title 'Joint Independence: (XZ,Y)'; run; /* joint independence of (YZ,X) */ proc genmod order=data; class X Y Z; model count = X Y Z Y*Z /link=log dist=poi obstats; title 'Joint Independence: (YZ,X)'; run; /* conditional independence (XY,XZ) */ proc genmod order=data; class X Y Z; model count = X Y Z X*Y X*Z /link=log dist=poi obstats; title 'Conditional Independence: (XY,XZ)'; run; /* conditional independence (XY,YZ) */ proc genmod order=data; class X Y Z; model count = X Y Z X*Y Y*Z /link=log dist=poi obstats; title 'Conditional Independence: (XY,YZ)'; run; /* conditional independence (XZ, YZ) */ proc genmod order=data; class X Y Z; model count = X Y Z X*Z Y*Z /link=log dist=poi obstats; title 'Conditional Independence: (XZ, YZ)'; run; /* homogeneous associations */ proc genmod order=data ; class X Y Z; model count = X Y Z X*Y X*Z Z*Y /link=log dist=poi obstats; title 'Homogeneous Association': (XY,XZ,YZ); run; /*zero margin, bad patter of zeros */ data zeros; input X $ Y $ Z $ count @@; datalines; x1 y1 z1 0 x1 y1 z2 6 x1 y2 z1 5 x1 y2 z2 9 x2 y1 z1 0 x2 y1 z2 5 x2 y2 z1 16 x2 y2 z2 7 ; /* homogeneous associations */ proc genmod order=data ; class X Y Z; model count = X Y Z X*Y X*Z Z*Y /link=log dist=poi obstats; title 'Homogeneous Association with zero margin': (XY,XZ,YZ); run; /*delete zero values*/ data zeros1; set zeros; if count=0 then delete; run; /* homogeneous associations */ proc genmod order=data ; class X Y Z; model count = X Y Z X*Y X*Z Z*Y /link=log dist=poi obstats; title 'Homogeneous Association with zero margin': (XY,XZ,YZ); run; ;