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

При работе над проектом я вдохновилась образом разлетающихся частиц и пикселей, которые передают саму потерю воспоминаний. Черные, серые и голубые тона передают отчужденность от мира, одиночество и пустоту, а шрифт «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, выбрав разные цвета для здоровых пациентов и пациентов с болезнью Альцгеймера — белый и бирюзовый соответственно. Я также добавила белые контуры к точкам, чтобы сделать их более четкими. Далее я настроила оси, добавила подписи.
Диаграмма подтверждает, что болезнь Альцгеймера приводит к снижению когнитивных способностей, и этот эффект усиливается с возрастом. Она также подчеркивает важность ранней диагностики, поскольку разница между здоровыми и больными людьми становится все более выраженной с возрастом.
Круговая диаграмма
Сначала я выбрала симптомы, которые связаны с болезнью Альцгеймера, затем я рассчитала среднюю выраженность каждого из этих симптомов среди всех пациентов, используя метод .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.