scholar_vit: (knot)
[personal profile] scholar_vit

Вчера обновил на своих компьютерах R. Это такая очень удобная программа для разных статистических вычислений; в последнее время она стала одним из моих основных инструментов, вместе с пакетом knitr для автоматической генерации отчетов. Я использовал этот пакет для написания этой заметки.

Среди прочего в дистрибутив R входит больше ста разных наборов данных для тестирования, от количества авиапассажиров за каждый месяц с 1949 по 1960 год до роста и веса американских женщин в семидесятые. Один из этих наборов — статистика выживаемости на "Титанике". Это четырехмерный массив с четырьмя категориями: класс, пол, возраст, выжил человек или нет. Из него легко узнать, например, были ли больше шансы выжить у взрослых или детей:

apply(Titanic, c("Age","Survived"),sum)
##        Survived
## Age       No Yes
##   Child   52  57
##   Adult 1438 654

Мы видим, что спаслось больше половины детей, но только около трети взрослых:

prop.table(apply(Titanic, c("Age","Survived"),sum),1)
##        Survived
## Age            No       Yes
##   Child 0.4770642 0.5229358
##   Adult 0.6873805 0.3126195

Женщин тоже спасали в первую очередь:

apply(Titanic, c("Sex","Survived"),sum)
##         Survived
## Sex        No Yes
##   Male   1364 367
##   Female  126 344
prop.table(apply(Titanic, c("Sex","Survived"),sum),1)
##         Survived
## Sex             No       Yes
##   Male   0.7879838 0.2120162
##   Female 0.2680851 0.7319149

Однако самое интересное — это влияние на выживаемость социального статуса. На "Титанике" были пассажиры первого, второго и третьего класса, а также экипаж. Вот статистика по ним:

apply(Titanic, c("Class","Survived"),sum)
##       Survived
## Class   No Yes
##   1st  122 203
##   2nd  167 118
##   3rd  528 178
##   Crew 673 212
prop.table(apply(Titanic, c("Class","Survived"),sum),1)
##       Survived
## Class         No       Yes
##   1st  0.3753846 0.6246154
##   2nd  0.5859649 0.4140351
##   3rd  0.7478754 0.2521246
##   Crew 0.7604520 0.2395480

Видно, как по мере уменьшения статуса падают и шансы выжить. Это можно изобразить на графике:

mosaicplot(prop.table(apply(Titanic, c("Class","Survived"),sum),1),
color=TRUE, main="Survival and Class")
plot of chunksurvival.and.class

Интересно также посмотреть на выживание детей:

apply(Titanic[,,"Child",],
c("Class","Survived"),sum)
##       Survived
## Class  No Yes
##   1st   0   6
##   2nd   0  24
##   3rd  52  27
##   Crew  0   0
prop.table(apply(Titanic[,,"Child",],
c("Class","Survived"),sum),1)
##       Survived
## Class         No       Yes
##   1st  0.0000000 1.0000000
##   2nd  0.0000000 1.0000000
##   3rd  0.6582278 0.3417722
##   Crew       NaN       NaN

Спасли всех детей, плывших в первом и втором классе, но только треть детей из третьего (среди экипажа детей не было). Более того, выживаемость детей в третьем классе меньше общей выживаемости в первом и втором.

Посмотрим еще на выживаемость взрослых мужчин и женщин по классам:

prop.table(Titanic[,"Male","Adult",],1)
##       Survived
## Class         No        Yes
##   1st  0.6742857 0.32571429
##   2nd  0.9166667 0.08333333
##   3rd  0.8376623 0.16233766
##   Crew 0.7772622 0.22273782
prop.table(Titanic[,"Female","Adult",],1)
##       Survived
## Class          No       Yes
##   1st  0.02777778 0.9722222
##   2nd  0.13978495 0.8602151
##   3rd  0.53939394 0.4606061
##   Crew 0.13043478 0.8695652

Ну и общая картинка (в абсолютных числах):

mosaicplot(Titanic, color=TRUE)
plot of chunk titanic

Да, обещанный совет. Он, боюсь, тривиален, но все же.

Если вы плывете на "Титанике", постарайтесь быть вызывающим жалость пассажиром первого класса.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

scholar_vit: (Default)
scholar_vit

January 2019

S M T W T F S
  12345
678 9101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 30th, 2025 05:02 pm
Powered by Dreamwidth Studios