Исходный размер 1140x1600

Суицид: анализ данных

PROTECT STATUS: not protected
Исходный размер 3072x1361

Суицид — важная и тяжелая проблема нашего общества, о которой не принято говорить открыто. Анализ уровня суицида является важным социально-демографическим показателем, отражающим совокупное влияние экономических, культурных и психологических факторов. В разных странах и временных периодах этот показатель ведёт себя по-разному, что делает его анализ особенно значимым для понимания устойчивых различий между социальными группами. Изучение динамики самоубийств во времени, а также различий по полу, странам и поколениям позволяет увидеть, как масштабные человеческие процессы проявляются в статистических данных.

В своём анализе я использовала датасет «Suicide Rates Overview 1985–2016», опубликованный на платформе Kaggle. Датасет содержит данные о количестве самоубийств, численности населения, уровне самоубийств на 100 тысяч человек, поле, возрастных группах и поколениях в разных с странах в период с 1985 по 2016 год.

Кроме того, в набор данных входят макроэкономические показатели, такие как ВВП на душу населения и индекс человеческого развития (HDI), что позволяет рассматривать уровень самоубийств в более широком социально-экономическом контексте.

Интерес к этому датасету был обусловлен несколькими причинами:

Во-первых, тема напрямую связана с социальными и демографическими процессами и показывает, как сложные и болезненные человеческие явления могут быть формализованы в виде чисел.

Во-вторых, структура данных позволяет анализировать изменения во времени и сравнивать разные группы — по полу, странам и поколениям, — выстраивая связный исследовательский нарратив и предоставляя пространство для анализа причин суицида и выявления наиболее подверженных проблеме групп.

В-третьих, датасет даёт возможность сочетать визуальный анализ с применением статистических методов, переходя от наглядных графиков к проверке гипотез.

Исходный размер 3072x1361

На начальном этапе данные были загружены из CSV-файла master.csv с использованием языка программирования Python и библиотеки Pandas.

После загрузки была выполнена базовая подготовка структуры таблицы: названия столбцов очищены от лишних пробелов.

Для первичного ознакомления с данными были выведены первые строки таблицы, а также информация о типах переменных и наличии пропусков. Этот шаг позволил понять общую структуру датасета, определить числовые и категориальные переменные и наметить дальнейшие шаги по очистке данных.

Исходный размер 918x180

На втором этапе была проведена очистка данных и приведение переменных к корректным типам, необходимым для дальнейшего анализа и визуализации. В первую очередь столбец year был преобразован в числовой формат.

Далее числовые показатели, содержащие значения с разделителями, были очищены от запятых и приведены к типам float или int. Также была выполнена стандартизация значений переменной sex, чтобы избежать дублирования категорий из-за различий в формате записи.

Исходный размер 830x608

Для визуального оформления проекта была выбрана ограниченная холодная палитра, основанная на сочетании чёрного, тёмно-синего и светлых голубых оттенков с белыми акцентами. Такое решение напрямую отсылает к визуальному языку фирменного стиля проекта и поддерживает общее эмоциональное и смысловое поле — холодное, тяжелое.

Глубокий чёрный (фон) #0E0E11 Тёмный ночной синий #1C2A3A Холодный сине-серый #3A5F7D Приглушённый голубой #6FA3C8 Светлый ледяной голубой #BFD9EA Мягкий белый (акценты, текст) #F4F6F8

Исходный размер 3072x1361

Динамика во времени не является линейной или однозначной. В разные периоды наблюдаются росты и спады, что показывает: для корректной интерпретации необходимо учитывать дополнительные факторы и разбиение на группы. Также становится очевидно, что абсолютные значения и нормализованный показатель могут демонстрировать разные визуальные тренды, поэтому их важно рассматривать совместно.

fig, ax = plt.subplots (figsize=(12, 5))

ax.plot ( yearly[«year»], yearly[«suicides_total»], color=COL_BLACK, linewidth=2.2 )

ax.set_title («Глобальная динамика: абсолютное число самоубийств (1985–2016)») ax.set_xlabel («Год») ax.set_ylabel («Количество случаев (сумма по всем странам)»)

ax.text ( 0.02, 0.98, «Абсолютные числа зависят от размера населения.\n» «Поэтому далее дополнительно смотрим показатель на 100 тыс.», transform=ax.transAxes, ha="left», va="top», color=»#F4F6F8», bbox=dict ( boxstyle="round, pad=0.4», facecolor=»#1C2A3A», edgecolor=»#3A5F7D», linewidth=1 ) )

plt.tight_layout () plt.show ()

Исходный размер 1187x487

fig, ax = plt.subplots (figsize=(12, 5))

ax.plot ( yearly[«year»], yearly[«rate_mean»], color=COL_RED, linewidth=2.2 )

ax.set_title ( «Глобальная динамика: средний уровень самоубийств на 100 тыс. населения» ) ax.set_xlabel («Год») ax.set_ylabel («Самоубийства на 100 тыс. (среднее по странам/наблюдениям)»)

подсказка-вынос (использует обновлённый add_callout)

add_callout ( ax, «Нормализация (на 100 тыс.)\n» «позволяет сравнивать страны и годы корректнее.», xy=(0.02, 0.98) )

plt.tight_layout () plt.show ()

Исходный размер 3072x1361

Гендерный разрыв сохраняется на протяжении всего анализируемого периода: показатели среди мужчин стабильно выше, чем среди женщин. При этом форма кривых у мужчин и женщин схожа, что говорит о схожей общей динамике, но на разных уровнях. Это указывает на устойчивый структурный характер различий, а не на единичные всплески.

Исходный размер 1187x487

pivot_sex = yearly_sex.pivot (index="year», columns="sex», values="rate_mean»)

fig, ax = plt.subplots (figsize=(12, 5), facecolor=BG)

if «male» in pivot_sex.columns: ax.plot ( pivot_sex.index, pivot_sex[«male»], color=COL_RED, # приглушённый голубой linewidth=2.4, label="Мужчины» )

if «female» in pivot_sex.columns: ax.plot ( pivot_sex.index, pivot_sex[«female»], color=COL_ORNG, # светлый ледяной голубой linewidth=2.4, label="Женщины» )

ax.set_title ( «Уровень самоубийств по полу: динамика (на 100 тыс.)», color=COL_BLACK ) ax.set_xlabel («Год», color=COL_BLACK) ax.set_ylabel («Самоубийства на 100 тыс.», color=COL_BLACK)

легенда в тёмном стиле

ax.legend ( frameon=True, facecolor="

1C2A3A»,

тёмный ночной синий edgecolor=»#3A5F7D», labelcolor=COL_BLACK )

выноска (использует обновлённый add_callout)

add_callout ( ax, «Наблюдается устойчивый гендерный разрыв:\n» «мужчины выше женщин на протяжении всего периода.» )

plt.tight_layout () plt.show ()

Исходный размер 3072x1361

У стран наблюдаются принципиально разные формы динамики: в одних странах уровень снижается, в других — растёт или колеблется. Это подтверждает, что не существует универсального глобального тренда, и анализ уровня самоубийств требует учёта национального контекста.

Исходный размер 1187x587

countries = list (top_countries) colors = custom_colors[: len (generations)]

fig, ax = plt.subplots (figsize=(12, 6))

for country, color in zip (countries, colors): d = yearly_country[yearly_country[«country»] == country] ax.plot (d[«year»], d[«rate_mean»], color=color, linewidth=2.0, label=country)

ax.set_title (f"Топ-{topN} стран по вкладу: уровень самоубийств (на 100 тыс.)») ax.set_xlabel («Год») ax.set_ylabel («Самоубийства на 100 тыс.») ax.legend (ncol=2, frameon=True, facecolor="

FFFDF8», edgecolor=»

E5DDCF»)

add_callout (ax, «Одинакового „универсального“ тренда нет:\n» «траектории заметно отличаются между странами.»)

plt.tight_layout ()

Исходный размер 3072x1361

Некоторые показатели демонстрируют статистическую связь с уровнем самоубийств. При этом важно подчеркнуть, что корреляция не означает причинно-следственную связь, а лишь указывает на совместное изменение показателей.

Исходный размер 661x537

fig, ax = plt.subplots (figsize=(6.5, 5.5), facecolor=BG)

чтобы область осей тоже была тёмной (иногда rcParams не применяются везде)

ax.set_facecolor (BG)

im = ax.imshow ( corr.values, cmap=custom_cmap, vmin=-1, vmax=1 )

подписи осей

ax.set_xticks (range (len (corr.columns))) ax.set_yticks (range (len (corr.columns)))

ax.set_xticklabels ( [«Суициды / 100 тыс.», «ВВП на душу», «ИЧР»], rotation=25, ha="right», color=COL_BLACK ) ax.set_yticklabels ( [«Суициды / 100 тыс.», «ВВП на душу», «ИЧР»], color=COL_BLACK )

тонкие линии сетки по ячейкам (чтобы матрица читалась аккуратно)

ax.set_xticks ([x — 0.5 for x in range (1, corr.shape[1])], minor=True) ax.set_yticks ([y — 0.5 for y in range (1, corr.shape[0])], minor=True) ax.grid (which="minor», color=»#1C2A3A», linestyle="-», linewidth=1) ax.tick_params (which="minor», bottom=False, left=False)

Автоконтраст текста: цвет зависит от яркости ячейки

norm = mcolors.Normalize (vmin=-1, vmax=1)

for i in range (corr.shape[0]): for j in range (corr.shape[1]): val = corr.values[i, j]

    # RGBA цвет ячейки из cmap
    r, g, b, _ = custom_cmap (norm (val))

    # воспринимаемая яркость
    luminance = 0.2126 * r \+ 0.7152 * g \+ 0.0722 * b

    # если фон тёмный — белый текст, если светлый — тёмный
    txt_color = «<h3>F4F6F8» if luminance &lt; 0.45 else »</h3>0E0E11»

    ax.text (
        j, i,
        f"{val:.2f}»,
        ha="center»,
        va="center»,
        color=txt_color,
        fontsize=11,
        fontweight="bold»

)

оформление осей под тёмный фон

ax.tick_params (colors=COL_BLACK) for spine in ax.spines.values (): spine.set_color (COL_BLACK)

ax.set_title («Корреляции (Спирмен): уровень и макропоказатели», color=COL_BLACK)

выноска (предполагается, что add_callout уже обновлена под тёмный фон)

add_callout ( ax, «Спирмен оценивает монотонную связь\nи менее чувствителен к выбросам,\nчем корреляция Пирсона.», xy=(0.02, 0.98) )

plt.tight_layout () plt.show ()

Исходный размер 3072x1361
post

ChatGPT 5.2 как вспомогательный инструмент на этапе формулирования исследовательской темы и поиска данных: я обратилась с запросом проанализировать мои исследовательские интересы, предыдущий опыт работы с визуальными и социальными темами, а также предпочтения в формате анализа. На основе этого анализа модель предложила несколько потенциальных направлений для исследования, связанных с социально-демографическими процессами, динамикой во времени и возможностью статистического сравнения групп. Одним из таких направлений стал анализ уровня самоубийств в разрезе времени, пола, стран и поколений.

post

Midjourney 6.1 для генерации изображений, использованных как основа для фирменного стиля.

Исходный размер 3072x1361

Анализ показал, что на уровень самоубийств важно смотреть с разных сторон, чтобы точнее отследить взаимосвязь между статистикой самоубийств и социально-демографическими факторами.

Абсолютные числа дают представление о масштабе, но только нормализованный показатель на 100 тысяч населения позволяет увидеть реальную динамику во времени. Эта динамика оказывается неоднородной: в разные годы наблюдаются как рост, так и снижение, поэтому говорить о едином устойчивом тренде нельзя.

При разделении данных по полу становится видно, что разрыв между мужчинами и женщинами сохраняется на протяжении всего периода, при этом общая форма изменений у них схожа.

Сравнение стран показывает, что каждая страна имеет свою собственную траекторию, и универсального сценария здесь не существует.

Анализ по поколениям дополняет эту картину, показывая, что группы, сформированные в разном социальном и историческом контексте, отличаются по уровню и распределению показателя.

В целом проект демонстрирует, что даже за сухими статистическими данными скрываются сложные и неоднозначные процессы, которые важно рассматривать в связке друг с другом.

Суицид: анализ данных
Проект создан 17.01.2026
Подтвердите возрастПроект содержит информацию, предназначенную только для лиц старше 18 лет
Мне уже исполнилось 18 лет
Отменить
Подтвердить
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше