Original size 1240x1750

Анализ зависимости расстройств сна от различных факторов

PROTECT STATUS: not protected
8

Вводная часть

В исследовании я взяла за основу таблицу «Набор данных о здоровье сна и образа жизни»: https://www.kaggle.com/datasets/uom190346a/sleep-health-and-lifestyle-dataset (Сайт: https://www.kaggle.com) В таблице представлена информация, полученная от 374 участников опроса. Таблица охватывает широкий спектр переменных, связанных с повседневными привычками, медицинскими показателями, индикаторами психологического комфорта, физического здоровья, со сном.

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

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

Этапы работы

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

код 1

from matplotlib import pyplot as plt import seaborn as sns df.groupby ('Occupation').size ().plot (kind='barh', color=sns.palettes.mpl_palette ('Set2')) plt.gca ().spines[['top', 'right', ]].set_visible (False)

Original size 691x413

Далее я определила средний уровень стресса для каждой из выбранных профессий.

Первые два графика — Гистограммы. Этот тип графика позволяет продемонстрировать различные наборы данных в сравнении.

код 2

import matplotlib.pyplot as plt plt.style.use ('seaborn-deep')

doctors_stress = df[df['Occupation'] == 'Doctor']['Stress Level'].mean () nurses_stress = df[df['Occupation'] == 'Nurse']['Stress Level'].mean () managers_stress = df[df['Occupation'] == 'Manager']['Stress Level'].mean () sales_reps_stress = df[df['Occupation'] == 'Sales Representative']['Stress Level'].mean ()

occupation_stress_levels = [doctors_stress, nurses_stress, managers_stress, sales_reps_stress]

occupation_names = ['Doctor', 'Nurse', 'Manager', 'Sales Representative']

colors = plt.get_cmap ('Set2') (np.linspace (0, 1, len (occupation_names))) plt.barh (occupation_names, occupation_stress_levels, color=colors)

plt.title ('Stress Level Distribution by Occupation') plt.xlabel ('Stress Level') plt.ylabel ('Occupation')

plt.show ()

Original size 691x455

Затем выявила процент нарушений сна для каждой группы профессий.

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

код 3

managers_and_sales_df = df[df['Occupation'].isin (['Manager', 'Sale Representative'])]

sleep_disorders = managers_and_sales_df['Sleep Disorder'].value_counts (dropna=False)

labels = sleep_disorders.index sizes = sleep_disorders.values explode = (0.1,) * len (sizes)

fig1, ax1 = plt.subplots () ax1.pie (sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=90) ax1.axis ('equal') colors = cm.get_cmap ('Set2') (np.linspace (0, 1, len (sizes)))

for i in range (len (sizes)): ax1.patches[i].set_facecolor (colors[i])

plt.show ()

Original size 515x396

код 4

doctors_and_nurses_df = df[df['Occupation'].isin (['Doctor', 'Nurse'])]

sleep_disorders = doctors_and_nurses_df['Sleep Disorder'].value_counts (dropna=False)

labels = sleep_disorders.index sizes = sleep_disorders.values explode = (0.1,) * len (sizes) fig1, ax1 = plt.subplots () ax1.pie (sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=90) ax1.axis ('equal')

colors = cm.get_cmap ('Set2') (np.linspace (0, 1, len (sizes)))

for i in range (len (sizes)): ax1.patches[i].set_facecolor (colors[i])

plt.show ()

Original size 545x394

В процессе работы я обращалась к нескольким нейросетям.

  1. С помощью Chat GPT3.5 я узнала как проанализировать представителей не только одной профессии за раз, а четырех, так как этого не было показано в лекции курса. Используемый промпт: I have this code: doctors__df = df.loc[df['Occupation'] == 'Doctor'] sleep_disorders = doctors__df['Sleep Disorder'].value_counts ()

how do I make it so that it analyzes not only «Doctor» but also «Nurse»?

  1. Столкнувшись с ошибкой при написании кода я скопировала текст ошибки и попросила Chat GPT3.5 объяснить её, на что получила ответ: Ошибка «TypeError: object of type 'ListedColormap' has no len ()» указывает на то, что вы пытаетесь применить функцию len () к объекту типа ListedColormap, который не имеет длины. В данном случае, вы пытаетесь использовать plt.get_cmap ('Set2') как цвет для каждого бара в графике, но ListedColormap не может быть использован напрямую как цвет.

Чтобы исправить эту ошибку, вы должны использовать ListedColormap.colors, который возвращает список цветов, используемых в цветовой схеме.

  1. Обложка для проекта была создана в Leonardo.Ai по промпту: A simple minimalistic cover for a sleep quality and disease analysis proje

Вывод

В ходе анализа выяснилось, что какое-либо расстройство сна присутствует у 50% докторов и медсестер и у 0% менеджеров и менеджеров по продажам. При этом четкой зависимости от уровня стресса и наличия расстройств сна обнаружено не было. Так, моя гипотеза не подтвердилась и можно сделать вывод об отсутствии связи между уровнем стресса и количеством нарушений сна в профессии. Тем не менее, мой анализ нельзя считать полностью достоверным, так как он выполнялся на основе ограниченного количества данных

Анализ зависимости расстройств сна от различных факторов
8
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more