/* file: ~jpreisse/DIA/UI/diag_uigee_ind.sas */ /* date: 06/28/03 */ /* name: John Preisser */ /* what: Logitstic Regression Diagnostics for UI data using GEE macro */ /* Program shows that same diagnostics can be obtained using GEE macro */ /* as compared to PROC LOGISTIC for independent data */ /* input data files: ~/home/projects/gts/DG/UI.dat */ *filename geed "/home/faculty/jpreisse/DIA/geedia_100.mac"; filename geed "diag100.sas"; options fmtsearch=(work.format, formats.formats, fmt.format); *options ls=72 ps=58 Mprint; options ls=72 ps=58; data UI; input pract_id doct_id pat_id bothered female ageyrs age weekacc dayacc severe toilet mdage dobs rit hit; cards; 8 230 1 1 1 77 0.1 49 7 3 8 34 0.00056 0.338 0.031 8 230 2 0 1 82 0.6 7 1 1 3 34 0.00044 -0.263 0.02 8 230 3 1 1 78 0.2 49 7 3 6 34 0.00091 0.389 0.037 24 240 4 0 1 87 1.1 2 0.286 2 6 50 0.00034 -0.341 0.024 24 251 5 0 1 78 0.2 14 2 2 4 49 0.00141 -0.58 0.027 27 288 6 0 1 79 0.3 7 1 2 4 43 0.00012 -0.461 0.022 27 289 7 1 1 90 1.4 105 15 4 20 41 0.00011 0.039 0.004 27 289 8 0 0 77 0.1 65 9.286 1 10 41 0.17844 -3.329 0.083 27 289 9 0 1 84 0.8 21 3 2 4 41 0.00039 -0.575 0.025 27 289 10 1 1 77 0.1 104 14.857 2 15 41 0.00025 0.075 0.009 41 18 11 0 0 89 1.3 42 6 2 5 45 0.04405 -1.338 0.114 41 18 12 0 1 88 1.2 42 6 2 3 45 0.01111 -0.854 0.083 41 23 13 0 1 83 0.7 14 2 3 10 41 0.01354 -1.014 0.068 41 23 14 1 1 79 0.3 5 0.714 2 6 41 0.02098 2.059 0.018 45 72 15 0 0 79 0.3 1 0.143 1 5 40 0.00204 -0.399 0.065 45 72 16 0 1 77 0.1 7 1 2 5 40 0.0009 -0.521 0.021 45 72 17 1 1 77 0.1 10 1.429 3 7 40 0.01256 1.057 0.05 45 72 18 0 1 79 0.3 4 0.571 2 7 40 0.00057 -0.498 0.015 55 815 19 1 1 83 0.7 1 0.143 2 3 37 0.02599 3.098 0.017 55 815 20 0 1 79 0.3 4 0.571 2 4 37 0.00161 -0.424 0.018 56 813 21 0 1 78 0.2 21 3 2 4 45 0.00342 -0.705 0.029 56 813 22 1 1 83 0.7 14 2 2 4 45 0.01203 2.043 0.017 56 813 23 0 1 79 0.3 7 1 2 6 45 0.00092 -0.514 0.015 60 80 24 0 1 82 0.6 4 0.571 2 8 42 0.00075 -0.475 0.019 60 80 25 0 1 80 0.4 14 2 3 6 42 0.006 -0.905 0.039 60 80 26 1 1 77 0.1 42 6 3 5 42 0.00274 0.483 0.049 60 80 27 1 1 79 0.3 63 9 4 12 42 0.00008 0.132 0.015 60 80 28 0 1 79 0.3 7 1 1 5 42 0.00048 -0.324 0.023 60 80 29 0 1 78 0.2 2 0.286 2 4 42 0.00063 -0.415 0.021 60 80 30 1 0 82 0.6 7 1 2 10 42 0.0464 1.195 0.121 65 196 31 0 1 83 0.7 1 0.143 2 5 66 0.00016 -0.359 0.014 65 196 32 0 1 76 0 4 0.571 2 5 66 0.00077 -0.496 0.027 65 196 33 0 1 77 0.1 3 0.429 2 4 66 0.00047 -0.441 0.023 89 263 34 0 1 78 0.2 14 2 2 4 50 0.00149 -0.58 0.025 89 263 35 0 0 89 1.3 14 2 2 3 50 0.00577 -0.551 0.094 89 263 36 1 1 78 0.2 21 3 3 5 50 0.00982 0.896 0.05 89 265 37 0 1 86 1 1 0.143 2 8 44 0.00067 -0.382 0.028 102 390 38 1 0 76 0 21 3 4 12 46 0.00421 0.263 0.063 102 390 39 0 1 86 1 14 2 2 4 46 0.00017 -0.442 0.027 102 390 40 0 1 78 0.2 7 1 2 4 46 0.00018 -0.477 0.022 102 390 41 0 1 76 0 7 1 2 6 46 0.00049 -0.569 0.029 102 390 42 0 1 78 0.2 42 6 3 10 46 0.04046 -2.621 0.035 107 294 43 1 1 81 0.5 14 2 4 10 41 0.01289 0.615 0.109 107 294 44 0 1 77 0.1 21 3 2 20 41 0.26256 -1.723 0.265 107 294 45 1 1 84 0.8 91 13 2 6 41 0.00094 0.222 0.043 108 292 46 0 1 78 0.2 42 6 2 5 50 0.01369 -1.335 0.051 108 292 47 0 1 91 1.5 42 6 2 8 50 0.01699 -1.01 0.119 108 292 48 0 1 84 0.8 7 1 2 10 50 0.00067 -0.537 0.041 108 292 49 0 1 80 0.4 7 1 2 4 50 0.00014 -0.446 0.018 111 172 50 1 1 78 0.2 21 3 4 15 60 0.00089 0.349 0.089 111 172 51 1 1 82 0.6 28 4 2 5 60 0.00669 1.267 0.023 113 309 52 1 1 82 0.6 14 2 2 8 45 0.00841 1.593 0.02 113 309 53 1 1 83 0.7 42 6 3 6 45 0.00133 0.561 0.046 118 352 54 1 1 89 1.3 63 9 2 10 62 0.00151 0.463 0.094 118 352 55 1 1 80 0.4 8 1.143 2 10 62 0.01617 1.58 0.039 118 352 56 1 0 78 0.2 70 10 3 10 62 0.00001 0.12 0.011 118 352 57 1 1 77 0.1 42 6 3 7 62 0.0004 0.433 0.036 124 382 58 0 1 78 0.2 1 0.143 2 5 60 0.00043 -0.426 0.02 124 382 59 1 1 80 0.4 105 15 4 6 60 0.00004 0.058 0.007 124 382 60 0 1 84 0.8 14 2 2 5 60 0.00052 -0.499 0.017 124 382 61 0 1 83 0.7 14 2 1 5 60 0.00027 -0.344 0.022 125 384 62 0 0 83 0.7 2 0.286 3 2 45 0.01483 -0.687 0.135 125 384 63 0 1 78 0.2 3 0.429 1 5 45 0.00033 -0.3 0.02 125 384 64 1 0 76 0 2 0.286 2 6 45 0.04486 1.389 0.103 125 384 65 0 1 77 0.1 21 3 2 4 45 0.00296 -0.729 0.032 125 384 66 0 1 78 0.2 21 3 1 6 45 0.00242 -0.523 0.044 125 384 67 0 1 77 0.1 2 0.286 3 4 45 0.00493 -0.644 0.059 125 384 68 1 0 84 0.8 35 5 2 6 45 0.00903 0.726 0.074 125 384 69 1 1 81 0.5 70 10 2 7 45 0.00172 0.341 0.051 127 751 70 0 1 78 0.2 21 3 1 5 49 0.00068 -0.496 0.042 127 751 71 0 1 79 0.3 7 1 1 10 49 0.00043 -0.424 0.048 127 751 72 0 1 80 0.4 25 3.571 3 8 49 0.01234 -1.369 0.04 127 751 73 0 1 83 0.7 14 2 2 5 49 0.00025 -0.516 0.015 130 381 74 0 1 86 1 14 2 2 10 46 0.00382 -0.61 0.055 132 341 75 1 1 82 0.6 30 4.286 1 6 63 0.02571 1.704 0.045 132 341 76 0 1 76 0 21 3 2 10 63 0.01474 -1.041 0.058 132 341 77 0 1 78 0.2 3 0.429 1 3 63 0.00036 -0.27 0.02 137 248 78 0 1 78 0.2 3 0.429 1 4 58 0.00008 -0.284 0.02 137 248 79 0 1 79 0.3 3 0.429 2 8 58 0.00057 -0.512 0.021 137 248 80 0 1 88 1.2 1 0.143 2 4 58 0.00012 -0.288 0.023 137 248 81 0 1 77 0.1 14 2 2 5 58 0.00124 -0.633 0.026 146 164 82 1 1 83 0.7 2 0.286 2 10 . 0.02864 2.068 0.038 146 164 83 0 1 84 0.8 2 0.286 2 4 . 0.0011 -0.339 0.018 146 164 84 1 0 80 0.4 35 5 2 8 . 0.00256 0.57 0.075 153 20 85 1 1 82 0.6 11 1.571 2 11 64 0.02207 1.474 0.054 156 2 86 1 1 82 0.6 63 9 2 5 41 0.00015 0.478 0.063 156 2 87 1 1 85 0.9 7 1 2 5 41 0.01436 2.519 0.019 156 2 88 1 1 84 0.8 5 0.714 1 5 41 0.03416 3.861 0.016 182 396 89 0 0 85 0.9 39 5.571 2 6 40 0.03594 -1.488 0.079 182 396 90 1 0 77 0.1 28 4 2 6 40 0.01165 0.696 0.089 182 396 91 0 1 78 0.2 14 2 2 6 40 0.00113 -0.646 0.018 182 396 92 0 1 85 0.9 1 0.143 1 5 40 0.00008 -0.224 0.014 182 396 93 1 1 76 0 28 4 2 7 40 0.00849 0.928 0.041 182 396 94 0 1 83 0.7 2 0.286 2 4 40 0.00029 -0.35 0.016 185 400 95 1 1 85 0.9 28 4 2 8 38 0.0062 1.194 0.035 185 400 96 1 1 80 0.4 42 6 2 8 38 0.00107 0.682 0.034 185 400 97 1 1 85 0.9 117 16.714 3 8 38 0.00003 0.067 0.005 185 400 98 1 1 80 0.4 78 11.143 2 5 38 0.00001 0.294 0.046 185 400 99 1 1 78 0.2 21 3 2 5 38 0.00575 1.345 0.024 195 410 100 1 0 77 0.1 12 1.714 2 5 45 0.02756 1.148 0.098 195 410 101 0 0 78 0.2 1 0.143 1 4 45 0.00216 -0.392 0.06 195 410 102 0 1 79 0.3 7 1 1 6 45 0.00064 -0.342 0.022 201 747 103 0 1 78 0.2 1 0.143 2 6 35 0.00056 -0.449 0.019 201 747 104 0 1 83 0.7 1 0.143 1 12 35 0.00094 -0.349 0.055 206 225 105 0 1 80 0.4 35 5 2 3 43 0.00564 -0.922 0.049 206 225 106 0 1 82 0.6 2 0.286 2 7 43 0.00017 -0.426 0.016 206 225 107 0 0 86 1 21 3 2 2 43 0.0063 -0.702 0.101 206 225 108 0 1 77 0.1 2 0.286 2 8 43 0.00076 -0.532 0.031 207 183 109 0 1 86 1 28 4 2 6 59 0.002 -0.727 0.033 207 183 110 0 1 81 0.5 28 4 2 5 59 0.00187 -0.816 0.022 207 183 111 0 0 87 1.1 7 1 2 6 59 0.003 -0.57 0.082 208 746 112 0 1 86 1 14 2 2 3 53 0.00063 -0.419 0.027 208 746 113 0 1 81 0.5 28 4 1 6 53 0.00234 -0.574 0.045 211 9 114 1 1 81 0.5 42 6 3 6 42 0.00114 0.524 0.037 211 9 115 1 1 79 0.3 28 4 3 8 42 0.00203 0.649 0.036 211 9 116 0 1 89 1.3 21 3 1 6 42 0.00216 -0.36 0.041 211 9 117 1 1 87 1.1 42 6 2 8 42 0.00705 0.865 0.063 216 11 118 0 1 87 1.1 1 0.143 2 8 59 0.0006 -0.369 0.026 216 11 119 0 1 85 0.9 20 2.857 2 4 59 0.00106 -0.541 0.021 216 11 120 1 1 88 1.2 21 3 3 7 59 0.02229 1.13 0.08 216 11 121 0 1 86 1 1 0.143 2 4 59 0.00021 -0.308 0.015 220 32 122 0 1 79 0.3 1 0.143 4 4 70 0.03166 -0.878 0.154 220 32 123 1 1 76 0 49 7 3 6 70 0.00113 0.364 0.039 220 32 124 0 1 85 0.9 5 0.714 2 4 70 0.00039 -0.356 0.016 220 32 125 0 1 87 1.1 28 4 2 3 70 0.00337 -0.598 0.046 220 32 126 1 1 81 0.5 21 3 2 6 70 0.00491 1.411 0.013 228 274 127 0 1 87 1.1 7 1 2 6 35 0.00087 -0.392 0.027 228 274 128 1 1 78 0.2 56 8 2 4 35 0.00508 0.535 0.072 228 274 129 0 1 86 1 2 0.286 1 3 35 0.0001 -0.2 0.013 232 497 130 0 1 81 0.5 3 0.429 3 6 34 0.00511 -0.644 0.046 232 497 131 1 0 82 0.6 70 10 3 9 34 0.00002 0.145 0.013 232 497 132 1 0 87 1.1 49 7 3 7 34 0.0009 0.344 0.052 232 497 133 1 0 79 0.3 28 4 2 5 34 0.01024 0.786 0.083 235 129 134 0 1 85 0.9 1 0.143 3 3 51 0.00472 -0.453 0.058 235 129 135 1 1 84 0.8 35 5 1 3 51 0.04094 1.864 0.059 235 129 136 0 1 76 0 1 0.143 2 10 51 0.00675 -0.596 0.056 235 129 137 1 1 76 0 35 5 2 6 51 0.00494 0.806 0.05 ; /*********************************************/ /* THIS PART WILL USE GENMOD TO FIND DFBETAS */ /*********************************************/ data UI; set UI; inter=1; *if pat_id in (8,44,122) then delete; /***********************************/ /* IF MISSING THEN DELETE */ /***********************************/ if (bothered=. | female=. |age=. | dayacc=. | severe=. | toilet=.) then delete; run; proc sort data=UI; by pat_id; run; /******************************************************************************/ /* THIS PART OF THE SAS CODE OUTPUTS RESIDUAL VALUES USED TO CALCULATE DFBETA */ /******************************************************************************/ /* ods output covB=covB ObStats=ObStats ParameterEstimates=ParameterEstimates; proc genmod data=UI descending; model bothered = female age dayacc severe toilet/ dist=bin link=logit r covB; output out=gencook stdresdev=stdresdev resdev=resdev stdxbeta=stdxbeta reschi=reschi stdreschi=stdreschi; run; */ /******************************************************************************/ /* THIS PART OF THE SAS CODE USES PROC LOGISTIC TO CALCULATE THE DFBETAS */ /******************************************************************************/ proc logistic data=UI descending; model bothered = female age dayacc severe toilet; output out=logcook cbar=cbar dfbeta=_all_ H=H; run; data logcook2; set logcook; cookdobs = round(cbar/6,.00001); run; /******************************************************************************/ /* THIS PART OF THE SAS CODE PRINTS OUT THE DFBETAS GIVEN BY PROC LOGISTIC */ /******************************************************************************/ proc print data=logcook2; title 'Logistic regression diagnostics produced by PROC LOGISTIC for UI data'; title2 'Cookdobs is given by Corollary 2.2 of Preisser and Qaqish under R=I'; title3 ' '; var DFBETA_intercept DFBETA_female DFBETA_age DFBETA_dayacc DFBETA_severe DFBETA_toilet H cbar cookdobs; run; /******************************************************************************/ /* PRODUCE DFBETAS FOR LOGISTIC REGRESSION USING SAS GEE MACRO */ /******************************************************************************/ %include geed; /* these results confirm output of proc logistic */ %gee( data=ui, yvar=bothered, xvar=inter female age dayacc severe toilet, id=pract_id, link=3, vari=3, corr=1, monitor=no, obsout=infobs, ncovout=naivecov, rcovout=robustcov ); proc print data= naivecov; title 'Model-based covariance estimate'; title2 ' '; title3 ' '; run; proc print data= robustcov; title 'Empirical Sandwich covariance estimate'; title2 ' '; title3 ' '; run; * in order to compare with PROC LOGISTIC, DFBETA are standardized; data naive2(keep = nse_inter nse_female nse_age nse_dayacc nse_severe nse_toilet); set naivecov(keep = variable naive_se); if variable='INTER' then nse_inter=naive_se; else if variable='FEMALE' then nse_female=naive_se; else if variable='AGE' then nse_age=naive_se; else if variable='DAYACC' then nse_dayacc=naive_se; else if variable='SEVERE' then nse_severe=naive_se; else if variable='TOILET' then nse_toilet=naive_se; retain nse_inter nse_female nse_age nse_dayacc nse_severe nse_toilet; if _n_ = 6 then do; Do i=1 to 137; output; End; end; run; data infobs2; merge naive2 infobs; DFBETAS_INTER = inter/nse_inter; DFBETAS_FEMALE = female/nse_female; DFBETAS_AGE = age/nse_age; DFBETAS_DAYACC = dayacc/nse_dayacc; DFBETAS_SEVERE = severe/nse_severe; DFBETAS_TOILET = toilet/nse_toilet; run; proc print data=infobs2; title 'Logistic regression diagnostics for UI data from SAS IML macro'; title2 'Cookdobs is given by Corollary 2.2 of Preisser and Qaqish under R=I'; title3 'Cookdobs under R=I is equivalent to Williams (1987)'; title4 'DFBETA from SAS GEE macro is standardized to match PROC LOGISTIC output'; run;