library(stats)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.2.1
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(rpart)
## Warning: package 'rpart' was built under R version 4.2.1
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.2.1
df <- read.csv("C:\\Users\\aldof\\Documents\\1 Tec\\Semana Tec 1 - Bootcamp de Programación\\Tercera Clase\\titanic.csv")
Se filtrará la base de datos para que únicamente se cuenten las columnas que se necesitan para el análisis que en este caso será conocer la probabilidad de haber sobrevivido al titanic siendo hombre.
titanic <- df[,c("pclass", "age", "sex", "survived")]
Se convertirá el tipo de variables a “factor”, para que si en la columna “sobrevivió” el valor es 0, se cambie a “Murió” o si es otro valor a “sobrevivió”, esto para que sea más fácil verlo de forma gráfica.
titanic$survived <- as.factor(ifelse(titanic$survived==0, "Murió", "Sobrevivió"))
titanic$pclass <- as.factor(titanic$pclass)
titanic$sex <- as.factor(titanic$sex)
También se eliminan los NA’s para evitar sesgos en la información
sum(is.na(titanic))
## [1] 266
titanic <- na.omit(titanic)
Por último se crea el árbol de decisión para conocer la probabilidad.
tree <- rpart(formula =survived ~ ., data=titanic)
tree
## n= 1046
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 1046 427 Murió (0.59177820 0.40822180)
## 2) sex=male 658 135 Murió (0.79483283 0.20516717)
## 4) age>=9.5 615 110 Murió (0.82113821 0.17886179) *
## 5) age< 9.5 43 18 Sobrevivió (0.41860465 0.58139535)
## 10) pclass=3 29 11 Murió (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 Murió (0.52631579 0.47368421)
## 12) age>=1.5 145 66 Murió (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(tree)
Implementando el árbol de decisiones nos podemos dar cuenta de diversos escenarios de una situación, en este caso el Titanic, y nos ayuda a tomar decisiones basados en ellos. Por ejemplo, si nos vamos a subir a un Titanic igual que el que se hundió y somos hombres, vemos la probabilidad de sobrevivir siendo mayores de 9.4 años y observamos que es de 18%, no tiene mucho sentido que nos subamos si sabemos que nos moriremos con un 82% de certeza.