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

При работе над проектом я вдохновилась образом разлетающихся частиц и пикселей, которые передают саму потерю воспоминаний. Черные, серые и голубые тона передают отчужденность от мира, одиночество и пустоту, а шрифт «DejaVu Sans» в тонком начертании подчеркивает уязвимость людей с Альцгеймером. В свои графики я хотела добавить именно эти ощущения.

Для анализа использован Alzheimer’s Disease Dataset с сайта kaggle.com. Датасет содержит обширную медицинскую информацию 2 149 пациентов, у которых был выявлен Альцгеймер. Набор данных включает демографические данные, факторы образа жизни, историю болезни, клинические измерения, когнитивные и функциональные оценки, симптомы и диагноз болезни Альцгеймера. Для визуализации данных я выбрала гистограмму (по ней четко можно увидеть статистику по возрасту, в который появляется болезнь), тепловую диаграмму (можно увидеть явную взаимосвязь симптомов), точечную диаграмму (подчеркивает средний результат тестов по возрасту и здоровью), круговую диаграмму-кольцо (наглядно видно распределение симптомов) и линейную диаграмму (четко видно насколько факторы риска влияют на появление болезни). Также хочу отметить, что я хотела добавить больше визуального стиля в работу, поэтому в первом и последнем графике добавлены частицы, которые также имеют смысловую нагрузку для анализа.
Обработка данных и визуализация
Сначала я приступила к импорту необходимых библиотек: numpy, matplotlib.pyplot, pandas и seaborn. Затем я считала скаченный csv датасет и подключила шрифт.
Далее я приступила к созданию гистограммы для распределение пациентов по возрасту. Сначала я добавила переменную bin_width, которая определяет ширину каждого интервала в гистограмме, поставила ей значение — 2. Создала массив bins для границ бинов от минимального до максимального возраста с интервалом 2. Затем, с помощью np.histogram (), подсчитала количество пациентов в каждом бине.
Далее я настроила внешний вид графика: создала figure, установила черный фон (facecolor="black») и скорректировала цвета осей, сделав их белыми для контраста. Чтобы убрать лишние элементы, отключила верхнюю и правую рамки. Основную часть гистограммы я строила с помощью ax.bar (), где ширину столбцов я немного уменьшила (bin_width * 0.9), белый цвет с бирюзовыми контурами сделал график стильным и контрастным. Идею с таким оформлением преложил Chat GPT 4, так как я попросила улучшить стилизацию гистограммы.
Затем я добавила эффект случайного разброса точек — создала их координаты так, чтобы они хаотично заполняли область каждого столбца. Разброс точек на графике показывает вариативность данных внутри возрастных групп.
После этого я подписала оси, добавила заголовок, легенду и сетку, чтобы график был понятным
Гистограмма. Распределение пациентов по возрасту
Гистограмма позволила выявить, что пожилые люди в возрасте ближе к 90 годам наиболее подвержены риску, от 60-85 менее видна разница. Если пик заболевания приходятся на более пожилой возраст, это подтверждает, что риск возрастных заболеваний, таких как болезнь Альцгеймера, увеличивается с возрастом. Статистический разброс на графике показал, что внутри каждой возрастной группы есть вариативность данных, но в целом распределение подтверждает, что пожилой возраст является основным фактором риска для когнитивных нарушений и болезни Альцгеймера.
Тепловая карта
Далее я создала тепловую карту, чтобы визуализировать взаимосвязь между основными симптомами болезни Альцгеймера. Сначала я определила цветовую палитру turquoise_cmap, создав градиент от темного бирюзового к светлому. Это помогло сделать тепловую карту более выразительной. Затем я подготовила сам график: установила черный фон для фигуры и осей, чтобы создать стильный контраст. После этого я выбрала только те симптомы, которые действительно присутствовали в датасете, чтобы избежать ошибок. На основе этих данных я вычислила корреляционную матрицу, которая показывала, насколько тесно связаны между собой разные симптомы. Я нанесла эту матрицу на тепловую карту с помощью seaborn.heatmap, добавив аннотации, сетку и цветовую шкалу для удобства интерпретации. Также я стилизовала подписи осей, убрала верхнюю и правую границы, чтобы сделать визуализацию чище.
Тепловая карта. Корреляция между симптомами
Преобладающие темные оттенки бирюзового указывают на умеренную корреляцию. Симптомы могут встречаться вместе, но не всегда. Это означает, что симптомы не взаимосвязаны напрямую друг с другом. Анализ корреляции симптомов помог выявить, что паттерны развития болезни размыты и тяжело выявить закономерность проявления симптомов болезни.
Точечная диаграмма
Дальше я создала диаграмму, которая показывает зависимость среднего результата теста MMSE от возраста пациентов, разделяя их на группы по диагнозу. Сначала я определила размер и цвет фона графика, выбрав черный цвет, чтобы создать контраст с данными. Затем я настроила оси: скрыла верхнюю и правую границы диаграммы, а левые и нижние линии сделала белыми для лучшей читаемости. Я добавила сетку, использовав серый пунктир, чтобы она не перегружала график, но помогала ориентироваться. После этого я сгруппировала данные по возрасту и диагнозу, вычислив среднее значение MMSE для каждой возрастной группы. Чтобы визуализировать данные, я применила seaborn.scatterplot, выбрав разные цвета для здоровых пациентов и пациентов с болезнью Альцгеймера — белый и бирюзовый соответственно. Я также добавила белые контуры к точкам, чтобы сделать их более четкими. Далее я настроила оси, добавила подписи.
Точечная диаграмма. Средний результат MMSE по возрасту
Диаграмма подтверждает, что болезнь Альцгеймера приводит к снижению когнитивных способностей, и этот эффект усиливается с возрастом. Она также подчеркивает важность ранней диагностики, поскольку разница между здоровыми и больными людьми становится все более выраженной с возрастом.
Круговая диаграмма
Сначала я выбрала симптомы, которые связаны с болезнью Альцгеймера, затем я рассчитала среднюю выраженность каждого из этих симптомов среди всех пациентов, используя метод .mean (). Это позволило определить, какие из них встречаются чаще. Далее я определила цветовую палитру, используя оттенки бирюзового, чтобы создать визуально приятную и последовательную диаграмму. Для отображения данных я использовала круговую диаграмму (ax.pie ()), где: labels — подписала сектора названиями симптомов, autopct — добавила проценты, чтобы показать долю каждого симптома, colors — задала цвета, соответствующие моей палитре, wedgeprops — настроила белую окантовку сегментов для лучшей читаемости. Чтобы сделать диаграмму более стильной, я добавила в центр черный круг (plt.Circle ()), получилось кольцо.
Круговая диаграмма. Распределение симптомов среди пациентов
Диаграмма показывает, какие симптомы болезни Альцгеймера наиболее выражены среди пациентов. Забывчивость и путаница превалируют среди других симптомов, дезориентация и проблемы с выполнением задач имеют схожий процент проявления. Общий вывод — болезнь влияет на различные аспекты мышления, поведения и ориентации в пространстве, но потеря памяти всё же преобладает.
Линейная диаграмма
Я выбрала ключевые факторы риска, которые могут влиять на развитие болезни. Затем я рассчитала среднее значение этих факторов среди пациентов и отсортировала их по убыванию, чтобы выделить наиболее значимые. После этого я сгенерировала данные для индивидуальных пациентов, чтобы добавить вариативность. Для каждого фактора я создала 10 случайных точек, которые распределила вокруг среднего значения с небольшим разбросом, используя нормальное распределение. Затем я настроила стиль графика, выбрав черный фон и бирюзовые оттенки для визуализации. На графике я построила основную линию, показывающую средний уровень риска для каждого фактора, и добавила мелкие разлетающиеся точки, обозначающие индивидуальные случаи пациентов. Настроила оси, добавила подписи и легенду.
Линейная диаграмма. Влияние медицинской истории на проявление болезни
Диаграмма показывает, какие факторы риска оказывают наибольшее влияние на вероятность развития болезни Альцгеймера. Согласно данным, наиболее значимый фактор — это семейный анамнез (наличие болезни у родственников), что подтверждает генетическую предрасположенность. Депрессия также сильно влияет на появление болезни, остальные факторы имеют меньшее значение. Разлетающиеся точки, обозначающие индивидуальных пациентов, демонстрируют некоторую вариативность внутри каждой категории риска, что говорит о том, что влияние факторов может различаться у разных людей.
Описание применения генеративной модели
Для визуального стиля, генерации изображений и обложки проекта, был использован Recraft.ai. Для визуализации и оптимизации графиков я использовала Chat-GPT 4.0. Он помог решить проблемы с несколькими ошибками в коде и предложил идеи по составлению графиков.
Промты: https://docs.google.com/document/d/1cvMQeItMTl8QRqh4qvy6Wsd8tmS9bF0EoO9AynjEGPs/edit?usp=sharing
Ссылки на модели: Recraft Chat-GPT 4.0
Список источников
[1] Загрузка датасета с kaggle.com. (URL: https://www.kaggle.com/datasets/rabieelkharoua/alzheimers-disease-dataset) Просмотрено: 17.03.2024.