/* Hypothetical example on sampling zeros from Fienberg (1980)*/ options ls=90 nocenter nodate; /* zero margin */ data zero_margin; 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 ; proc freq data=zero_margin; weight count; tables Z*X*Y / chisq nocol nopct; run; /* homogeneous associations */ proc genmod data=zero_margin order=data ; class X Y Z; model count = X Y Z X*Y X*Z Z*Y /link=log dist=poi; title 'Homogeneous Association with zero margin'; run; /* complete independence */ proc genmod data=zero_margin order=data; class X Y Z; model count = X Y Z /link=log dist=poi; title 'Complete independence model with zero margin'; run; /*delete zero values*/ data zero_del; set zero_margin; if count=0 then delete; run; /* homogeneous associations */ proc genmod data=zero_del order=data ; class X Y Z; model count = X Y Z X*Y X*Z Z*Y /link=log dist=poi; title 'Homogeneous Association with zeros deleted'; run; /* complete independence */ proc genmod data=zero_del order=data; class X Y Z; model count = X Y Z /link=log dist=poi; title 'Complete independence with zeros deleted'; run; /*saturated model */ proc genmod data=zero_margin order=data; class X Y Z; model count = X Y Z X*Y X*Z Y*Z X*Y*Z /link=log dist=poi; title 'Saturated model: (XYZ)'; run;