Titanic

“Ni siquiera Dios hunde el Titanic”, era la reputación que se tenía de este barco cuando zarpó de Southhampton con destino a Nueva York el 10 de abril de 1912. Tras chocar con un iceberg en la noche del 14 de abril, murieron 1496 personas de las 2208 que iban a bordo, lo que convierte a esta catástrofe en uno de los mayores naufragios de la historia.

Primer paso

Importar la base de datos y entender las variables que se tienen. Un resumen resulta apropiado para poder hacer esto.

#file.choose()
bd_t<-read.csv("/Users/elenavela/Downloads/titanic.csv")
resumen<-summary(bd_t)
resumen
##      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

Segundo paso

Mediante el resumen, podemos FILTRAR las varriables que pudieron haber tenido un mayor impacto en sobrevivir o no el hundimiento del Titanic.

Las variables que se determinaron que impactan más el salvarse o no son las siguientes tres: la clase social (primera, segunda y tercera), el género o sexo (hombre o mujer), y la edad.

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

Titanic$survived<-as.factor(ifelse(Titanic$survived==0,"Murió","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 ...
##  $ sex     : Factor w/ 3 levels "","female","male": 2 3 2 3 2 3 2 3 2 3 ...
##  $ age     : num  29 0.917 2 30 25 ...
##  $ survived: Factor w/ 2 levels "Murió","Sobrevivió": 2 2 1 1 1 2 2 1 2 1 ...
sum(is.na(Titanic))
## [1] 266
Titanic<-na.omit(Titanic)

Tercer paso

Al descargar dos librerías “rpart” y “rpart.plot” podremos llegar a crear el árbol de decisión. Lo que este determina será explicado en las conclusiones.

#install.packages("rpart")
library(rpart)
#install.packages("rpart.plot")
library(rpart.plot)
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 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(arbol)

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

Conclusiones

Este arbol de decisión pretende analizar las probabilidades de sobrevivir que existen en caso de haber estado en el Titanic. A partir de los plots que se generan, podemos ver la probabilidad (el decimal) que existe de que alguien sobreviva dependiendo de su género, edad, y clase social.

La manera en la que se puede leer esto es tomando en cuenta que a la derecha es NO, y a la izquierda es SI. Viendo que el primer argumento es que sea “hombre”, a la derecha significa que no es hombre, o bien que es mujer. Así se pueden seguir leyendo los argumentos; si dice que la “pclass=3”, y vamos a la derecha, significaría que el sujeto NO es parte de tercerca clase social. Otra cosa a recordar es que lo que el nos menciona es la propabilidad que tiene la persona de SOBREVIVIR, aunque en la descripción diga murió.

Tomando en cuenta este funcionamiento, y recordando que la probabilidad que queremos es la que está expresada en forma decimal, podemos determinar la probabilidad de supervivencia de alguien en el Titanic, si es que conocemos su género, edad y clase social.

Siguientemente, analizamos algunos de los resultados de este árbol de decisiones. Un número que resulta interesante es el caso de que el 100% sobrevivió, tomando en cuenta el árbol, conocemos que el grupo de personas que sobrevivió consiste de hombres, menores a 9.5 de edad, y que no pertenecían a la tercera clase social. Así es como podemos determinar la probabilidad de que alguien hubiera sobrevivido en el hundimiento del Titanic. Como ejemplo, y tomandome en cuenta a mi (mujer, 21) voy a ver mis probabilidades de sobrevivir si hubiera sido de primera clase o tercera clase.

Elena, primera clase-> 93% de sobrevivir.
Elena, tercerca clase-> 46% de sobrevivir.

Para finalizar con la conclusión de los resultados del árbol de decisión del Titanic, me es posible decir que me parece una herramienta sumamente útil y fácil de leer. Mediante pocas líneas de código fue posible establecer probabilidades, y verlas de una manera más limpia y acomodada, como lo son estos plots. Al escoger en clase los códigos que quisieramos enseñar este fue en el que pensé primero, debido a la gran satisfacción y emoción que me dió el entender probabilidades de manera dinámica y de un tema tan interesante como lo fue el hundimiento del Titanic.