# file.choose()
base_de_datos <- read.csv("/Users/mayracampoyramos/Documents/Semana 18 /Analisis/4 Semestre /5to Semetre/Analisis de Datos Concentracion/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, "Murio", "Sobrevivio"))
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 "Murio","Sobrevivio": 2 2 1 1 1 2 2 1 2 1 ...
sum(is.na(Titanic))
## [1] 263
Titanic <- na.omit(Titanic)
# install.packages("rpart")
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 Sobrevivio (0.41860465 0.58139535)
## 10) pclass=3 29 11 Murio (0.62068966 0.37931034) *
## 11) pclass=1,2 14 0 Sobrevivio (0.00000000 1.00000000) *
## 3) sex=female 388 96 Sobrevivio (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 Sobrevivio (0.14285714 0.85714286) *
## 7) pclass=1,2 236 16 Sobrevivio (0.06779661 0.93220339) *
# install.packages("rpart.plot")
library(rpart.plot)
rpart.plot(arbol)
prp(arbol, extra =7, prefix = "fraccion\n")
En este código utilizamos el árbol de decisión para encontrar qué variables afectan para que una persona que estaba en el Titanic sobreviviera. Primero, después de entender la base de datos se filtraba como factores a las variables que influyen que fueron: la edad, la clase social y el sexo de las personas.
Después se instalaron los paquetes para generar el árbol de decisión, en el cual se puede observar que la primera variable que es decisiva para que la persona sobreviviera era si es hombre ya existía un 63% que no sobreviviera. El factor con un 23%, mas alto, de sobrevivencia era cuando el sexo era mujer con una alta clase, sin importar la edad. Después , la segunda probabilidad más alta de sobrevivencia es 1% siendo mujer , con clase baja y siendo una bebe. Estos son unos de los factores que afectaron directamente a que si una persona sobrevivía en el Titanic.