#file.choose()
base_de_datos <- read.csv("/Users/carlosgonzalez/Desktop/Analitica para negocios/Modulo 3/Todos los R Rdowns y HTMLs/titanic.csv")
summary(base_de_datos)
## pclass survived name sex
## Min. :1.000 Min. :0.000 Length:1309 Length:1309
## 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
##
## age sibsp parch ticket
## Min. : 0.1667 Min. :0.0000 Min. :0.000 Length:1309
## 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 :263
## fare cabin embarked boat
## Min. : 0.000 Length:1309 Length:1309 Length:1309
## 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 :1
## body home.dest
## Min. : 1.0 Length:1309
## 1st Qu.: 72.0 Class :character
## Median :155.0 Mode :character
## Mean :160.8
## 3rd Qu.:256.0
## Max. :328.0
## NA's :1188
titanic <- base_de_datos[,c("pclass", "age", "sex", "survived")]
titanic$survived <- as.factor (ifelse(titanic$survived==0,"Murió?","Sobreviví?"))
titanic$pclass <- as.factor (titanic$pclass)
titanic$sex <- as.factor(titanic$sex)
str(titanic)
## 'data.frame': 1309 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/ 2 levels "female","male": 1 2 1 2 1 2 1 2 1 2 ...
## $ survived: Factor w/ 2 levels "Murió?","Sobreviví?": 2 2 1 1 1 2 2 1 2 1 ...
sum(is.na(titanic))
## [1] 263
titanic <- na.omit(titanic)
library(rpart)
arbol <- rpart(formula = survived ~ ., data = titanic )
arbol
## 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 Sobreviví? (0.41860465 0.58139535)
## 10) pclass=3 29 11 Murió? (0.62068966 0.37931034) *
## 11) pclass=1,2 14 0 Sobreviví? (0.00000000 1.00000000) *
## 3) sex=female 388 96 Sobreviví? (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 Sobreviví? (0.14285714 0.85714286) *
## 7) pclass=1,2 236 16 Sobreviví? (0.06779661 0.93220339) *
#install.packages("rpart.plot")
library(rpart.plot)
rpart.plot(arbol)
prp(arbol,extra=7,prefix="fraccion/n")
Por una parte, aprendí de lo que es capaz la libreria de rpart y rpart.plot para realizar arboles de decision; ahora bien, para aplicado a este caso, considero de gran utilidad el hecho de que deja saber de las distintas clases que existían en el barco, el porcentaje de probabilidad de sobrevivir al hundimiento de la embarcacón, lo cual da lugar a identificar cuales fueron elementos claves para que un pasajero sobreviviera y con base a ello analizar lo sucedido.