Tweaking the Model:
Proc Logistic and Beyond
          Shulamit Gordon
 Department of Health Information
Ministry of Health, Jerusalem, Israel
‫תודות!!!‬
            ‫• ציונה חקלאי‬
       ‫• דמיטרי מוסטובוי‬
     ‫• כל צוות תחום מידע‬
‫?‪Who? What? Where? When? Why? How‬‬
                          ‫השאלה‬    ‫•‬
                         ‫התשובה‬    ‫•‬
                       ‫השלב הבא‬    ‫•‬
                           ‫הבעיה‬   ‫•‬
                          ‫הפתרון‬   ‫•‬
‫ראיה כללית‬

‫• פטירות בבית חולים לאחר ניתוח‬
                ‫– לזהות גורמי הסיכון‬
 ‫– ללמוד איך יכולים לשפר הטיפולשירות‬
‫מקור המידע: מאגר אשפוזים‬
‫• מנוהל בתחום מידע במשרד הבריאות‬
              ‫• פרטני, בלתי מזוהה‬
                  ‫• כולל מידע על:‬
                         ‫– דמוגרפיה‬
                  ‫– תנועות במחלקות‬
                 ‫– נתונים על האשפוז‬
                   ‫– אבחנות ופעולות‬
‫אוכלוסיית המחקר‬
‫מנותחים במשך שנתיים בבתי"ח כלליים‬     ‫•‬
                        ‫עברו הניתוח‬   ‫•‬
                       ‫אזרחי ישראל‬    ‫•‬
    ‫שהו בבית החולים לפחות לילה אחד‬    ‫•‬
                  ‫בני 51 שנה ומעלה‬    ‫•‬

   ‫• סה"כ כ- 000,7 מנותחים‬
‫משתנים במודל‬
                  ‫• משתנים דמוגרפים‬
                           ‫– קבוצות גיל‬
                                   ‫– מין‬
                      ‫• משתני תחלואה‬
                ‫– מדד צ'רלסון, ללא סרטן‬
‫– סרטן- ללא סרטן, ללא גרורות, עם גרורות‬
            ‫– אשפוז קודם בחודש האחרון‬
            ‫– ניתוח דומה בשנה האחרונה‬
                     ‫• משתנים נוכחיים‬
      ‫– סוג כניסה – דחוף מהמיון או מוזמן‬
                          ‫– אפיון הניתוח‬
                         ‫– שיטת הניתוח‬
‫מודל ארצי‬
proc logistic data=t ;
  class .... ;
  model
     events/nn = age gender .... method
     / expb lackfit
  ;
  by    &by_vars. ;
run ; quit ;
‫ למודל הארצי‬Proc Logisitic ‫תוצאות‬
Parameter    Value    Odds Ratio
Age          15-39      1.00
             40-54       2.03

             55-64      4.39 **
             65-74      7.47 **
             75-120    13.97 **
Gender       Female     1.00       C Statistic = 0.876
             Male        1.01

Modified     0-1        1.00       H-L G-o-F = 0.184
Charlson     2+         2.91 **
Method       A          1.00
             B          0.38 **
From ER      no         1.00
Planned      yes        8.25 **
....
‫המודל הבסיסי‬
proc logistic data=t ;
  class .... ;
  model
     events/nn = age gender ....
     / expb lackfit
  ;
  by    &by_vars. ;
  score out=t_out ;
run ; quit ;
‫המודל בסיסי + יחידה‬
proc logistic data=t ;
  class .... unitcode ;
  model
     events/nn = age gender... unitcode
     / expb lackfit
  ;
  by    &by_vars. ;
  score out=t_out ;
run ; quit ;
Original Variables
   Unit Codes
‫ נוסף‬PROC LOGISTIC + ‫מודל בסיסי‬
 Taking the output of the basic model,
 data t_out ; set t_out ;
   the_beta = log(p_event / p_nonevent) ;
 run ;

 proc logistic data=t_out ;
   class unitcode / ref=first ;
   model
      events / nn = unitcode the_beta
      / expb lackfit
   ;
   by &by_vars. ;
 run ; quit ;
Unit Codes



Original Variables
Original Variables
                     Unit Codes
‫הרעיון‬
                                -‫ כדי ש‬bu u ‫למצוא לכל יחידה‬

                 Actual
             patients _ i
                            i          Expected b 
                                     patients _ i
                                                    i   u

            in _ unit _ u           in _ unit _ u




                        e bu P _ Eventi
0                                              yi
  patients _ i   P _ Eventi   e P _ Eventi
                                   bu
                1                               patients _ i
    in _ unit _ u                                           in _ unit _ u
‫מרשם העוגה‬
Ingredients :

  1   cup butter, at room temp.
  2   cups sugar
  3   cups sifted self-rising flour
  4   eggs

Preheat oven to 350 degrees F.
‫מרשם המאקרו‬
Ingredients :

   1   proc   datasets
   2   proc   transpose
   3   proc   sql
   4   data   steps

Stir gently, ...
‫הקריאה למאקרו‬
%esg_tweak_logistic_wide(
  f_in        = t_out,
  p_var       = p_event,
  events_var = events,
  nn_var      = nn,
  by_Groups   = &by_vars. unitcode,
  lo          = -100 ,
  hi          = 100 ,
  n_iter      = 100 ,
  f_out       = t_tweak,
  out_var     = tweak_beta
) run ; quit ;
‫זמני החישוב‬
                 1,000.0


                  100.0
time (seconds)




                   10.0


                     1.0
                           1        10         100       1000        10000   100000 1000000
                     0.1
                                                     width of data

                           2   16        128    1024      8192       65536    524288
‫חישוב משמעות‬
 From Probability 101, for each unit u,
using the output of the BASIC MODEL

                     y
                  patients _ i
                              i          P _ Event
                                       patients _ i
                                                           i


   zu 
                 in _ unit _ u        in _ unit _ u

              P _ Event  P _ NonEvent 
           patients _ i
                                          i                    i

          in _ unit _ u




              PValueu  21   z u                  
‫חישוב סטטיסטיקות המודל‬
Preparing the data:
%let bb = &by_vars. unitcode ; run ;

proc sort data=    t_out         ; by &bb ; run ;
proc sort data=          t_tweak ; by &bb ; run ;
data t_new ; merge t_out t_tweak ; by &bb ; run ;

data t_new ; set t_new ;
  O_R1 = p_event / (1-p_event) ;
  O_R2 = exp(tweak_beta) ;
  O_R   = O_R1 * O_R2 ;
  p_new = O_R / (1+O_R) ;
  beta_new = log(O_R) ;
run ; quit ;
‫חישוב סטטיסטיקות המודל‬

Using Proc Logistic:
proc logistic data=t ;
  model
     events / nn = the_beta
     / lackfit
  ;
  by &by_vars. ;
run ; quit ;
‫חישוב סטטיסטיקות המודל‬
Using Macros:
%esg_g_c_stats(
  f          = t_new,    f_out    = t_c,
  events_var = events,   nn_var   = nn,
  p_var      = p_new,    n_bins   = 500,
  by_vars    = &by_vars.
) run ; quit ;

%esg_g_HosmerLemeshow(
  f          = t_new,    f_out    = t_HL,
  events_var = events,   nn_var   = nn,
  p_var      = p_new,    grps     = 10,
  by_vars    = &by_vars.
) run ; quit ;
‫השוות המודלים‬
‫‪C STATISTIC‬‬                          ‫המודל‬


 ‫8578.0‬           ‫מודל ארצי (עם שיטת הניתוח)‬
 ‫6078.0‬                          ‫מודל בסיסי‬
 ‫2978.0‬                  ‫מודל בסיסי עם יחידה‬
 ‫5878.0‬    ‫מודל בסיסי + ‪ PROC LOGISTIC‬נוסף‬
 ‫6878.0‬             ‫מודל בסיסי + ‪TWEAKING‬‬
:‫בסיכום‬
:‫ניתן ליישם השיטה על מספר משתנים אחד אחרי השני‬
         Proc Logistic

         Tweak with var1
         Update t_out

         Tweak with var2
         Update t_out

         Tweak with var3
         Update t_out
         ...
         Calculate additional statistics
‫המלצה‬


‫תהיו בריאים!!!‬
‫תודה רבה‬
shulamit.gordon@moh.health.gov.il
Algebra

      p          OR                                           porig
OR        p                                 ORnew                   eb
     1 p      1  OR                                       1  porig

                                       porig
                                                       eb
                     ORnew      1  porig
         p new              
                   1  ORnew        porig b
                               1           e
                                  1  porig


                               e b porig
                 pnew 
                          1  p   e
                               orig
                                           b
                                               porig

שלומית גורדון משרד הבריאות

  • 1.
    Tweaking the Model: ProcLogistic and Beyond Shulamit Gordon Department of Health Information Ministry of Health, Jerusalem, Israel
  • 2.
    ‫תודות!!!‬ ‫• ציונה חקלאי‬ ‫• דמיטרי מוסטובוי‬ ‫• כל צוות תחום מידע‬
  • 3.
    ‫?‪Who? What? Where?When? Why? How‬‬ ‫השאלה‬ ‫•‬ ‫התשובה‬ ‫•‬ ‫השלב הבא‬ ‫•‬ ‫הבעיה‬ ‫•‬ ‫הפתרון‬ ‫•‬
  • 4.
    ‫ראיה כללית‬ ‫• פטירותבבית חולים לאחר ניתוח‬ ‫– לזהות גורמי הסיכון‬ ‫– ללמוד איך יכולים לשפר הטיפולשירות‬
  • 5.
    ‫מקור המידע: מאגראשפוזים‬ ‫• מנוהל בתחום מידע במשרד הבריאות‬ ‫• פרטני, בלתי מזוהה‬ ‫• כולל מידע על:‬ ‫– דמוגרפיה‬ ‫– תנועות במחלקות‬ ‫– נתונים על האשפוז‬ ‫– אבחנות ופעולות‬
  • 6.
    ‫אוכלוסיית המחקר‬ ‫מנותחים במשךשנתיים בבתי"ח כלליים‬ ‫•‬ ‫עברו הניתוח‬ ‫•‬ ‫אזרחי ישראל‬ ‫•‬ ‫שהו בבית החולים לפחות לילה אחד‬ ‫•‬ ‫בני 51 שנה ומעלה‬ ‫•‬ ‫• סה"כ כ- 000,7 מנותחים‬
  • 7.
    ‫משתנים במודל‬ ‫• משתנים דמוגרפים‬ ‫– קבוצות גיל‬ ‫– מין‬ ‫• משתני תחלואה‬ ‫– מדד צ'רלסון, ללא סרטן‬ ‫– סרטן- ללא סרטן, ללא גרורות, עם גרורות‬ ‫– אשפוז קודם בחודש האחרון‬ ‫– ניתוח דומה בשנה האחרונה‬ ‫• משתנים נוכחיים‬ ‫– סוג כניסה – דחוף מהמיון או מוזמן‬ ‫– אפיון הניתוח‬ ‫– שיטת הניתוח‬
  • 8.
    ‫מודל ארצי‬ proc logisticdata=t ; class .... ; model events/nn = age gender .... method / expb lackfit ; by &by_vars. ; run ; quit ;
  • 9.
    ‫ למודל הארצי‬ProcLogisitic ‫תוצאות‬ Parameter Value Odds Ratio Age 15-39 1.00 40-54 2.03 55-64 4.39 ** 65-74 7.47 ** 75-120 13.97 ** Gender Female 1.00 C Statistic = 0.876 Male 1.01 Modified 0-1 1.00 H-L G-o-F = 0.184 Charlson 2+ 2.91 ** Method A 1.00 B 0.38 ** From ER no 1.00 Planned yes 8.25 ** ....
  • 10.
    ‫המודל הבסיסי‬ proc logisticdata=t ; class .... ; model events/nn = age gender .... / expb lackfit ; by &by_vars. ; score out=t_out ; run ; quit ;
  • 11.
    ‫המודל בסיסי +יחידה‬ proc logistic data=t ; class .... unitcode ; model events/nn = age gender... unitcode / expb lackfit ; by &by_vars. ; score out=t_out ; run ; quit ;
  • 12.
  • 13.
    ‫ נוסף‬PROC LOGISTIC+ ‫מודל בסיסי‬ Taking the output of the basic model, data t_out ; set t_out ; the_beta = log(p_event / p_nonevent) ; run ; proc logistic data=t_out ; class unitcode / ref=first ; model events / nn = unitcode the_beta / expb lackfit ; by &by_vars. ; run ; quit ;
  • 14.
  • 15.
  • 16.
    ‫הרעיון‬ -‫ כדי ש‬bu u ‫למצוא לכל יחידה‬  Actual patients _ i i   Expected b  patients _ i i u in _ unit _ u in _ unit _ u e bu P _ Eventi 0    yi patients _ i   P _ Eventi   e P _ Eventi bu 1 patients _ i in _ unit _ u in _ unit _ u
  • 17.
    ‫מרשם העוגה‬ Ingredients : 1 cup butter, at room temp. 2 cups sugar 3 cups sifted self-rising flour 4 eggs Preheat oven to 350 degrees F.
  • 18.
    ‫מרשם המאקרו‬ Ingredients : 1 proc datasets 2 proc transpose 3 proc sql 4 data steps Stir gently, ...
  • 19.
    ‫הקריאה למאקרו‬ %esg_tweak_logistic_wide( f_in = t_out, p_var = p_event, events_var = events, nn_var = nn, by_Groups = &by_vars. unitcode, lo = -100 , hi = 100 , n_iter = 100 , f_out = t_tweak, out_var = tweak_beta ) run ; quit ;
  • 20.
    ‫זמני החישוב‬ 1,000.0 100.0 time (seconds) 10.0 1.0 1 10 100 1000 10000 100000 1000000 0.1 width of data 2 16 128 1024 8192 65536 524288
  • 21.
    ‫חישוב משמעות‬ FromProbability 101, for each unit u, using the output of the BASIC MODEL y patients _ i i   P _ Event patients _ i i zu  in _ unit _ u in _ unit _ u  P _ Event  P _ NonEvent  patients _ i i i in _ unit _ u PValueu  21   z u 
  • 22.
    ‫חישוב סטטיסטיקות המודל‬ Preparingthe data: %let bb = &by_vars. unitcode ; run ; proc sort data= t_out ; by &bb ; run ; proc sort data= t_tweak ; by &bb ; run ; data t_new ; merge t_out t_tweak ; by &bb ; run ; data t_new ; set t_new ; O_R1 = p_event / (1-p_event) ; O_R2 = exp(tweak_beta) ; O_R = O_R1 * O_R2 ; p_new = O_R / (1+O_R) ; beta_new = log(O_R) ; run ; quit ;
  • 23.
    ‫חישוב סטטיסטיקות המודל‬ UsingProc Logistic: proc logistic data=t ; model events / nn = the_beta / lackfit ; by &by_vars. ; run ; quit ;
  • 24.
    ‫חישוב סטטיסטיקות המודל‬ UsingMacros: %esg_g_c_stats( f = t_new, f_out = t_c, events_var = events, nn_var = nn, p_var = p_new, n_bins = 500, by_vars = &by_vars. ) run ; quit ; %esg_g_HosmerLemeshow( f = t_new, f_out = t_HL, events_var = events, nn_var = nn, p_var = p_new, grps = 10, by_vars = &by_vars. ) run ; quit ;
  • 25.
    ‫השוות המודלים‬ ‫‪C STATISTIC‬‬ ‫המודל‬ ‫8578.0‬ ‫מודל ארצי (עם שיטת הניתוח)‬ ‫6078.0‬ ‫מודל בסיסי‬ ‫2978.0‬ ‫מודל בסיסי עם יחידה‬ ‫5878.0‬ ‫מודל בסיסי + ‪ PROC LOGISTIC‬נוסף‬ ‫6878.0‬ ‫מודל בסיסי + ‪TWEAKING‬‬
  • 26.
    :‫בסיכום‬ :‫ניתן ליישם השיטהעל מספר משתנים אחד אחרי השני‬ Proc Logistic Tweak with var1 Update t_out Tweak with var2 Update t_out Tweak with var3 Update t_out ... Calculate additional statistics
  • 27.
  • 28.
  • 29.
    Algebra p OR porig OR   p ORnew  eb 1 p 1  OR 1  porig porig eb ORnew 1  porig p new   1  ORnew porig b 1 e 1  porig e b porig pnew  1  p   e orig b porig