#### Este analisis tiene como propósito entrar a profundidad dentro de las capacidades de R en los aspectos de análisis de datos. En este caso se evalua a profundidad la capacidad de diseñar un arbol de toma de decisiones que muestre las probabilidades a un efecto segun criterios determinados, esto en el caso de la posibilidad de sobrevivir o morir siendo un pasajero en el titanic..

Instalar programas requeridos

#install.packages("rpart")
#install.packages("rpart.plot")
library(rpart)
library(rpart.plot)

Importar base de datos

df<-read.csv("/Users/daviddrums180/Downloads/titanic.csv")

Preparación de Base de Datos

Entender la base de datos

Resumen a profundidad de la base de datos, gracias a esto se puede saber si existen NA, datos incorrectos, incompletos o algún tipo de falla. Ademas de esto, este resumen nos permite conocer el tipo de cada columna de datos (str,int,chr,etc.)

summary(df)
##      pclass         survived         name               sex           
##  Min.   :1.000   Min.   :0.000   Length:1310        Length:1310       
##  1st Qu.:2.000   1st Qu.:0.000   Class :character   Class :character  
##  Median :3.000   Median :0.000   Mode  :character   Mode  :character  
##  Mean   :2.295   Mean   :0.382                                        
##  3rd Qu.:3.000   3rd Qu.:1.000                                        
##  Max.   :3.000   Max.   :1.000                                        
##  NA's   :1       NA's   :1                                            
##       age              sibsp            parch          ticket         
##  Min.   : 0.1667   Min.   :0.0000   Min.   :0.000   Length:1310       
##  1st Qu.:21.0000   1st Qu.:0.0000   1st Qu.:0.000   Class :character  
##  Median :28.0000   Median :0.0000   Median :0.000   Mode  :character  
##  Mean   :29.8811   Mean   :0.4989   Mean   :0.385                     
##  3rd Qu.:39.0000   3rd Qu.:1.0000   3rd Qu.:0.000                     
##  Max.   :80.0000   Max.   :8.0000   Max.   :9.000                     
##  NA's   :264       NA's   :1        NA's   :1                         
##       fare            cabin             embarked             boat          
##  Min.   :  0.000   Length:1310        Length:1310        Length:1310       
##  1st Qu.:  7.896   Class :character   Class :character   Class :character  
##  Median : 14.454   Mode  :character   Mode  :character   Mode  :character  
##  Mean   : 33.295                                                           
##  3rd Qu.: 31.275                                                           
##  Max.   :512.329                                                           
##  NA's   :2                                                                 
##       body        home.dest        
##  Min.   :  1.0   Length:1310       
##  1st Qu.: 72.0   Class :character  
##  Median :155.0   Mode  :character  
##  Mean   :160.8                     
##  3rd Qu.:256.0                     
##  Max.   :328.0                     
##  NA's   :1189

Filtrar base de Titanic

Titanic <- df[,c("pclass","age","sex","survived")]

Convertir tipos de variable

Titanic$survived <- as.factor(ifelse(Titanic$survived==0,"Murio","Sobrevivió"))
Titanic$pclass <- as.factor(Titanic$pclass)
Titanic$sex <- as.factor(Titanic$sex)
str(Titanic)
## 'data.frame':    1310 obs. of  4 variables:
##  $ pclass  : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
##  $ age     : num  29 0.917 2 30 25 ...
##  $ sex     : Factor w/ 3 levels "","female","male": 2 3 2 3 2 3 2 3 2 3 ...
##  $ survived: Factor w/ 2 levels "Murio","Sobrevivió": 2 2 1 1 1 2 2 1 2 1 ...

Eliminar NA

sum(is.na(Titanic))
## [1] 266
Titanic <- na.omit(Titanic)

Arbol de decision

Crear arbol de decision

arbol <- rpart(formula =survived ~., data=Titanic)
arbol
## n= 1046 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
##  1) root 1046 427 Murio (0.59177820 0.40822180)  
##    2) sex=male 658 135 Murio (0.79483283 0.20516717)  
##      4) age>=9.5 615 110 Murio (0.82113821 0.17886179) *
##      5) age< 9.5 43  18 Sobrevivió (0.41860465 0.58139535)  
##       10) pclass=3 29  11 Murio (0.62068966 0.37931034) *
##       11) pclass=1,2 14   0 Sobrevivió (0.00000000 1.00000000) *
##    3) sex=female 388  96 Sobrevivió (0.24742268 0.75257732)  
##      6) pclass=3 152  72 Murio (0.52631579 0.47368421)  
##       12) age>=1.5 145  66 Murio (0.54482759 0.45517241) *
##       13) age< 1.5 7   1 Sobrevivió (0.14285714 0.85714286) *
##      7) pclass=1,2 236  16 Sobrevivió (0.06779661 0.93220339) *
rpart.plot(arbol)

#Conclusion

Gracias a las diferentes técnicas presentadas en este programa, se puede concluir los pasos necesarios para llevar a cabo el procedimiento de identificacion de posibilidades para diseñar un arbol de decision. En este caso, se permite tener la posibilidad de tener la posibilidad de sobrevivir en el Titanic segun tus razgos, clase, genero, etc. Sin embargo tambien puede ser utilizado para la toma de decisiones dentro de empresas, al contrarestar posibilidades de compra de ciertos productos.