Caso de estudio: Retención de Clientes en Telecomunicaciones: Una empresa de telecomunicaciones utiliza árboles de decisiones para predecir la probabilidad de que un cliente se vaya. Los criterios pueden incluir duración de la suscripción, quejas previas y uso de servicios. El objetivo es anticipar si un cliente cancelará su suscripción.

Duración de la suscripción: Categorizada en días del último mes transcurridos de la última suscripción.

Uso de servicios: Categorizada en meses del último año

Quejas: Factores de satisfacción del 1 al 2. Dónde 1 es mala y 2 es Buena

set.seed(123)
datos <- data.frame(
  Duración_de_la_suscripción = sample(1:30, 100, replace = TRUE),
  Uso_de_servicios = sample(1:12, 100, replace = TRUE),
  Quejas = factor(sample(c("1", "2"), 100, replace = TRUE))
)
datos
##     Duración_de_la_suscripción Uso_de_servicios Quejas
## 1                           15                8      1
## 2                           19               12      1
## 3                           14                9      1
## 4                            3                3      1
## 5                           10                7      1
## 6                           18                3      2
## 7                           22                7      1
## 8                           11                6      2
## 9                            5               10      2
## 10                          20                5      2
## 11                          14                5      1
## 12                          22                8      2
## 13                          25                3      1
## 14                          26               10      2
## 15                          27                2      1
## 16                           5               10      1
## 17                          19               12      1
## 18                          27                2      1
## 19                          25               10      1
## 20                          28                6      1
## 21                          25               12      2
## 22                           9                4      1
## 23                          29                1      2
## 24                           3                6      1
## 25                           8                3      1
## 26                          26                8      1
## 27                           7                3      1
## 28                          10                8      2
## 29                           9                1      2
## 30                          30                7      1
## 31                          19               11      1
## 32                           4                7      1
## 33                          14                7      2
## 34                          17               10      2
## 35                          11                6      2
## 36                           7                7      1
## 37                          21               11      2
## 38                          12               10      1
## 39                          15                5      1
## 40                          10                6      1
## 41                          13                8      1
## 42                           7                5      1
## 43                           9                7      2
## 44                           9               11      2
## 45                          10                4      2
## 46                          23               12      1
## 47                          27               12      1
## 48                          28                3      2
## 49                          21                9      2
## 50                           7                7      1
## 51                          21                6      2
## 52                          27               10      1
## 53                           6                9      1
## 54                          25                7      2
## 55                           2                2      1
## 56                          29                3      1
## 57                           5                8      1
## 58                           8                4      2
## 59                          12                7      1
## 60                          13                4      2
## 61                          18                1      1
## 62                           1                8      2
## 63                          25                4      2
## 64                          27                9      2
## 65                          25                8      2
## 66                           6                6      1
## 67                          21               11      1
## 68                          15                4      1
## 69                           9                8      2
## 70                          15                3      1
## 71                          26                4      1
## 72                          28                4      2
## 73                          16               12      1
## 74                          20                6      1
## 75                          30                1      2
## 76                           6               10      1
## 77                          11               11      2
## 78                           8                4      2
## 79                          22               11      2
## 80                          22                9      1
## 81                           7                7      1
## 82                          16                8      1
## 83                          17                5      1
## 84                          22                2      2
## 85                          18               11      1
## 86                          17                6      1
## 87                           2                9      1
## 88                           4                8      1
## 89                          13               12      2
## 90                           5               10      2
## 91                          22                4      1
## 92                          19                5      2
## 93                          25                7      1
## 94                          20                1      1
## 95                          22                8      1
## 96                          25                8      2
## 97                          14               10      1
## 98                          25                9      1
## 99                          23                8      1
## 100                          3                2      2

Construir el árbol de decisiones

library(rpart)
## Warning: package 'rpart' was built under R version 4.2.3
arbol_decision <- rpart(Quejas ~ Duración_de_la_suscripción + Uso_de_servicios, data = datos, method = "class")

arbol_decision
## n= 100 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
##  1) root 100 39 1 (0.6100000 0.3900000)  
##    2) Duración_de_la_suscripción< 7.5 20  4 1 (0.8000000 0.2000000) *
##    3) Duración_de_la_suscripción>=7.5 80 35 1 (0.5625000 0.4375000)  
##      6) Duración_de_la_suscripción>=11.5 65 24 1 (0.6307692 0.3692308)  
##       12) Duración_de_la_suscripción< 20.5 28  7 1 (0.7500000 0.2500000) *
##       13) Duración_de_la_suscripción>=20.5 37 17 1 (0.5405405 0.4594595)  
##         26) Duración_de_la_suscripción>=22.5 26 11 1 (0.5769231 0.4230769)  
##           52) Duración_de_la_suscripción< 27.5 19  7 1 (0.6315789 0.3684211) *
##           53) Duración_de_la_suscripción>=27.5 7  3 2 (0.4285714 0.5714286) *
##         27) Duración_de_la_suscripción< 22.5 11  5 2 (0.4545455 0.5454545) *
##      7) Duración_de_la_suscripción< 11.5 15  4 2 (0.2666667 0.7333333) *
plot(arbol_decision)

Prediccion de las variables

nuevo_df <- data.frame(datos$Duración_de_la_suscripción, datos$Uso_de_servicios)
predict(arbol_decision, newdata=, type='vector')
##   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
##   1   1   1   1   2   1   2   2   1   1   1   2   1   1   1   1   1   1   1   2 
##  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40 
##   1   2   2   1   2   1   1   2   2   2   1   1   1   1   2   1   2   1   1   2 
##  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60 
##   1   1   2   2   2   1   1   2   2   1   2   1   1   1   1   2   1   2   1   1 
##  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80 
##   1   1   1   1   1   1   2   1   2   1   1   2   1   1   2   1   2   2   2   2 
##  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 
##   1   1   1   2   1   1   1   1   1   1   2   1   1   1   2   1   1   1   1   1