수면 시간과 스트레스가 수면의 질에 어떤 영향을 줄까?
1. 프로젝트 개요
요즘 사람들, 다들 잠 잘 자고 계신가요?
수면은 하루의 피로를 풀어주는 중요한 시간인데요. 그런데 수면 시간이 충분해도, 또는 스트레스가 많을 때, 수면의 질은 과연 어떻게 변할까요?
이번 포스팅에서는 Kaggle에서 제공하는 수면 건강 데이터를 기반으로
수면 시간과 스트레스 수준이 수면의 질(Quality of Sleep)에 어떤 영향을 미치는지 R로 회귀분석을 통해 알아보겠습니다.
2. 사용한 데이터
- 주요 변수:
- Sleep Duration (수면 시간, 시간 단위)
- Stress Level (스트레스 수준, 1~10점)
- Quality of Sleep (수면의 질, 1~10점)
3. R코드 분석
3-1. 데이터 불러오기
# 패키지 설치 (최초 1회만)
install.packages("readr")
install.packages("ggplot2")
install.packages("dplyr")
# 라이브러리 로드
library(readr)
library(ggplot2)
library(dplyr)
# 데이터 불러오기
data <- read_csv("Sleep_health_and_lifestyle_dataset.csv")
install.packages("readr")
install.packages("ggplot2")
install.packages("dplyr")
# 라이브러리 로드
library(readr)
library(ggplot2)
library(dplyr)
# 데이터 불러오기
data <- read_csv("Sleep_health_and_lifestyle_dataset.csv")
str(data)

3-2. 필요한 변수 추출 및 전처리
# 변수명 변경
colnames(data)[colnames(data) == "Sleep Duration"] <- "Sleep_Duration"
colnames(data)[colnames(data) == "Stress Level"] <- "Stress_Level"
colnames(data)[colnames(data) == "Quality of Sleep"] <- "Quality_of_Sleep"
# 분석에 필요한 변수만 선택
sleep_data <- data %>%
select(Sleep_Duration, Stress_Level, Quality_of_Sleep) %>%
na.omit() # 결측치 제거
colnames(data)[colnames(data) == "Sleep Duration"] <- "Sleep_Duration"
colnames(data)[colnames(data) == "Stress Level"] <- "Stress_Level"
colnames(data)[colnames(data) == "Quality of Sleep"] <- "Quality_of_Sleep"
# 분석에 필요한 변수만 선택
sleep_data <- data %>%
select(Sleep_Duration, Stress_Level, Quality_of_Sleep) %>%
na.omit() # 결측치 제거
3-3. 회귀분석 실행
# 수면의 질에 대한 회귀모델 생성
model <- lm(Quality_of_Sleep ~ Sleep_Duration + Stress_Level, data = sleep_data)
# 결과 요약
summary(model)
# 결과 요약
summary(model)

3-4. 시각화
# 수면시간 vs 수면의 질
ggplot(sleep_data, aes(x = Sleep_Duration, y = Quality_of_Sleep)) +
geom_point(color = "blue") +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "수면 시간과 수면의 질 관계",
x = "수면 시간(시간)", y = "수면의 질 (1~10점)") +
theme_minimal()
geom_point(color = "blue") +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "수면 시간과 수면의 질 관계",
x = "수면 시간(시간)", y = "수면의 질 (1~10점)") +
theme_minimal()

# 스트레스 수준 vs 수면의 질
ggplot(sleep_data, aes(x = Stress_Level, y = Quality_of_Sleep)) +
geom_point(color = "red") +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "스트레스 수준과 수면의 질 관계",
x = "스트레스 수준", y = "수면의 질 (1~10점)") +
theme_minimal()

4. 분석 결과 요약
- Sleep Duration(수면 시간)은 수면의 질에 유의미한 양의 영향을 미쳤습니다.
→ 잠을 더 오래 자면 수면의 질이 올라간다! - Stress Level(스트레스 수준)은 수면의 질에 유의미한 음의 영향을 미쳤습니다.
→ 스트레스가 많을수록 수면의 질이 나빠진다…
📌 예측 모델의 해석:
수면 시간이 1시간 늘어나면 수면의 질이 평균적으로 상승하고,
스트레스 점수가 1점 올라갈수록 수면의 질은 떨어지는 경향을 보였습니다.
5. 시사점 및 마무리
이번 회귀분석을 통해 다시 한번 확인할 수 있었던 사실은,
"스트레스 관리와 충분한 수면"이 건강한 삶의 핵심이라는 점이에요.
✔ 오늘 나의 수면 시간은 몇 시간이었는지
✔ 오늘 스트레스를 얼마나 받았는지
작은 습관을 체크해보는 것만으로도 더 나은 삶의 질을 만들 수 있지 않을까요?
'IT관련' 카테고리의 다른 글
R을 활용한 당뇨병 데이터 분류 분석 (0) | 2025.04.16 |
---|---|
중선형 회귀모델 , 교육, 평판, 여성 비율로 알아보는 연봉 예측 모델 ( +R코드 ) (0) | 2025.04.07 |
R로 회귀 모델 만들기 : cars 주행 속도와 제동 거리 (0) | 2025.04.03 |
GDP로 보는 대한민국의 변화 – 경제성장, 출산율, 기대수명의 상관관계( + R코드) (0) | 2025.04.02 |
국내 인구동향 변화 분석 (1970~2023) ( + R코드 ) (0) | 2025.04.01 |