“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.
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
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)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")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.