Análise dos partos induzidos no município do Rio de Janeiro em 2014

Um total de 75.665 partos válidos, que obedecem os critérios de inclusão e exclusão presentes na dissertação de mestrado de PMMMJ

Desse universo de parto, a distribuição do tipo de parto pelo método de indução é:
Das 41.768 cesarianas, temos 11,5% de partos induzidos.
Dos 33.897 partos vaginais, temos 23% de partos induzidos.
Possuímos 1.427 partos sem a informação da indução.

## 
## Row percent 
##            maes$labour
## maes$birth          induced  not induced  Total
##   caesarean    984     4824        35960  41768
##              (2.4)   (11.5)       (86.1)  (100)
##   vaginal      443     7801        25653  33897
##              (1.3)     (23)       (75.7)  (100)

Uma das alterações necessárias para este trabalho será a exclusão de 1.427 registros que não possuem a classificação para o tipo de trabalho de parto.
Porém, da mesma forma qua a ausência do Grupo de Robson acontecia de forma maior nos hospitais privados, é importante ver se a ausência do trabalho de parto ocorre mais ou menos por tipo de hospital.

Dos 45.984 partos ocorridos nos hospitais municipais:
1,7% tem missing para o trabalho de parto e,
19,2% de partos induzidos.

Dos 25.711 partos ocorridos nos hospitais privados:
1,2% tem missing para o trabalho de parto e,
11,7% de partos induzidos.

Dos 3.970 partos ocorridos nos hospitais universitários:
9,1% tem missing para o trabalho de parto e,
19,9% de partos induzidos.

## 
## Row percent 
##                maes$labour
## maes$division           induced  not induced  Total
##   Municipal        761     8823        36400  45984
##                  (1.7)   (19.2)       (79.2)  (100)
##   Privada          306     3012        22393  25711
##                  (1.2)   (11.7)       (87.1)  (100)
##   Universitário    360      790         2820   3970
##                  (9.1)   (19.9)         (71)  (100)

O gráfico deixa mais perceptível a maior proporção de partos induzidos nos hospitais municipais e universitários.
Porém os hospitais universitários possuem uma proporção maior de “missing” para o tipo de trabalho de parto:

Por fim, vale a pena verificar como que a distribuição da indução de parto ocorre para cada hospital.
O gráfico sugere que nossa hipótese de investigação é válida, que a indução será maior entre os partos vaginais, pois é uma prática de estímulo à redução de cesarianas preconizada pela OMS e,
Os hospitais privados são os que realizam a maior proporção de partos vaginais com indução.

Esses dados organizados numericamente em uma tabela possuem a seguinte distribuição:

##             Stratified by division
##              level       Municipal      Privada        Universitário
##   n                      45,984         25,711         3,970        
##   labour (%)                761 ( 1.7)     306 ( 1.2)    360 ( 9.1) 
##              induced       8823 (19.2)    3012 (11.7)    790 (19.9) 
##              not induced  36400 (79.2)   22393 (87.1)   2820 (71.0) 
##   birth (%)  caesarean    15920 (34.6)   23926 (93.1)   1922 (48.4) 
##              vaginal      30064 (65.4)    1785 ( 6.9)   2048 (51.6)

Então agora que sabemos que a maior proporção de partos induzidos ocorre no tipo de parto vaginal, e que esta correlação é maior nos hospitais privados, apresentaremos os resultados das florestas aleatórias em cada tipo de hospital para indução do parto.

Primeiro realizamos as exclusões dos partos com “missing” no desfecho (n=1.427)

maes <- subset(maes, labour!="")

Retiramos o label vazio.

table(maes$labour)
## 
##                 induced not induced 
##           0       12625       61613
maes$labour <- as.character(maes$labour)
table(maes$labour)
## 
##     induced not induced 
##       12625       61613
maes$labour <- as.factor(maes$labour)

Separamos uma base para cada tipo de hospital

set.seed(123)
pub <- subset(maes, division=="Municipal")
uni <- subset(maes, division=="Universitário")
priv <- subset(maes, division=="Privada")

Separamos 70% para base de treino e 30% para base de teste

smp_size_pub<- floor(0.70 * nrow(pub))
smp_size_uni <- floor(0.70 * nrow(uni))
smp_size_priv <- floor(0.70 * nrow(priv))
train_pub <- sample(seq_len(nrow(pub)), size = smp_size_pub)
train_uni <- sample(seq_len(nrow(uni)), size = smp_size_uni)
train_priv <- sample(seq_len(nrow(priv)), size = smp_size_priv)
pub_treino <- pub[train_pub, ]
uni_treino <- uni[train_uni, ]
priv_treino <- priv[train_priv, ]
pub_test <- pub[-train_pub, ]
uni_test <- uni[-train_uni, ]
priv_test <- priv[-train_priv, ]

Conforme a análise inicial a indução do parto, independente do tipo de parto, ocorre em pequena proporção.
Por isso balanceamos as bases de treino para que tivessem 50% de partos induzidos, utilizando o algoritmo de downsample, que mantém mas mesmas proporções das variáveis dependentes.

pub_balanced <- downSample(x = pub_treino,
                           y = pub_treino$labour)
pub_balanced <- pub_balanced[,-76]
uni_balanced <- downSample(x = uni_treino,
                           y = uni_treino$labour)
uni_balanced <- uni_balanced[,-76]
priv_balanced <- downSample(x = priv_treino,
                            y = priv_treino$labour)
priv_balanced <- priv_balanced[,-76]

Agora as bases de treino possuem 50% para cada trabalho de indução:

tab1(pub_balanced$labour, graph=F )
## pub_balanced$labour : 
##             Frequency Percent Cum. percent
## induced          6141      50           50
## not induced      6141      50          100
##   Total         12282     100          100
tab1(uni_balanced$labour, graph=F)
## uni_balanced$labour : 
##             Frequency Percent Cum. percent
## induced           545      50           50
## not induced       545      50          100
##   Total          1090     100          100
tab1(priv_balanced$labour, graph=F )
## priv_balanced$labour : 
##             Frequency Percent Cum. percent
## induced          2108      50           50
## not induced      2108      50          100
##   Total          4216     100          100

As variáveis que serão utilizadas como atributos de predição serão:
maternal_agec = idade materna
maternal_scholc = escolaridade materna
maternal_racecolor = raça/cor da mãe
parity = histórico gestacional
gestational_age = idade gestacional (semanas)
num_fetuses = gemelar ou não
birthweight_week = peso do bebê ajustado a idade gestacional
presentation = apresentação do bebê
infant_acu = presença de uti neonatal no hosp. de nascimento
hospital_type = tipo de hospital
certification = certificação de hospital amigo da criança
hospital_volume = volume de partos do hospital

A distribuição do trabalho de parto dessas variáveis nas bases originais [i.e. não balanceadas] está apresentada nas tabelas abaixo:

Hospitais municipais

##                         Stratified by labour
##                          level              induced        not induced    
##   n                                         8,823          36,400         
##   maternal_agec (%)      10 - 19             3036 ( 34.4)   11218 ( 30.8) 
##                          20 - 34             5242 ( 59.4)   22346 ( 61.4) 
##                          35 - 49              545 (  6.2)    2836 (  7.8) 
##   maternal_scholc (%)                         122 (  1.4)     797 (  2.2) 
##                          > 12                 340 (  3.9)    1270 (  3.5) 
##                          < 4                  345 (  3.9)    1948 (  5.4) 
##                          5 - 11              8016 ( 90.9)   32385 ( 89.0) 
##   maternal_racecolor (%) white               1862 ( 21.1)    8182 ( 22.5) 
##                          brown               6302 ( 71.4)   24020 ( 66.0) 
##                          black                659 (  7.5)    4198 ( 11.5) 
##   parity (%)             multiparous         4619 ( 52.4)   22383 ( 61.5) 
##                          nulliparous         4204 ( 47.6)   14017 ( 38.5) 
##   gestational_age (%)    22 - 27               31 (  0.4)     207 (  0.6) 
##                          28 - 31               64 (  0.7)     464 (  1.3) 
##                          32 -36               707 (  8.0)    3596 (  9.9) 
##                          37 - 41             7625 ( 86.4)   30613 ( 84.1) 
##                          > 42                 396 (  4.5)    1520 (  4.2) 
##   num_fetuses (%)        multiple              45 (  0.5)     374 (  1.0) 
##                                                 0 (  0.0)       0 (  0.0) 
##                          single              8778 ( 99.5)   36026 ( 99.0) 
##   birthweight_week (%)   AGA                 8064 ( 91.4)   32830 ( 90.2) 
##                          BGA                  506 (  5.7)    2289 (  6.3) 
##                          SGA                  253 (  2.9)    1281 (  3.5) 
##   presentation (%)                              0 (  0.0)       2 (  0.0) 
##                          cephalic            8720 ( 98.8)   34591 ( 95.0) 
##                          breech               102 (  1.2)    1764 (  4.8) 
##                          transverse             1 (  0.0)      43 (  0.1) 
##   infant_acu (%)         with ACU            8823 (100.0)   36400 (100.0) 
##                          no ACU                 0 (  0.0)       0 (  0.0) 
##   hospital_type (%)      general             5190 ( 58.8)   17407 ( 47.8) 
##                          maternity           3633 ( 41.2)   18993 ( 52.2) 
##   certification (%)      child friendly      4125 ( 46.8)   15725 ( 43.2) 
##                          not child friendly  4698 ( 53.2)   20675 ( 56.8) 
##   hospital_volume (%)    1500 - 2999         2817 ( 31.9)    4272 ( 11.7) 
##                          3000 - 4499         1275 ( 14.5)   12329 ( 33.9) 
##                          < 1500                 0 (  0.0)       0 (  0.0) 
##                          > 4500              4731 ( 53.6)   19799 ( 54.4)

Hospitais universitários

##                         Stratified by labour
##                          level              induced      not induced   
##   n                                         790          2,820         
##   maternal_agec (%)      10 - 19            201 ( 25.4)    615 ( 21.8) 
##                          20 - 34            499 ( 63.2)   1868 ( 66.2) 
##                          35 - 49             90 ( 11.4)    337 ( 12.0) 
##   maternal_scholc (%)                         3 (  0.4)     21 (  0.7) 
##                          > 12               120 ( 15.2)    313 ( 11.1) 
##                          < 4                 40 (  5.1)    118 (  4.2) 
##                          5 - 11             627 ( 79.4)   2368 ( 84.0) 
##   maternal_racecolor (%) white              324 ( 41.0)   1094 ( 38.8) 
##                          brown              306 ( 38.7)   1200 ( 42.6) 
##                          black              160 ( 20.3)    526 ( 18.7) 
##   parity (%)             multiparous        361 ( 45.7)   1761 ( 62.4) 
##                          nulliparous        429 ( 54.3)   1059 ( 37.6) 
##   gestational_age (%)    22 - 27              1 (  0.1)     30 (  1.1) 
##                          28 - 31              7 (  0.9)     59 (  2.1) 
##                          32 -36              79 ( 10.0)    359 ( 12.7) 
##                          37 - 41            644 ( 81.5)   2242 ( 79.5) 
##                          > 42                59 (  7.5)    130 (  4.6) 
##   num_fetuses (%)        multiple             2 (  0.3)     70 (  2.5) 
##                                               0 (  0.0)      0 (  0.0) 
##                          single             788 ( 99.7)   2750 ( 97.5) 
##   birthweight_week (%)   AGA                729 ( 92.3)   2524 ( 89.5) 
##                          BGA                 35 (  4.4)    183 (  6.5) 
##                          SGA                 26 (  3.3)    113 (  4.0) 
##   presentation (%)                            0 (  0.0)      1 (  0.0) 
##                          cephalic           740 ( 93.7)   2507 ( 88.9) 
##                          breech              49 (  6.2)    307 ( 10.9) 
##                          transverse           1 (  0.1)      5 (  0.2) 
##   infant_acu (%)         with ACU           790 (100.0)   2820 (100.0) 
##                          no ACU               0 (  0.0)      0 (  0.0) 
##   hospital_type (%)      general            391 ( 49.5)   1146 ( 40.6) 
##                          maternity          399 ( 50.5)   1674 ( 59.4) 
##   certification (%)      child friendly     192 ( 24.3)    525 ( 18.6) 
##                          not child friendly 598 ( 75.7)   2295 ( 81.4) 
##   hospital_volume (%)    1500 - 2999        374 ( 47.3)   1486 ( 52.7) 
##                          3000 - 4499          0 (  0.0)      0 (  0.0) 
##                          < 1500             416 ( 52.7)   1334 ( 47.3) 
##                          > 4500               0 (  0.0)      0 (  0.0)

Hospitais privados

##                         Stratified by labour
##                          level              induced        not induced    
##   n                                         3,012          22,393         
##   maternal_agec (%)      10 - 19              154 (  5.1)    1197 (  5.3) 
##                          20 - 34             2291 ( 76.1)   16978 ( 75.8) 
##                          35 - 49              567 ( 18.8)    4218 ( 18.8) 
##   maternal_scholc (%)                           6 (  0.2)      65 (  0.3) 
##                          > 12                1882 ( 62.5)   12527 ( 55.9) 
##                          < 4                   15 (  0.5)      78 (  0.3) 
##                          5 - 11              1109 ( 36.8)    9723 ( 43.4) 
##   maternal_racecolor (%) white               2066 ( 68.6)   13706 ( 61.2) 
##                          brown                774 ( 25.7)    7162 ( 32.0) 
##                          black                172 (  5.7)    1525 (  6.8) 
##   parity (%)             multiparous         1350 ( 44.8)   11193 ( 50.0) 
##                          nulliparous         1662 ( 55.2)   11200 ( 50.0) 
##   gestational_age (%)    22 - 27               17 (  0.6)      72 (  0.3) 
##                          28 - 31               19 (  0.6)     205 (  0.9) 
##                          32 -36               295 (  9.8)    2370 ( 10.6) 
##                          37 - 41             2629 ( 87.3)   19427 ( 86.8) 
##                          > 42                  52 (  1.7)     319 (  1.4) 
##   num_fetuses (%)        multiple              33 (  1.1)     329 (  1.5) 
##                                                 0 (  0.0)       1 (  0.0) 
##                          single              2979 ( 98.9)   22063 ( 98.5) 
##   birthweight_week (%)   AGA                 2842 ( 94.4)   21053 ( 94.0) 
##                          BGA                   96 (  3.2)     656 (  2.9) 
##                          SGA                   74 (  2.5)     684 (  3.1) 
##   presentation (%)                              7 (  0.2)      41 (  0.2) 
##                          cephalic            2965 ( 98.4)   21533 ( 96.2) 
##                          breech                38 (  1.3)     742 (  3.3) 
##                          transverse             2 (  0.1)      77 (  0.3) 
##   infant_acu (%)         with ACU            1716 ( 57.0)   18885 ( 84.3) 
##                          no ACU              1296 ( 43.0)    3508 ( 15.7) 
##   hospital_type (%)      general             2178 ( 72.3)   13558 ( 60.5) 
##                          maternity            834 ( 27.7)    8835 ( 39.5) 
##   certification (%)      child friendly         0 (  0.0)       0 (  0.0) 
##                          not child friendly  3012 (100.0)   22393 (100.0) 
##   hospital_volume (%)    1500 - 2999         1521 ( 50.5)    9067 ( 40.5) 
##                          3000 - 4499          141 (  4.7)    3189 ( 14.2) 
##                          < 1500               686 ( 22.8)    4553 ( 20.3) 
##                          > 4500               664 ( 22.0)    5584 ( 24.9)

Floresta aleatória nos hospitais municipais

Com todas as variáveis dependentes e exigindo que a cada árvore, seja utilizada 3 variáveis para sortear a cada nível de decisão.

Existe 34,43% de erro dentro da floresta no erro de fora da amostra.
Este erro está balanceado entre os dois tipos de desfecho, conforme tabela abaixo

rfpub
## 
## Call:
##  randomForest(formula = labour ~ maternal_agec + maternal_scholc +      maternal_racecolor + parity + gestational_age + num_fetuses +      birthweight_week + presentation + infant_acu + hospital_type +      certification + hospital_volume, data = pub_balanced, mtry = 3,      importance = T, proximity = F, na.action = na.omit) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 3
## 
##         OOB estimate of  error rate: 33.68%
## Confusion matrix:
##             induced not induced class.error
## induced        4224        1917   0.3121641
## not induced    2219        3922   0.3613418

A estabilização do erro de predição de acordo com o número de árvores ocorre mais ou menos depois de 200 árvores:

plot(rfpub)

As 5 variáveis mais importantes para a decisão do tipo de trabalho de parto são em ordem: volume do hospital, tipo de hospital, raçacor da mãe, histórico gestacional e idade gestacional.

round(importance(rfpub), 2)
##                    induced not induced MeanDecreaseAccuracy MeanDecreaseGini
## maternal_agec        -8.98       16.95                12.83            49.06
## maternal_scholc      23.42       14.32                28.56            58.06
## maternal_racecolor   25.76        4.44                26.96            68.16
## parity               20.36       26.60                40.42            63.66
## gestational_age       8.40       -1.41                 5.82            59.54
## num_fetuses           8.87        4.18                 9.23            10.29
## birthweight_week     13.54       11.68                18.19            41.92
## presentation         62.13        5.03                51.08            62.55
## infant_acu            0.00        0.00                 0.00             0.00
## hospital_type        43.14        7.47                76.31           122.35
## certification        27.92      -17.27                27.04            70.69
## hospital_volume      63.56       39.32               134.85           509.63
varImpPlot(rfpub)

Predição nos hospitais municipais

##primeiro seta um preditor
pred.pub <- predict(rfpub, pub_balanced, type="class")

##depois verifica a acuracia da classificacao
table(pred.pub, pub_balanced$labour )
##              
## pred.pub      induced not induced
##   induced        4340        2134
##   not induced    1801        4007
##vendo a predicao na base de teste
pred.pub.test <- predict(rfpub, pub_test, type="class")

confusionMatrix(pred.pub.test, pub_test$labour)
## Confusion Matrix and Statistics
## 
##              Reference
## Prediction    induced not induced
##   induced        1837        4091
##   not induced     845        6794
##                                              
##                Accuracy : 0.6362             
##                  95% CI : (0.628, 0.6443)    
##     No Information Rate : 0.8023             
##     P-Value [Acc > NIR] : 1                  
##                                              
##                   Kappa : 0.2123             
##                                              
##  Mcnemar's Test P-Value : <0.0000000000000002
##                                              
##             Sensitivity : 0.6849             
##             Specificity : 0.6242             
##          Pos Pred Value : 0.3099             
##          Neg Pred Value : 0.8894             
##              Prevalence : 0.1977             
##          Detection Rate : 0.1354             
##    Detection Prevalence : 0.4369             
##       Balanced Accuracy : 0.6545             
##                                              
##        'Positive' Class : induced            
## 

Floresta aleatória nos hospitais universitários

Com todas as variáveis dependentes e exigindo que a cada árvore, seja utilizada 3 variáveis para sortear a cada nível de decisão.

Existe 40,64% de erro dentro da floresta no erro de fora da amostra.
Este erro NÃO está balanceado entre os dois tipos de desfecho. Os partos não induzidos apresentam maior erro de erro dentro da amostra conforme tabela abaixo:

rfuni
## 
## Call:
##  randomForest(formula = labour ~ maternal_agec + maternal_scholc +      maternal_racecolor + parity + gestational_age + num_fetuses +      birthweight_week + presentation + infant_acu + hospital_type +      certification + hospital_volume, data = uni_balanced, mtry = 3,      importance = T, proximity = F, na.action = na.omit) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 3
## 
##         OOB estimate of  error rate: 36.33%
## Confusion matrix:
##             induced not induced class.error
## induced         400         145   0.2660550
## not induced     251         294   0.4605505

Existe um grande erro em toda a floresta:

plot(rfuni)

As variáveis parecem não carregar tanta importância para a predição do trabalho de parto. As mais importantes foram o histórico gestacional e a idade gestacional.

round(importance(rfuni), 2)
##                    induced not induced MeanDecreaseAccuracy MeanDecreaseGini
## maternal_agec         8.13       -6.46                 1.41            12.38
## maternal_scholc       7.58        4.35                 8.73            13.75
## maternal_racecolor   -0.63       -1.18                -1.34            13.48
## parity               25.63       19.75                30.09            16.62
## gestational_age      -1.12       16.96                11.28            17.12
## num_fetuses          13.71        2.73                11.07             3.31
## birthweight_week      7.65        4.81                 8.41            10.45
## presentation          9.02       18.54                21.98            12.24
## infant_acu            0.00        0.00                 0.00             0.00
## hospital_type        31.67       -1.33                31.43            14.08
## certification        17.68        0.36                17.51             8.97
## hospital_volume      19.40       -9.88                16.66             6.48
varImpPlot(rfuni)

Predição nos hospitais universitários

##primeiro seta um preditor
pred.uni <- predict(rfuni, uni_balanced, type="class")

##depois verifica a acuracia da classificacao
table(pred.uni, uni_balanced$labour )
##              
## pred.uni      induced not induced
##   induced         434         214
##   not induced     111         331
##vendo a predicao na base de teste
pred.uni.test <- predict(rfuni, uni_test, type="class")

confusionMatrix(pred.uni.test, uni_test$labour)
## Confusion Matrix and Statistics
## 
##              Reference
## Prediction    induced not induced
##   induced         176         437
##   not induced      69         401
##                                              
##                Accuracy : 0.5328             
##                  95% CI : (0.5025, 0.5628)   
##     No Information Rate : 0.7738             
##     P-Value [Acc > NIR] : 1                  
##                                              
##                   Kappa : 0.1286             
##                                              
##  Mcnemar's Test P-Value : <0.0000000000000002
##                                              
##             Sensitivity : 0.7184             
##             Specificity : 0.4785             
##          Pos Pred Value : 0.2871             
##          Neg Pred Value : 0.8532             
##              Prevalence : 0.2262             
##          Detection Rate : 0.1625             
##    Detection Prevalence : 0.5660             
##       Balanced Accuracy : 0.5984             
##                                              
##        'Positive' Class : induced            
## 

Floresta aleatória nos hospitais privados

Com todas as variáveis dependentes e exigindo que a cada árvore, seja utilizada 3 variáveis para sortear a cada nível de decisão.

Existe 33,85% de erro dentro da floresta no erro de fora da amostra.
Este erro está balanceado entre os dois tipos de desfecho. Os partos induzidos apresentam maior erro de erro dentro da amostra conforme tabela abaixo:

rfpriv
## 
## Call:
##  randomForest(formula = labour ~ maternal_agec + maternal_scholc +      maternal_racecolor + parity + gestational_age + num_fetuses +      birthweight_week + presentation + infant_acu + hospital_type +      certification + hospital_volume, data = priv_balanced, mtry = 3,      importance = T, proximity = F, na.action = na.omit) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 3
## 
##         OOB estimate of  error rate: 33.78%
## Confusion matrix:
##             induced not induced class.error
## induced        1368         740   0.3510436
## not induced     684        1424   0.3244782

Existe uma estabilização no erro da floresta depois de 300 árvores:

plot(rfpriv)

As 5 variáveis mais importantes para predição do trabalho de parto foram: o hospital de uti neonatal, o volume de partos, escolaridade materna, a raça/cor materna e a idade gestacional

round(importance(rfpriv), 2)
##                    induced not induced MeanDecreaseAccuracy MeanDecreaseGini
## maternal_agec         0.74        4.10                 4.41            22.12
## maternal_scholc      35.00      -21.28                24.42            36.69
## maternal_racecolor   24.41      -10.37                17.39            39.69
## parity                2.79        8.76                10.13            15.63
## gestational_age       7.63       -1.59                 4.54            28.88
## num_fetuses          -6.20       -0.31                -4.96             4.13
## birthweight_week      0.83       -0.76                 0.00            17.32
## presentation         22.94       12.91                23.80            15.27
## infant_acu          104.00       30.94               107.16           195.58
## hospital_type        -1.61       19.53                18.61            17.42
## certification         0.00        0.00                 0.00             0.00
## hospital_volume      27.75       20.76                56.15           106.27
varImpPlot(rfpriv)

Predição nos hospitais privados

##primeiro seta um preditor
pred.priv <- predict(rfpriv, priv_balanced, type="class")

##depois verifica a acuracia da classificacao
table(pred.priv, priv_balanced$labour )
##              
## pred.priv     induced not induced
##   induced        1430         600
##   not induced     678        1508
##vendo a predicao na base de teste
pred.priv.test <- predict(rfpriv, priv_test, type="class")

confusionMatrix(pred.priv.test, priv_test$labour)
## Confusion Matrix and Statistics
## 
##              Reference
## Prediction    induced not induced
##   induced         573        2186
##   not induced     331        4532
##                                              
##                Accuracy : 0.6698             
##                  95% CI : (0.6591, 0.6803)   
##     No Information Rate : 0.8814             
##     P-Value [Acc > NIR] : 1                  
##                                              
##                   Kappa : 0.1634             
##                                              
##  Mcnemar's Test P-Value : <0.0000000000000002
##                                              
##             Sensitivity : 0.63385            
##             Specificity : 0.67461            
##          Pos Pred Value : 0.20768            
##          Neg Pred Value : 0.93194            
##              Prevalence : 0.11860            
##          Detection Rate : 0.07518            
##    Detection Prevalence : 0.36198            
##       Balanced Accuracy : 0.65423            
##                                              
##        'Positive' Class : induced            
##