Original size 832x1248

Эффективность сна

PROTECT STATUS: not protected

Описание

«‎Пусть мне приснится, что я выспался…»‎ Для исследования я взяла датасет с сайта Kaggle о факторах, влияющих на эффективность сна. Интересно, сможем ли мы, используя эти знания, выспаться.

Для визуализации я использовала, в зависимости от задачи, разные виды графиков: (1) Столбчатая диаграмма (2) Круговая диаграмма (3) Линейный график (4) Тепловая карта

В заключении исследования представлен вывод и рекомендации.

Описание применения генеративной модели

Для некоторых фрагментов кода использовалась нейросеть Perplexity. Пример промпта: «‎Построй тепловую карту, показывающую зависимость эффективности сна от употребления алкоголя и курения. Используй синие и голубые тона»‎

Цветовая палитра графиков тоже была предложена Perplexity, оттенки синего ассоциируются с расслаблением и ночным небом, что отвечает теме исследования: - Насыщенный синий: #0033A0 - Светло-голубой: #7FB3D5 - Бирюзовый: #009999 - Градиент синих оттенков для тепловой карты (Blues)

Обложка сгенерирована при помощи нейросети Leonardo.ai. Изображение в выбранной для исследования цветовой гамме передает состояние крепкого и здорового сна в глубокой фазе.

1. Продолжительность глубокого сна

Импортируем необходимые библиотеки

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

Загружаем данные

df = pd.read_csv ('Sleep_Efficiency.csv')

Создание категорий эффективности сна

bins = [0, 0.8, 0.9, 0.95, 1] labels = ['<80%', '80-90%', '90-95%', '>95%'] df['Efficiency Category'] = pd.cut (df['Sleep efficiency'], bins=bins, labels=labels, right=False)

Группировка и расчет средних значений фаз сна

phase_cols = ['REM sleep percentage', 'Deep sleep percentage', 'Light sleep percentage'] grouped = df.groupby ('Efficiency Category')[phase_cols].mean ()

Настройка цветов

colors = ['0033A0', '00BFFF', '009999']

Построение диаграммы

ax = grouped.plot (kind='bar', color=colors, figsize=(10, 6))

plt.title ('Распределение длительности фаз сна по категориям эффективности', fontsize=16) plt.xlabel ('Категория эффективности сна', fontsize=12) plt.ylabel ('Средний процент фазы сна', fontsize=12) plt.xticks (rotation=0, fontsize=10) plt.yticks (fontsize=10) plt.legend (title='Фаза сна', fontsize=10, title_fontsize=10) plt.grid (axis='y', alpha=0.3) plt.tight_layout () plt.show ()

Original size 1920x1080

2. Эффективность сна у мужчин и женщин

Фильтрация по эффективности сна

high_eff = df[df['Sleep efficiency'] > 0.95]

Считаем количество по полу, исключая пропущенные значения

gender_counts = high_eff['Gender'].dropna ().value_counts ()

Подписи для диаграммы

labels = gender_counts.index

Построение круговой диаграммы

plt.figure (figsize=(6, 6)) plt.pie (gender_counts, labels=labels, autopct='%1.1f%%', startangle=90, counterclock=False, colors=['7FB3D5', '0033A0']) plt.title ('Эффективность сна > 95% у мужчин и женщин', fontsize=16) plt.tight_layout () plt.show ()

Original size 1920x1080

3. Физическая активность

Оставляем нужные столбцы и удаляем пропуски

df = df[['Exercise frequency', 'Sleep efficiency']].dropna ()

Преобразуем физическую активность к целому числу (если нужно)

df['Exercise frequency'] = df['Exercise frequency'].astype (int)

Группируем по количеству физической активности и считаем среднюю эффективность сна

grouped = df.groupby ('Exercise frequency')['Sleep efficiency'].mean ()

Строим гистограмму

plt.figure (figsize=(8, 5)) grouped.plot (kind='bar', color='#0033A0') plt.title ('Зависимость эффективности сна от физической активности', fontsize=16) plt.xlabel ('Физическая активность (раз в неделю)', fontsize=12) plt.ylabel ('Средняя эффективность сна', fontsize=12) plt.xticks (rotation=0, fontsize=10) plt.yticks (fontsize=10) plt.grid (axis='y', alpha=0.3) plt.tight_layout () plt.show ()

Original size 1920x1080

4. Возраст

Оставляем только нужные столбцы и удаляем пропуски

df = df[['Age', 'Sleep efficiency']].dropna ()

Оставляем возраст больше 18

df = df[df['Age'] > 18]

Группируем по возрасту и считаем среднюю эффективность сна для каждого возраста

grouped = df.groupby ('Age')['Sleep efficiency'].mean ().sort_index ()

Строим график

plt.figure (figsize=(9, 5)) plt.plot (grouped.index, grouped.values, marker='o', linestyle='-', color='#0033A0', label='Средняя эффективность сна') plt.plot (grouped.index, p (grouped.index), color='#009999', linestyle='--', linewidth=2, label='Линия тренда') plt.title ('Зависимость эффективности сна от возраста', fontsize=18) plt.xlabel ('Возраст', fontsize=12) plt.ylabel ('Средняя эффективность сна', fontsize=12) plt.xticks (fontsize=10) plt.yticks (fontsize=10) plt.grid (True, alpha=0.3) plt.legend (fontsize=10) plt.tight_layout () plt.show ()

Добавляем линию тренда

z = np.polyfit (grouped.index, grouped.values, 1) p = np.poly1d (z)

Original size 1920x1080

5. Вредные привычки

Оставляем только нужные столбцы и удаляем пропуски

df = df[['Alcohol consumption', 'Smoking status', 'Sleep efficiency']].dropna ()

Группируем по алкоголю и курению, считаем среднюю эффективность сна

pivot = df.pivot_table ( index='Alcohol consumption', columns='Smoking status', values='Sleep efficiency', aggfunc='mean' )

Строим тепловую карту

plt.figure (figsize=(8, 6)) sns.heatmap ( pivot, annot=True, fmt=».2f», cmap='Blues', linewidths=0.5, cbar_kws={'label': 'Средняя эффективность сна'} ) plt.title ('Эффективность сна vs алкоголь и курение', fontsize=16) plt.xlabel ('Курение', fontsize=12) plt.ylabel ('Потребление алкоголя', fontsize=12) plt.xticks (fontsize=12) plt.yticks (fontsize=12) plt.tight_layout () plt.show ()

Original size 1920x1080

Вывод

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

1. Женщины спят в среднем эффективнее мужчин

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

3. С возрастом (после 50 лет) эффективность сна снижается. Однако такой результат может быть связан с тем, что у пожилых людей естественным образом уменьшается общее количество сна, а в данном случае качество рассчитывается в том числе из количества.

4. Умеренная физическая активность (4 раза в неделю) благотворно влияет на эффективность сна.

5. Вредные привычки (алкоголь и курение) снижают качество сна.

Рекомендации: - Отказаться от вредных привычек, чтобы лучше высыпаться - Увеличить физическую активность до 4 раз в неделю - По результатам исследования, особое внимание на повышение качества сна стоит обратить мужчинам в возрасте старше 50 лет

Эффективность сна
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more