Skip to content

Sleep Health and Lifestyle

This synthetic dataset contains sleep and cardiovascular metrics as well as lifestyle factors of close to 400 fictive persons.

The workspace is set up with one CSV file, data.csv, with the following columns:

  • Person ID
  • Gender
  • Age
  • Occupation
  • Sleep Duration: Average number of hours of sleep per day
  • Quality of Sleep: A subjective rating on a 1-10 scale
  • Physical Activity Level: Average number of minutes the person engages in physical activity daily
  • Stress Level: A subjective rating on a 1-10 scale
  • BMI Category
  • Blood Pressure: Indicated as systolic pressure over diastolic pressure
  • Heart Rate: In beats per minute
  • Daily Steps
  • Sleep Disorder: One of None, Insomnia or Sleep Apnea

Check out the guiding questions or the scenario described below to get started with this dataset! Feel free to make this workspace yours by adding and removing cells, or editing any of the existing cells.

Source: Kaggle

🌎 Some guiding questions to help you explore this data:

  1. Which factors could contribute to a sleep disorder?
  2. Does an increased physical activity level result in a better quality of sleep?
  3. Does the presence of a sleep disorder affect the subjective sleep quality metric?

πŸ“Š Visualization ideas

  • Boxplot: show the distribution of sleep duration or quality of sleep for each occupation.
  • Show the link between age and sleep duration with a scatterplot. Consider including information on the sleep disorder.

πŸ” Scenario: Automatically identify potential sleep disorders

This scenario helps you develop an end-to-end project for your portfolio.

Background: You work for a health insurance company and are tasked to identify whether or not a potential client is likely to have a sleep disorder. The company wants to use this information to determine the premium they want the client to pay.

Objective: Construct a classifier to predict the presence of a sleep disorder based on the other columns in the dataset.

Check out our Linear Classifiers course (Python) or Supervised Learning course (R) for a quick introduction to building classifiers.

You can query the pre-loaded CSV files using SQL directly. Here’s a sample query:

Spinner
DataFrameas
df
variable
SELECT *
FROM 'data.csv'
LIMIT 10
import pandas as pd

sleep_data = pd.read_csv('data.csv')
sleep_data.head()
# Convert categorical variables to numerical using one-hot encoding
X = pd.get_dummies(X)

# Split data into training and validation data, for both features and target
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=0)

# Fit the model
forest_model = RandomForestRegressor(random_state=1)
forest_model.fit(train_X, train_y)

# Make predictions
sleep_preds = forest_model.predict(val_X)
print(mean_absolute_error(val_y, sleep_preds))

# Print classification report and confusion matrix
print(classification_report(train_y, sleep_preds))
print(confusion_matrix(train_y, sleep_preds))

1. Data Exploration

Understand the Data: Get familiar with the range, distribution, and type of data in each column. Class Balance: Check the distribution of the 'Sleep Disorder' column to understand the balance between the classes (None, Insomnia, Sleep Apnea).

# inspect first few rows 
sleep_data.head()
# Check the range distribution
sleep_data.describe()
# Check for missing values in each column
print(sleep_data.isnull().sum())

2. Key Sleep Data Visualization

import matplotlib.pyplot as plt
import seaborn as sns

# Histogram for age distribution
sns.histplot(data['Age'], kde=True)
plt.show()

# Box plot for sleep duration
sns.boxplot(x='Sleep Disorder', y='Sleep Duration', data=data)
plt.show()

# Bar chart for BMI category
data['BMI Category'].value_counts().plot(kind='bar')
plt.show()

3. Class balance analysis for sleep disorders

β€Œ
β€Œ
β€Œ