Importar base de datos

file.choose()
## [1] "C:\\Users\\ximen\\OneDrive\\Escritorio\\Titanic_.Rmd"
base_de_datos <- read.csv("C:\\Users\\ximen\\Downloads\\titanic.csv")

Entender la base de datos

summary(base_de_datos)
##      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 datos

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

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 ...
sum(is.na(Titanic))
## [1] 266
Titanic <- na.omit(Titanic)

Crear árbol de decisión

library(rpart)
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) *

Gráficas

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

prp(arbol, extra = 7, prefix = "fracción\n")

plot(Titanic$pclass,Titanic$survived, main= "Clase de los sobrevivientes", xlab = "Clase", ylab="Sobrevivió")

Conclusión

Para concluír, es importante mencionar los retos y aprendizajes que se generaron a partir del programa creado y la importancia de que existan herramientas de visualización de datos como lo es el árbol de decisión y laa gráficas, el cual ayuda a visualizar hechos actuales o pasados, así como a predecir el futuro en base a la tendencia que se ve en ciertos gráficos, en el caso del programa Titanic, se basa en hechos del pasado.

El árbol de decisión, suele utilizarse para ver todos los posibles escenarios de una situación, en este caso, para crearlo fue necesario entender la base de datos con la función de summary, que a su vez nos mostro toda una base de datos referente a los hechos sucedidos en el Titanic.

Por otro lado, R también tiene funciones que permiten filtrar la base de datos, la cual usamos al ver ciertos errores en la base de datos que se podían corregir desde R, como darle nombre a las opciones de Sobrevivientes (Sobrevivió/Murió), y también nos ayudo a mostrar solo los datos útiles como lo fue Edad, Sexo y Clase de los tripulantes.

Por último, el mayor aprendizaje fue crear dos árboles de decisión distintos, lo cual también nos deja saber que no todos los árboles de decisión tienen que ser necesariamente iguales.