Analysis of Sleep Health and Lifestyle using SQL Part 2

Amruha AhmedAmruha Ahmed
6 min read

In my previous blog post, https://analyticswithamruha.hashnode.dev/analysis-of-sleep-health-and-lifestyle-using-sql-part-1 , I performed the following operations on the data stored in 'sleeptable' :

  • data cleaning

  • analysis of the Sleep Duration attribute

  • analysis of the Sleep Disorder attribute

  • analysis of the Quality of Sleep attribute

In this blog post, I will be concentrating on the analysis of stress level, physical activity level and daily steps attributes.

Analysing the Stress Level Attribute:

The stress level attribute accepts values on a scale of 1 to 10, where 1 indicates the lowest stress level and 10 indicates the highest stress level.

Discerning the average stress level of all individuals under consideration:

select avg(Stress_Level) from sleeptable;

The result is :

5.73

The stress levels of all individuals under consideration tends towards higher stress level by a small margin.

Checking the average stress level for each occupation:

select Occupation,avg(Stress_Level) from sleeptable group by Occupation order by avg(Stress_Level) asc;

The result is :

Accountant|4.12903225806452

Engineer|4.30769230769231

Teacher|5.0625

Lawyer|5.06382978723404

Nurse|6.0

Software Engineer|6.0

Salesperson|7.0

Scientist|7.0

Doctor|7.01538461538462

Sales Representative|8.0

The average stress level for accountants and engineers is the least and it is highest for doctors and sales representatives.

Determining the average stress level for each gender:

select Gender,avg(Stress_Level) from sleeptable group by Gender order by avg(Stress_Level) desc;

The result is:

Male|6.11643835616438

Female|4.68518518518519

The male individuals under consideration have a higher average stress level as compared to females.

Checking the average stress level for each age:

select Age,avg(Stress_Level) from sleeptable group by Age order by avg(Stress_Level) desc;

The result is:

34|8.0

28|8.0

33|7.69230769230769

29|7.15384615384615

32|6.94117647058824

31|6.22222222222222

43|6.21428571428571

30|6.15384615384615

27|6.0

42|5.66666666666667

40|5.5

41|5.25

39|4.93333333333333

38|4.6

36|4.5

35|4.41666666666667

37|4.25

People aged 34 and 28 years have the highest average stress levels and people aged 37 have the lowest average stress levels.

Determining the average stress level for each quality of sleep rating:

select Quality_of_Sleep,avg(Stress_Level) from sleeptable group by Quality_of_Sleep order by avg(Stress_Level) desc;

The result is:

4|8.0

6|7.56862745098039

5|7.0

7|5.76190476190476

8|4.54838709677419

9|3.0

Individuals having the worst quality of sleep of 4 out of 10 have the highest amount of average stress levels whereas individuals having the best quality sleep of 9 out of 10 have the least amount of stress on average.

Checking the average stress level for each BMI category:

select BMI_Category,avg(Stress_Level) from sleeptable group by BMI_Category order by avg(Stress_Level);

The output is:

Normal|5.56969696969697

Obese|6.48571428571429

Obese people have a higher stress level on average as compared to normal people.

Analysing the Physical Activity Level attribute:

The physical activity level attribute keeps track of the number of minutes devoted by an individual to physical activity each day.

Checking the average Physical Activity Level of all individuals under consideration:

select avg(Physical_Activity_Level) from sleeptable;

The result is:

57.215 (minutes per day)

Determining the Physical Activity Level for each occupation:

select Occupation,avg(Physical_Activity_Level) from sleeptable group by Occupation order by avg(Physical_Activity_Level) desc;

The result is:

Lawyer|70.4255319148936

Engineer|60.7692307692308

Accountant|60.6451612903226

Doctor|53.0769230769231

Teacher|48.4375

Software Engineer|48.0

Nurse|46.7142857142857

Salesperson|45.0

Scientist|41.0

Sales Representative|30.0

Lawyers have the highest average Physical Activity Level of 70.4 minutes each day whereas sales representatives have the least average Physical Activity Level of 30 minutes each day.

Discerning the average Physical Activity Level for each stress level:

select Stress_Level,avg(Physical_Activity_Level) from sleeptable group by Stress_Level order by avg(Physical_Activity_Level) desc;

The output is :

5|70.2040816326531

6|69.1627906976744

3|62.5

4|59.7777777777778

7|42.1428571428571

8|31.6842105263158

People with a stress level of 8 out of 10 have the least amount of average physical activity level of 31.68 minutes each day whereas people having a stress level of 5 out of 10 have the highest average physical activity level of 70.24 minutes each day.

Checking the average Physical Activity Level for each gender:

select Gender,avg(Physical_Activity_Level) from sleeptable group by Gender order by avg(Physical_Activity_Level) desc;

The output is :

Male|57.7191780821918

Female|55.8518518518519

The average physical activity level for men and women is comparatively the same.

Determining the average Physical Activity Level for each BMI Category:

select BMI_Category,avg(Physical_Activity_Level) from sleeptable group by BMI_Category order by avg(Physical_Activity_Level) desc;

The result is:

Normal|60.1515151515151

Obese|43.3714285714286

Normal people devote more time to physical activity every day than obese people.

Discerning the average Physical Activity Level for each Quality of Sleep rating:

select Quality_of_Sleep, avg(Physical_Activity_Level) from sleeptable group by Quality_of_Sleep order by avg(Physical_Activity_Level) asc;

The result is:

4|30.8

6|36.4509803921569

5|37.1428571428571

8|65.752688172043

7|68.9285714285714

9|80.0

People having the lowest quality of sleep i.e. 4 out of 10 have the least amount of average physical activity. People with the best quality of sleep(9 out of 10) have the highest average physical activity level. The better the sleep quality, the higher the physical activity level.

Analysing the Daily Steps attribute:

The daily steps attribute contains the number of steps taken by an individual each day.

Checking the ID of the individuals taking the maximum number of steps each day :

select Person_ID from sleeptable where Daily_Steps=(select max(Daily_Steps) from sleeptable);

The result is :

2

3

Determining the average number of steps taken by people every day:

select avg(Daily_Steps) from sleeptable;

The output is:

6760.0

Finding the daily steps on average for each occupation type:

select Occupation,avg(Daily_Steps) from sleeptable group by Occupation order by avg(Daily_Steps) desc ;

The result is:

Lawyer|7661.70212765957

Accountant|7051.61290322581

Doctor|6907.69230769231

Engineer|6015.38461538462

Salesperson|6000.0

Teacher|5893.75

Software Engineer|5800.0

Scientist|5350.0

Nurse|5028.57142857143

Sales Representative|3000.0

Lawyers take the highest steps every day on average whereas sales representatives take the least steps.

Checking the daily steps on average taken by people with different stress levels:

select Stress_Level,avg(Daily_Steps) from sleeptable group by Stress_Level order by avg(Daily_Steps) asc;

The output is:

7|5204.7619047619

8|5589.47368421053

4|6684.44444444444

6|7458.13953488372

5|7710.20408163265

3|7750.0

People with a stress level of 7 out of 10 take the least amount of steps every day on average whereas people with the lowest stress level of 3 out of 10 take the most amount of steps.

Determining the daily steps on average for each gender:

select Gender,avg(Daily_Steps) from sleeptable group by Gender order by avg(Daily_Steps) ;

The result is:

Female|6425.92592592593

Male|6883.56164383562

Males take a higher number of steps daily on average as compared to females.

Finding the daily steps on average for each quality of sleep rating:

select Quality_of_Sleep,avg(Daily_Steps) from sleeptable group by Quality_of_Sleep order by avg(Daily_Steps) desc;

The output is:

9|7500.0

8|7382.79569892473

7|7364.28571428571

6|5723.52941176471

5|4257.14285714286

4|3880.0

People with the best quality of sleep take the most number of steps each day on average as compared to the people with the worst quality of sleep.


Found this article interesting? Give it a like and share it with your friends !!

#datascience #data #dataanalysis #datanalytics #sleep #health #lifestyle #sleephealth #sql #datacleaning #insight #insights

1
Subscribe to my newsletter

Read articles from Amruha Ahmed directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Amruha Ahmed
Amruha Ahmed