Комментарии 10
"Работа с отсутствующими значениями в Pandas". Дарю.
Это значит, что пассажиры у которых возраст отсутствовал имели меньше шансов выжить. У них также был более дешевый билет и более низкий класс. Следовательно делаем вывод, что возраст случайно не занесли.
Вот в упор не понимаю, как из озвученных фактов можно было сделать озвученный вывод...
Среди пассажиров, у которых значение возраста отсутствовало, были выжившие (около 30%) и погибшие (около 70%) - колонка 'Survived’, True = 0.29 .
Эти пассажиры были в более низком классе:
колонка 'Pclass’ - True = 2.59 (это среднее значение класса)
колонка ‘Fare’ - True = 22.15 (это среднее значение стоимости билета)
Подсчет значений в колонке 'Pclass':
Например, в 3 классе было 491 пассажира (это 55%)
Пассажиров было много в 3 классе и много погибло (около76% пассажиров 3-го класса), то при опросе у выживших и при осмотре тел погибших могли случайно пропустить возраст пассажира (человеческий фактор).
Это значит, что пассажиры у которых возраст отсутствовал имели меньше шансов выжить. У них также был более дешевый билет и более низкий класс.
Следовательно делаем вывод, что возраст случайно не занесли.
Неубедительно.
Более низкий класс означает с приличной вероятностью более дешёвый билет. И менее безопасное или с менее надёжными средствами спасения место. Что и приводит к снижению шансов выжить.
Что же до отсутствия сведений о возрасте - то дешёвые билеты, как ни странно, приносят бОльшую часть прибыли, а потому на отсутствие или нежелание сообщить возраст больше смотрят сквозь пальцы. Спросить, а потом ещё и занести возраст - лишняя работа. И если допустимо её не делать - её и не будут делать.
Так что связь, конечно, есть - но не та, которая описана в статье. Просто так совпало.
Крушение «Титаника»
Материал из Википедии — свободной энциклопедии
"Четверо из пяти спасшихся людей являлись пассажирами первого и второго классов. Ближе всех к шлюпочной палубе были пассажиры первого класса, каюты которых располагались преимущественно на верхних палубах, поэтому среди них велика доля спасённых (62 %). Большая часть пассажиров третьего класса не смогла выбраться из лабиринта коридоров нижних палуб. Они были отделены от первого и второго классов воротами, находившимися в разных частях судна, многие из которых оказались закрыты"
"Известно, что женщинам из кают третьего класса в большинстве случаев не препятствовали выйти на шлюпочную палубу, наоборот, их всячески призывали к этому, но не всегда эти призывы находили положительный отклик. Многие из женщин, размещавшихся на корме, сначала вообще отказывались покидать свои каюты[157]. Часть пассажиров третьего класса добиралась до шлюпочной палубы в обход барьеров, ограждавших их от остальных: по стрелам грузоподъёмных кранов на корме, по такелажам, перелезая через леера, люди пробирались к трапам и палубам первого и второго классов, откуда беспрепятственно можно было попасть к шлюпкам"
Поиск и захоронение тел
"Экипаж «Маккей-Беннетт» за две недели поисков обнаружил и поднял 306 тел, на его борту быстро закончились бальзамирующие вещества. Согласно санитарным правилам в порт могли быть доставлены только бальзамированные тела, поэтому капитан «Маккей-Беннетта» принял решение захоронить многих пассажиров 3 класса и членов экипажа в море. Кроме того, некоторые тела были настолько повреждены, что опознание было невозможно. На континент были доставлены в основном пассажиры 1 класса, которых определяли по дорогой одежде и личным вещам. Тела остальных зашивали в холщовые мешки, прикрепляли грузило весом 23 килограмма и по одному сбрасывали в море. Всего в море с «Маккей-Беннетта» было захоронено 116 человек, 60 из них не были опознаны "
Про заполнение отсутствующего возраста встретил крутую идею в другой статье: https://habr.com/en/company/mlclass/blog/270973/
Если посмотреть на имя пассажира, там явно прослеживается "титул": Mr, Mrs, Miss etc. И внутри этих "титулов" распределение возраста будет уже гораздо точнее, чем в среднем по больнице. Рекомендую посмотреть статью, там хоть и R, но логика исследования данных интересно описана
Да, конечно, если посмотреть на имя пассажира, там явно прослеживается "титул". Но "титул" и имя не влияет на выживаемость и не связан с .возрастом.
Посмотрим на подсчет значений в колонке 'Title'
# Extract a title for each Name
# 'Title'
train_df['Title'] = train_df.Name.str.extract(' ([A-Za-z]+)\.', expand=False)
train_df['Title'].value_counts()
Мы видим, что Mr - 517 пассажиров, Miss - 182, Mrs - 125, Master - 40 и другие "титулы " ( от 1 до 7)
frequent_titles = train_df['Title'].value_counts()[:4].index.tolist()
train_df['Title'] = train_df['Title'].apply(lambda x: x if x in frequent_titles else 'Other')
train_df['Title'].value_counts()
"Титулы" не связанны с возрастом, но сильно связаны с полом пассажира.
"Титулы" показывают нам принадлежность к полу.
pd.crosstab(train_df['Title'], train_df['Sex'])
Мы видим, что Master и Mr это - мужчины, а Miss и Mrs это - женщины. И мы не можем сказать, сколько им лет.
Из 36 Master - у 4 не указан возраст, из 398 Mr - у 119 не указан возраст и т д.
PS:
Для более полного детального анализа я создала новую колонку 'Age_NaN' (бинарный классификатор). Провела анализ в зависимости от наличия записи о возрасте , класса. пола и выживаемости ( статья обновлена).
Титул все-таки имеет корреляцию с возрастом - об этом написано по ссылке, да и вообще это логично: чтобы дослужиться до Colonel надо потратить какое-то время, а Miss в какой-то момент становится Mrs.
Ниже, на ящике с усами, можно увидеть, что у каждого титула свой "средний возраст"
Титул не влияет на выживаемость. Но помогает более точно заполнить пропуски в "возрасте", а это уже дальше повлияет на качество модели.
Работа с отсутствующими значениями в Pandas