* Andersen data on Blue Collar worker satisfaction X Supervisor's Satisfaction; * This shows how to compute the dissimlarity index; options ls=80 nocenter nodate; data sat; input manager $ super $ worker $ count; label manager='Quality of management' super ='Supervisors Satisfaction' worker='Bule Collar Workers Satisfaction'; cards; Bad Low Low 103 Bad Low High 87 Bad High Low 32 Bad High High 42 Good Low Low 59 Good Low High 109 Good High Low 78 Good High High 205 ; proc sort; by manager; proc genmod order=data; class manager super worker; model count = manager super worker manager*super manager*worker /link=log dist=poi obstats; output out=pred_ci pred=mwms_ci; title 'Conditional Independence: (MS,MW)'; run; proc genmod order=data data=sat ; class manager super worker; model count = manager super worker manager*super manager*worker worker*super /link=log dist=poi obstats; output out=pred_ha pred=mwms_ha; title 'Homogeneous Association: (MS,MW,SW)'; run; data all; merge pred_ci pred_ha; d_ci=abs(count-mwms_ci)/(2*715); d_ha=abs(count-mwms_ha)/(2*715); * Note 715 is the total number of observations (counts) which I got by looking at the output; run; proc corr; var count; with mwms_ci mwms_ha; title 'Correlation between observed and fitted: (MS,MW) & (MS,MW,SW)'; proc means sum; var count d_ci d_ha; title 'Here are the dissimilarity indices for Blue Collar Worker Example'; run; ;