library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(readxl)
library(ggthemes)
library(gridExtra)
dir.exists("C:/Users/berli/Documents/tugas probstat")
## [1] TRUE
data <- read_excel("~/tugas probstat/Sleep_health_and_lifestyle_dataset (1).xlsx")
head(data)
## # A tibble: 6 × 13
## `Person ID` Gender Age Occupation `Sleep Duration` `Quality of Sleep`
## <dbl> <chr> <dbl> <chr> <chr> <dbl>
## 1 1 Male 27 Software Engineer 6.1 6
## 2 2 Male 28 Doctor 6.2 6
## 3 3 Male 28 Doctor 6.2 6
## 4 4 Male 28 Sales Representa… 5.9 4
## 5 5 Male 28 Sales Representa… 5.9 4
## 6 6 Male 28 Software Engineer 5.9 4
## # ℹ 7 more variables: `Physical Activity Level` <dbl>, `Stress Level` <dbl>,
## # `BMI Category` <chr>, `Blood Pressure` <chr>, `Heart Rate` <dbl>,
## # `Daily Steps` <dbl>, `Sleep Disorder` <chr>
Dari data tersebut akan disajikan visualisasi data dalam bentuk Bar Chart. Berikut terlampir hasil visualisasi data Distribusi Responden Berdasarkan Pekerjaan:
bar_chart_occupation <- ggplot(data, aes(x = Occupation, fill = Occupation)) +
geom_bar() +
theme_minimal() +
labs(title = "Distribusi Responden Berdasarkan Pekerjaan",
x = "Jenis Pekerjaan",
y = "Frekuensi") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
bar_chart_occupation
Bar Chart ini memberikan gambaran visual tentang distribusi responden berdasarkan pekerjaan mereka. Informasi ini dapat digunakan untuk menganalisis bagaimana suatu faktor (misalnya, kebiasaan tidur atau kesehatan) mungkin dipengaruhi oleh profesi seseorang. Dari chart ini, dapat disimpulkan bahwa profesi seperti Nurse, Doctor, dan Engineer lebih banyak diwakili dibandingkan dengan profesi lain seperti Software Engineer, Scientist, dan Manager.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Bar Chart. Berikut terlampir hasil visualisasi data Frekuensi Gangguan Tidur:
bar_chart <- ggplot(data, aes(x = `Sleep Disorder`, fill = `Sleep Disorder`)) +
geom_bar() +
theme_minimal() +
labs(title = "Frekuensi Gangguan Tidur",
x = "Sleep Disorder",
y = "Frekuensi")
bar_chart
Bar Chart Diatas menunjukkan bahwa sebagian besar responden memiliki pola tidur yang normal, tetapi ada sebagian yang mengalami masalah tidur, terutama insomnia. Hal ini bisa menjadi dasar untuk penelitian lebih lanjut mengenai faktor-faktor yang mempengaruhi gangguan tidur.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Pie Chart. Berikut terlampir hasil visualisasi data Kategori Berat Badan:
pie_chart <- ggplot(data, aes(x = "", fill = `BMI Category`)) +
geom_bar(width = 1) +
coord_polar("y", start = 0) +
theme_minimal() +
labs(title = "Distribusi BMI Category") +
theme(axis.title.x = element_blank())
pie_chart
Sebagian besar responden memiliki berat badan normal, yang merupakan indikasi bahwa mayoritas memiliki BMI yang sehat. Sebagian responden mengalami kelebihan berat badan dan obesitas, yang bisa menjadi perhatian dalam kaitannya dengan kesehatan dan risiko penyakit. Hanya sedikit responden yang tergolong underweight, menunjukkan bahwa kekurangan berat badan bukan masalah utama dalam dataset ini.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Dot Plot. Berikut terlampir hasil visualisasi data Hubungan Durasi Tidur dan Tingkat Stres:
data$`Sleep Duration` <- as.numeric(gsub("[^0-9\\.]", "", data$`Sleep Duration`))
dot_plot <- ggplot(data, aes(x = `Sleep Duration`, y = `Stress Level`)) +
geom_point(color = "blue", size = 2) +
theme_minimal() +
labs(title = "Dot Plot: Hubungan Durasi Tidur dan Tingkat Stres",
x = "Durasi Tidur (jam)",
y = "Tingkat Stres")
dot_plot
Variasi dalam tingkat stres ditemukan pada berbagai durasi tidur, tetapi ada indikasi bahwa stres lebih tinggi pada individu dengan durasi tidur lebih pendek. Beberapa individu dengan durasi tidur lebih panjang (sekitar 7–8 jam) memiliki tingkat stres yang lebih rendah, meskipun masih ada beberapa pengecualian. Tidak ada hubungan yang sangat jelas dan linear antara durasi tidur dan tingkat stres, tetapi ada kecenderungan bahwa kurang tidur dapat berhubungan dengan stres yang lebih tinggi.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Histogram. Berikut terlampir hasil visualisasi data Distribusi Jumlah Langkah Harian:
histogram <- ggplot(data, aes(x = `Daily Steps`)) +
geom_histogram(binwidth = 1000, fill = "blue", color = "black", alpha = 0.7) +
theme_minimal() +
labs(title = "Histogram: Distribusi Jumlah Langkah Harian",
x = "Jumlah Langkah Harian",
y = "Frekuensi")
histogram
Dari data tersebut akan disajikan visualisasi data dalam bentuk Boxplot. Berikut terlampir hasil visualisasi data distribusi Tingkat Aktivitas Fisik:
boxplot_data <- ggplot(data, aes(y = `Physical Activity Level`, fill = "Activity Level")) +
geom_boxplot(alpha = 0.6) +
theme_minimal() +
labs(title = "Boxplot: Distribusi Tingkat Aktivitas Fisik",
y = "Tingkat Aktivitas Fisik",
fill = "Keterangan")
boxplot_data
Distribusi aktivitas fisik cukup merata tanpa banyak nilai ekstrem. Mayoritas responden memiliki tingkat aktivitas fisik dalam rentang yang wajar, dengan sedikit variasi antarindividu.Tidak adanya outlier mencerminkan bahwa tidak ada responden dengan aktivitas fisik yang sangat rendah atau sangat tinggi dibandingkan yang lain.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Density Plot. Berikut terlampir hasil visualisasi data distribusi Distribusi Kualitas TIdur:
density_plot <- ggplot(data, aes(x = `Quality of Sleep`, fill = "Quality")) +
geom_density(alpha = 0.5, color = "black") +
theme_minimal() +
labs(title = "Density Plot: Distribusi Kualitas Tidur",
x = "Kualitas Tidur",
y = "Density",
fill = "Keterangan")
density_plot
Mayoritas responden memiliki kualitas tidur yang bervariasi, dengan sebagian besar berada di sekitar skor 6 dan 8. Distribusi yang tidak berbentuk normal (multimodal) menunjukkan adanya beberapa kelompok dalam data, yang mungkin disebabkan oleh faktor eksternal seperti kebiasaan tidur, tingkat stres, atau pola aktivitas harian, Kualitas tidur tidak merata di satu nilai saja, melainkan tersebar dalam beberapa kelompok berbeda.
Berikut terlampir rata-rata durasi tidur responden:
mean(data$`Sleep Duration`)
## [1] 7.132086
Rata-rata durasi tidur responden adalah sekitar 7.13 jam, yang menunjukkan bahwa sebagian besar responden memiliki durasi tidur yang sudah sesuai rekomendasi kesehatan.
Berikut terlampir median durasi tidur responden:
median(data$`Sleep Duration`)
## [1] 7.2
Median berada pada 7.2 jam, yang menunjukkan bahwa setengah dari responden tidur kurang dari atau sama dengan 7.2 jam, sementara setengah lainnya tidur lebih dari 7.2 jam.
Berikut terlampir modus durasi tidur responden:
modus <- function(x) {
uniqx <- unique(x)
uniqx[which.max(tabulate(match(x, uniqx)))]
}
modus(data$`Sleep Duration`)
## [1] 7.2
Nilai modus adalah 7.2 jam, yang berarti banyak responden tidur selama 7.2 jam.
Q1 <- quantile(data$`Sleep Duration`, 0.25)
Q3 <- quantile(data$`Sleep Duration`, 0.75)
Q1
## 25%
## 6.4
Q3
## 75%
## 7.8
Kuartil 1 (Q1) = 6.4, ini menunjukkan 25% dari responden memiliki durasi tidur kurang dari atau sama dengan 6.4 jam. Kuartil 3 (Q3) = 7.8, ini menunjukkan 75% dari responden memiliki durasi tidur kurang dari atau sama dengan 7.8 jam.
range_values <- range(data$`Sleep Duration`)
range_values
## [1] 5.8 8.5
range <- max(data$`Sleep Duration`) - min(data$`Sleep Duration`)
range
## [1] 2.7
Range = 2.7 (dari 5.8 hingga 8.5 jam), ini menunjukkan selisih antara durasi tidur minimum dan maksimum dalam dataset.
Berikut terlampir keberagaman data durasi tidur responden:
var(data$`Sleep Duration`)
## [1] 0.6330696
Varians 0.633 menunjukkan bahwa ada sedikit perbedaan dalam durasi tidur responden. Nilai ini menandakan bahwa sebagian besar responden memiliki pola tidur yang hampir seragam.
Berikut terlampir standar deviasi dari data durasi tidur responden:
sd(data$`Sleep Duration`)
## [1] 0.7956567
Standar deviasi 0.796 jam (sekitar 48 menit) menunjukkan bahwa tidak banyak individu yang memiliki durasi tidur jauh di luar rata-rata, sehingga mayoritas responden memiliki durasi tidur yang mirip.
Dataset source: https://www.kaggle.com/datasets/uom190346a/sleep-health-and-lifestyle-dataset?resource=download