options ls = 80 nodate ; data illustrate ; input id interlocks assets ; assets2 = assets/1000 ; cards ; 1 87 147670 2 107 133000 3 94 113230 4 48 85418 5 66 75477 6 69 40742 7 46 40140 8 16 26866 9 77 24500 10 6 23700 11 18 23482 12 29 21512 13 36 20780 14 20 18688 15 13 18286 16 6 17910 17 31 17784 18 27 16631 19 23 16458 20 13 15280 21 32 15140 22 28 14362 23 4 14163 24 42 13820 25 17 13787 ; proc print data = illustrate ; run ; proc genmod data = illustrate ; model interlocks = assets2 / dist = poisson link = log type3 ; output out = rillustrate p = pred resdev = rdev stdresdev = strdev resraw = rawres reschi = rchisq leverage = hat cooksd = cook ; run ; data rillustrate ; set rillustrate ; devfct = 2*( interlocks*log(interlocks/pred) - (interlocks -pred) ) ; rdev2 = rdev**2 ; chisqfct = (interlocks -pred)**2/pred ; rchisq2 = rchisq**2 ; loglike = interlocks*log(pred) - pred ; fullloglike = interlocks*log(pred) - pred -lfact(interlocks) ; run ; proc print noobs ; var assets2 interlocks pred rawres rdev rchisq rdev2 devfct chisqfct rchisq2 ; run ; proc means sum data = rillustrate ; var devfct rchisq2 loglike fullloglike ; run ;