Diabetes e readmissão hospitalar

Thales

Base de Dados

Nome Descrição
Predicting Hospital Readmissions O diabetes é um preditor de readmissão hospitalar?

Entenda Readmissão como uma nova internação após determinado período de alta (geralmente 30 dias)

Visualização Inicial dos Dados

'data.frame':   25000 obs. of  17 variables:
 $ age              : chr  "[70-80)" "[70-80)" "[50-60)" "[70-80)" ...
 $ time_in_hospital : int  8 3 5 2 1 2 4 1 4 8 ...
 $ n_lab_procedures : int  72 34 45 36 42 51 44 19 67 37 ...
 $ n_procedures     : int  1 2 0 0 0 0 2 6 3 1 ...
 $ n_medications    : int  18 13 18 12 7 10 21 16 13 18 ...
 $ n_outpatient     : int  2 0 0 1 0 0 0 0 0 0 ...
 $ n_inpatient      : int  0 0 0 0 0 0 0 0 0 0 ...
 $ n_emergency      : int  0 0 0 0 0 0 0 1 0 0 ...
 $ medical_specialty: chr  "Missing" "Other" "Missing" "Missing" ...
 $ diag_1           : chr  "Circulatory" "Other" "Circulatory" "Circulatory" ...
 $ diag_2           : chr  "Respiratory" "Other" "Circulatory" "Other" ...
 $ diag_3           : chr  "Other" "Other" "Circulatory" "Diabetes" ...
 $ glucose_test     : chr  "no" "no" "no" "no" ...
 $ A1Ctest          : chr  "no" "no" "no" "no" ...
 $ change           : chr  "no" "no" "yes" "yes" ...
 $ diabetes_med     : chr  "yes" "yes" "yes" "yes" ...
 $ readmitted       : chr  "no" "no" "yes" "yes" ...

Classificação das Variáveis

  • age: Faixa etária do paciente (qualitativa ordinal)

  • time_in_hospital: Período no hospital de 1 a 14 dias (quantitativa discreta)

  • n_lab_procedures: número de procedimentos laboratoriais durante internação (quantitativa discreta)

  • n_procedures: número de procedimentos durante internação (quantitativa discreta)

  • n_medications: número de medicamentos administrados durante internação (quantitativa discreta)

Classificação das Variáveis

  • n_outpatient: número de consultas no ano anterior ao da internação (quantitativa discreta)

  • n_inpatient: número de internações no ano anterior ao da internação (quantitativa discreta)

  • medical_specialty: especialidade do médico responsável pela admissão (qualitativa categórica)

  • diag_1:Primeiro diagnóstico (qualitativa categórica)

  • diag_2:Segundo diagnóstico (qualitativa categórica)

  • diag_3:Outros diagnósticos após segundo (qualitativa categórica)

Classificação das Variáveis

  • glucose_test:Teste de glicose (qualitativa ordinal)

  • A1Ctest:Teste de hemoglobina A1C (qualitativa ordinal)

  • change:Houve mudança no medicamento para diabetes? (qualitativa categórica)

  • diabetes_med:Houve prescrição de remédio para diabetes? (qualitativa categórica)

  • readmitted:Paciente foi internado novamente? (qualitativa categórica)

Preparação dos Dados

Após converter as variáveis qualitativas de char para factor:

'data.frame':   25000 obs. of  17 variables:
 $ age              : Factor w/ 6 levels "[40-50)","[50-60)",..: 4 4 2 4 3 1 2 3 5 4 ...
 $ time_in_hospital : int  8 3 5 2 1 2 4 1 4 8 ...
 $ n_lab_procedures : int  72 34 45 36 42 51 44 19 67 37 ...
 $ n_procedures     : int  1 2 0 0 0 0 2 6 3 1 ...
 $ n_medications    : int  18 13 18 12 7 10 21 16 13 18 ...
 $ n_outpatient     : int  2 0 0 1 0 0 0 0 0 0 ...
 $ n_inpatient      : int  0 0 0 0 0 0 0 0 0 0 ...
 $ n_emergency      : int  0 0 0 0 0 0 0 1 0 0 ...
 $ medical_specialty: Factor w/ 7 levels "Cardiology","Emergency/Trauma",..: 5 6 5 5 4 5 5 6 4 3 ...
 $ diag_1           : Factor w/ 8 levels "Circulatory",..: 1 7 1 1 7 7 4 1 3 8 ...
 $ diag_2           : Factor w/ 8 levels "Circulatory",..: 8 7 1 7 1 7 7 7 7 8 ...
 $ diag_3           : Factor w/ 8 levels "Circulatory",..: 7 7 1 2 8 7 7 7 7 7 ...
 $ glucose_test     : Factor w/ 3 levels "high","no","normal": 2 2 2 2 2 2 2 2 2 2 ...
 $ A1Ctest          : Factor w/ 3 levels "high","no","normal": 2 2 2 2 2 2 3 2 2 2 ...
 $ change           : Factor w/ 2 levels "no","yes": 1 1 2 2 1 1 2 1 1 2 ...
 $ diabetes_med     : Factor w/ 2 levels "no","yes": 2 2 2 2 2 1 2 2 1 2 ...
 $ readmitted       : Factor w/ 2 levels "no","yes": 1 1 2 2 1 2 1 2 2 1 ...

Visualização Estatística dos Dados Qualitativos

Characteristic no
N = 13,2461
yes
N = 11,7541
Idade

    [40-50) 1,405 (55%) 1,127 (45%)
    [50-60) 2,486 (56%) 1,966 (44%)
    [60-70) 3,143 (53%) 2,770 (47%)
    [70-80) 3,501 (51%) 3,336 (49%)
    [80-90) 2,277 (50%) 2,239 (50%)
    [90-100) 434 (58%) 316 (42%)
Teste de glicose

    high 329 (48%) 357 (52%)
    no 12,561 (53%) 11,064 (47%)
    normal 356 (52%) 333 (48%)
1 n (%)

Visualização Estatística dos Dados Quantitativos

Characteristic no
N = 13,2461
yes
N = 11,7541
Dias no hospital 4 (4) 4 (4)
Nº procedimentos 1 (2) 1 (2)
1 Median (IQR)

Análise Qualitativa

Análise dos Dados Qualitativos

Análise Quantitativa

Análise Quantitativa

Análise Quantitativa x Qualitativa

Analise Bivariada Qualitativa

Existe relação entre o teste de glicose e a readmissão?

Cross-Tabulation, Row Proportions  
glucose_test * readmitted  
Data Frame: dados_brutos  

-------------- ------------ --------------- --------------- ----------------
                 readmitted              no             yes            Total
  glucose_test                                                              
          high                  329 (48.0%)     357 (52.0%)     686 (100.0%)
            no                12561 (53.2%)   11064 (46.8%)   23625 (100.0%)
        normal                  356 (51.7%)     333 (48.3%)     689 (100.0%)
         Total                13246 (53.0%)   11754 (47.0%)   25000 (100.0%)
-------------- ------------ --------------- --------------- ----------------

    Pearson's Chi-squared test

data:  dados_brutos$glucose_test and dados_brutos$readmitted
X-squared = 7.7532, df = 2, p-value = 0.02072

Analise Multi-Variada Quantitativa

Separação do conjunto de treinamento e teste

Proporção de treinamento:

  no  yes 
9822 8763 

Proporção de teste:

  no  yes 
3273 2921 

Regressão Logística

Modelo Inicial


Call:
glm(formula = readmitted ~ ., family = binomial(link = "logit"), 
    data = dados_Train, maxit = 50)

Coefficients:
                        Estimate Std. Error z value Pr(>|z|)    
(Intercept)           -0.7001633  0.1317934  -5.313 1.08e-07 ***
age[50-60)             0.0374708  0.0613558   0.611 0.541390    
age[60-70)             0.1256881  0.0589349   2.133 0.032953 *  
age[70-80)             0.1996830  0.0581294   3.435 0.000592 ***
age[80-90)             0.2599592  0.0622048   4.179 2.93e-05 ***
age[90-100)           -0.0478026  0.1024071  -0.467 0.640651    
time_in_hospital       0.0197686  0.0060010   3.294 0.000987 ***
n_lab_procedures       0.0012545  0.0008795   1.426 0.153740    
n_procedures          -0.0391907  0.0102380  -3.828 0.000129 ***
n_medications          0.0019686  0.0024358   0.808 0.418985    
n_outpatient           0.1235606  0.0153541   8.047 8.46e-16 ***
n_inpatient            0.3839465  0.0167054  22.983  < 2e-16 ***
n_emergency            0.2224433  0.0290947   7.646 2.08e-14 ***
diag_1Diabetes         0.1378250  0.0683183   2.017 0.043654 *  
diag_1Digestive        0.0250402  0.0601840   0.416 0.677365    
diag_1Injury          -0.1934188  0.0670348  -2.885 0.003910 ** 
diag_1Musculoskeletal -0.2042991  0.0764784  -2.671 0.007555 ** 
diag_1Other           -0.1663202  0.0439550  -3.784 0.000154 ***
diag_1Respiratory     -0.0667838  0.0501894  -1.331 0.183309    
diag_2Diabetes        -0.0180676  0.0552592  -0.327 0.743698    
diag_2Digestive       -0.1386129  0.0864899  -1.603 0.109012    
diag_2Injury          -0.1201505  0.1038473  -1.157 0.247275    
diag_2Musculoskeletal  0.0303442  0.1237958   0.245 0.806368    
diag_2Other           -0.0524412  0.0390092  -1.344 0.178842    
diag_2Respiratory     -0.0449458  0.0529424  -0.849 0.395905    
diag_3Diabetes        -0.0510112  0.0470312  -1.085 0.278087    
diag_3Digestive       -0.0208193  0.0871841  -0.239 0.811263    
diag_3Injury          -0.1589186  0.1172932  -1.355 0.175455    
diag_3Musculoskeletal -0.0778701  0.1192692  -0.653 0.513825    
diag_3Other           -0.0799350  0.0381135  -2.097 0.035968 *  
diag_3Respiratory      0.0244905  0.0615527   0.398 0.690719    
glucose_testno        -0.0527671  0.0943708  -0.559 0.576062    
glucose_testnormal    -0.0666499  0.1313779  -0.507 0.611934    
A1Ctestno              0.0275099  0.0503668   0.546 0.584935    
A1Ctestnormal         -0.1169928  0.0830665  -1.408 0.159006    
changeyes              0.0282586  0.0362548   0.779 0.435718    
diabetes_medyes        0.2345072  0.0424498   5.524 3.31e-08 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 25704  on 18584  degrees of freedom
Residual deviance: 24387  on 18548  degrees of freedom
AIC: 24461

Number of Fisher Scoring iterations: 4

Importância das variáveis

                         Overall
n_inpatient           22.9833535
n_outpatient           8.0474235
n_emergency            7.6455008
diabetes_medyes        5.5243415
age[80-90)             4.1790856
n_procedures           3.8279490
diag_1Other            3.7838735
age[70-80)             3.4351439
time_in_hospital       3.2942306
diag_1Injury           2.8853503
diag_1Musculoskeletal  2.6713287
age[60-70)             2.1326589
diag_3Other            2.0972893
diag_1Diabetes         2.0173939
diag_2Digestive        1.6026484
n_lab_procedures       1.4264434
A1Ctestnormal          1.4084234
diag_3Injury           1.3548840
diag_2Other            1.3443286
diag_1Respiratory      1.3306350
diag_2Injury           1.1569928
diag_3Diabetes         1.0846264
diag_2Respiratory      0.8489579
n_medications          0.8081840
changeyes              0.7794437
diag_3Musculoskeletal  0.6528935
age[50-60)             0.6107131
glucose_testno         0.5591461
A1Ctestno              0.5461902
glucose_testnormal     0.5073143
age[90-100)            0.4667893
diag_1Digestive        0.4160612
diag_3Respiratory      0.3978792
diag_2Diabetes         0.3269604
diag_2Musculoskeletal  0.2451147
diag_3Digestive        0.2387967

Matriz de Confusão e medidas

Confusion Matrix and Statistics

          Reference
Prediction   no  yes
       no  2580 1777
       yes  693 1144
                                          
               Accuracy : 0.6012          
                 95% CI : (0.5889, 0.6135)
    No Information Rate : 0.5284          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.1836          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.3916          
            Specificity : 0.7883          
         Pos Pred Value : 0.6228          
         Neg Pred Value : 0.5922          
             Prevalence : 0.4716          
         Detection Rate : 0.1847          
   Detection Prevalence : 0.2966          
      Balanced Accuracy : 0.5900          
                                          
       'Positive' Class : yes             
                                          
[1] 0.6762779

Seleção das variáveis que melhor definem o modelo

age + time_in_hospital + n_lab_procedures + n_procedures + n_medications + n_outpatient + n_inpatient + n_emergency + diag_1 + A1Ctest + diabetes_med

Modelo com as melhores variáveis

Confusion Matrix and Statistics

          Reference
Prediction   no  yes
       no  2585 1787
       yes  688 1134
                                          
               Accuracy : 0.6004          
                 95% CI : (0.5881, 0.6126)
    No Information Rate : 0.5284          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.1817          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.3882          
            Specificity : 0.7898          
         Pos Pred Value : 0.6224          
         Neg Pred Value : 0.5913          
             Prevalence : 0.4716          
         Detection Rate : 0.1831          
   Detection Prevalence : 0.2942          
      Balanced Accuracy : 0.5890          
                                          
       'Positive' Class : yes             
                                          
[1] 0.676259

Melhor ponto de corte

Regressão Logística otimizada

Confusion Matrix and Statistics

          Reference
Prediction   no  yes
       no  2087 1259
       yes 1186 1662
                                         
               Accuracy : 0.6053         
                 95% CI : (0.593, 0.6175)
    No Information Rate : 0.5284         
    P-Value [Acc > NIR] : <2e-16         
                                         
                  Kappa : 0.2069         
                                         
 Mcnemar's Test P-Value : 0.1454         
                                         
            Sensitivity : 0.5690         
            Specificity : 0.6376         
         Pos Pred Value : 0.5836         
         Neg Pred Value : 0.6237         
             Prevalence : 0.4716         
         Detection Rate : 0.2683         
   Detection Prevalence : 0.4598         
      Balanced Accuracy : 0.6033         
                                         
       'Positive' Class : yes            
                                         
[1] 0.6306089

Árvore de decisão

Modelo Inicial

  • Validação cruzada 10-fold
  • Método que usa custo-complexidade = 0.0007488233

Importância das variáveis

Árvore de decisão

Predição do Modelo Inicial

Confusion Matrix and Statistics

          Reference
Prediction   no  yes
       no  2510 1726
       yes  763 1195
                                          
               Accuracy : 0.5982          
                 95% CI : (0.5858, 0.6104)
    No Information Rate : 0.5284          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.1792          
                                          
 Mcnemar's Test P-Value : < 2.2e-16       
                                          
            Sensitivity : 0.4091          
            Specificity : 0.7669          
         Pos Pred Value : 0.6103          
         Neg Pred Value : 0.5925          
             Prevalence : 0.4716          
         Detection Rate : 0.1929          
   Detection Prevalence : 0.3161          
      Balanced Accuracy : 0.5880          
                                          
       'Positive' Class : yes             
                                          

Ajuste do Modelo otimizado

Predição do Modelo otimizado

Confusion Matrix and Statistics

          Reference
Prediction   no  yes
       no  2199 1407
       yes 1074 1514
                                          
               Accuracy : 0.5995          
                 95% CI : (0.5871, 0.6117)
    No Information Rate : 0.5284          
    P-Value [Acc > NIR] : < 2.2e-16       
                                          
                  Kappa : 0.1913          
                                          
 Mcnemar's Test P-Value : 2.64e-11        
                                          
            Sensitivity : 0.5183          
            Specificity : 0.6719          
         Pos Pred Value : 0.5850          
         Neg Pred Value : 0.6098          
             Prevalence : 0.4716          
         Detection Rate : 0.2444          
   Detection Prevalence : 0.4178          
      Balanced Accuracy : 0.5951          
                                          
       'Positive' Class : yes             
                                          

Comparativo dos modelos

Regressão Logística Árvore Descisão
Métricas Modelo Inicial Modelo Ajustado Modelo Inicial Modelo Ajustado
Acurácia 60,12% 60,53% 60,14% 59,91%
Sensibilidade 39,16% 56,90% 46,76% 52,41%
Especificidade 78,83% 63,76% 72,07% 66,61%
IC - 95% 58,89% - 61,35% 59,30% - 61,75% 58,91% - 61,36% 58,68% - 61,14%