Tidur dapat didefinisikan sebagai suatu kondisi di mana kesadaran menurun, fungsi hati sangat penting untuk mengatur berbagai fungsi fisiologis, psikologis, dan spiritual manusia. Fungsi fsiologis termasuk pencernaan, aktivitas jantung dan pembuluh darah, serta fungsi kekebalan untuk memberikan energi pada tubuh. Fungsi psikologis termasuk pemrosesan kognitif, yang berarti menyimpan, menata, dan membaca data yang ada dalam otak, serta mendapatkan informasi saat kita bangun.Salah satu fungsi spiritual dari tidur adalah kesempatan jiwa manusia untuk semakin dekat dengan Tuhan YME.Setiap usia memiliki waktu tidur yang berbeda. Pola tidur 7-8 jam per hari adalah normal untuk dewasa muda (18 sampai 40 tahun) dan dewasa menengah (40 sampai 60 tahun).
Salah satu aktivitas terpenting manusia adalah tidur, yang memakan sekitar seperempat hingga sepertiga kehidupan seseorang. Kemampuan seseorang untuk melakukan aktivitas ini dengan baik akan berdampak pada berbagai aspek kehidupan mereka saat mereka bangun. Kualitas tidur adalah suatu keadaan di mana seorang individu merasa segar dan fit saat dia terbangun. Proses tidur dan durasi tidur yang optimal merupakan indikator kualitas tidur yang baik.
Gaya hidup didefinisikan sebagai aktivitas dan rutinitas yang biasa dilakukan seseorang setiap hari. Penelitian menunjukkan bahwa 61% siswa dengan derajat gaya hidup sehat yang rendah dipengaruhi oleh faktor luar (olahraga), dan 89,1% siswa dipengaruhi oleh faktor internal (gaya hidup sehat). Gaya hidup mahasiswa juga dipengaruhi oleh sistem pembelajaran di kampus. Gaya hidup sehat terdiri dari aktivitas sehari-hari yang mendukung kesehatan dan dilakukan secara rutin. Gaya hidup sehat ini mencakup berpikir (Thinking), emosi (Emotions), bergerak dan olah raga (Exercise), nutrisi (Nutrition), dan aspek sosial dan spiritual. Gaya hidup sehat juga memberikan kesempatan untuk mandiri. Mereka juga menurunkan semua penyebab kematian dan meningkatkan umur dan kesejahteraan hidup.
Analisis Faktor (AF) adalah analisis yang bertujuan untuk menyederhanakan kerumitan dunia menjadi ukuran yang lebih sederhana sehingga lebih mudah untuk dijelaskan. Tujuan analisis multivariat (AF) adalah untuk menentukan apakah satuperangkat variabel dapat digambarkan berdasarkan jumlah “dimensi” atau “faktor” yang lebih kecil daripada jumlah variabel. Analisis multivariat ini pada dasarnya dirancang untuk meneliti sifat hubungan antara variabel-variabel dalam satuperangkat tertentu, yang pada dasarnya menunjukkan pola hubungan tertentu.
Analisis faktor terbagi menjadi dua. Pertama adalah analisis faktor eksploratori, yang digunakan untuk melihat hubungan antara variabel manifes dan faktor tanpa membuat kesimpulan yang terlalu ketat tentang variabel manifes mana yang terkait dengan variabel faktor mana. Yang kedua adalah analisis faktor konfirmatori, yang digunakan untuk menentukan apakah model faktor tertentu yang didasarkan secara apriori memberikan kecocokan yang memadai untuk korelasi atau kovarians.
Tujuan dari Penelitian ini adalah:
Mengetahui indikator atau variabel yang dapat dilakukan analisis faktor
Mengetahui faktor-faktor yang mempengaruhi kualitas tidur dan gaya hidup berdasarkan indikator yang ada
Model umum analisis faktor adalah sebagai berikut:
\[x_{1}=\lambda_{11}f_{1}+\lambda_{12}f_{2}+...+\lambda_{1k}f_{k}+u_{1}\]
\[x_{2}=\lambda_{21}f_{1}+\lambda_{22}f_{2}+...+\lambda_{2k}f_{k}+u_{2}\]
. . .
\[x_{q}=\lambda_{q1}f_{1}+\lambda_{q2}f_{2}+...+\lambda_{qk}f_{k}+u_{q}\]
Keterangan:
\(x'=[x_{1},x_{2},...,x_{q}]\) adalah q variabel manifes yang dapat diobservasi.
\(f'=[f_{1},f_{2},...,f_{q}]\) adalah k faktor bersama yang tidak dapat diobservasi dengan \(k<q\).
\(\lambda_{ij}\) = nilai pembobot faktor ketika diestimasi.
Model analisis faktor menyiratkan bahwa varians variabel manifes \(x_{i}\) dapat dihitung dengan
\[\sigma_{i}^2=\sum_{j=1}^k\lambda_{ij}^2+\psi_{i}\]
\(\psi_{i}\) adalah varians dari \(u_{i}\).
\(h_{i}^2 = \sum_{j=1}^k\lambda_{ij}^2\) disebut sebagai komunalitas dari variabel manifes yang mewakili varians yang dimiliki bersama dengan variabel manifes lain melalui faktor bersama. Sedangkan \(\psi_{i}\) disebut sebagai varians spesifik yang berkaitan dengan variabilitas dalam \(x_{i}\) yang todak dimiliki bersama variabel lainnya.
Matriks kovarian populasi dari variabel manifes \(\sum\), dinyatakan dalam bentuk
\[\sum = \Lambda\Lambda`+\Psi\]
di mana
\(\Psi=diag(\psi_{i})\)
jika diestimasi dengan sampel maka
\[S=\hat\Lambda\hat\Lambda'+\Psi\]
Nilai MSA (nilai korelasi matriks anti-image) digunakan untuk menentukan apakah variabel sudah layak untuk dianalisis lebih lanjut. Jika nilai MSA suatu variabel lebih besar dari 0,5, maka variabel tersebut layak untuk dianalisis lebih lanjut. Jika nilai MSA suatu variabel kurang dari 0,5, variabel tersebut harus dikeluarkan dari analisis secara keseluruhan, diurutkan dari variabel yang memiliki nilai MSA terkecil dan tidak lagi digunakan dalam analitis.
Uji KMO dan Bartlett’s Test of Sphericity digunakan untuk menguji ketepatan penggunaan analisis faktor. Hasil uji KMO harus antara 0,5 dan 1, dan signifikansi Bartlett’s Test of Sphericity harus kurang dari taraf signifikansi (α = 0,05).
Principal Component Analysis (PCA) dan Principal Factor Analysis (PFA) adalah dua pendekatan ekstraksi faktor yang paling umum digunakan. PCA mengatakan bahwa masing-masing variabel dapat dijelaskan dengan kombinasi linier faktor bersama, yang berarti faktor-faktor tersebut mewakili varians total variabel.
Sebaliknya, varians dari variabel dapat dibagi menjadi dua bagian, menurut metode PFA. Variasi dari variabel tertentu membentuk bagian pertama, yang dipengaruhi oleh varians dari masing-masing variabel dalam analisis.
Data yang digunakan adalah data mengenai indikator kualitas tidur dan gaya hidup. Terdapat 9 variabel yang masing-masing variabel berjumlah 374. Berikut merupakan cuplikan data penelitian.
# A tibble: 6 × 9
Age `Sleep Duration` `Quality of Sleep` `Physical Activity Level` Sistol
<dbl> <dbl> <dbl> <dbl> <dbl>
1 27 6.1 6 42 126
2 28 6.2 6 60 125
3 28 6.2 6 60 125
4 28 5.9 4 30 140
5 28 5.9 4 30 140
6 28 5.9 4 30 140
# ℹ 4 more variables: Diastol <dbl>, `Stress Level` <dbl>, `Heart Rate` <dbl>,
# `Daily Steps` <dbl>
library(readxl) #Import data format excel
library(corrplot) #Plot Korelasi
library(REdaS) #KMO dan Bartlett`s Test
library(psych) #Analisis faktor
Fungsi read_excel() digunakan untuk memuat data dari file Sleep Health and Lifestyle dengan argumen yang berisikan lokasi file data tersimpan. Data tersebut disimpan dengan nama Data. Kemudian digunakan fungsi data.frame(Data) untuk membentuk data frame dan str(Data) untuk melihat struktur data.
Data = read_excel("C:/Kuliah/Tugas Kuliah/SEMESTER 5/Sleep Health and LifeStyle.xlsx")
data.frame(Data)
str(Data)
tibble [374 × 9] (S3: tbl_df/tbl/data.frame)
$ Age : num [1:374] 27 28 28 28 28 28 29 29 29 29 ...
$ Sleep Duration : num [1:374] 6.1 6.2 6.2 5.9 5.9 5.9 6.3 7.8 7.8 7.8 ...
$ Quality of Sleep : num [1:374] 6 6 6 4 4 4 6 7 7 7 ...
$ Physical Activity Level: num [1:374] 42 60 60 30 30 30 40 75 75 75 ...
$ Sistol : num [1:374] 126 125 125 140 140 140 140 120 120 120 ...
$ Diastol : num [1:374] 83 80 80 90 90 90 90 80 80 80 ...
$ Stress Level : num [1:374] 6 8 8 8 8 8 7 6 6 6 ...
$ Heart Rate : num [1:374] 77 75 75 85 85 85 82 70 70 70 ...
$ Daily Steps : num [1:374] 4200 10000 10000 3000 3000 3000 3500 8000 8000 8000 ...
Dapat dilihat, terdapat 374 data dengan 9 variabel. Seluruh variabel memiliki tipe data numerik. Kemudian, untuk menampilkan 6 baris pertama data dapat menggunakan fungsi head(Data).
head(Data)
# A tibble: 6 × 9
Age `Sleep Duration` `Quality of Sleep` `Physical Activity Level` Sistol
<dbl> <dbl> <dbl> <dbl> <dbl>
1 27 6.1 6 42 126
2 28 6.2 6 60 125
3 28 6.2 6 60 125
4 28 5.9 4 30 140
5 28 5.9 4 30 140
6 28 5.9 4 30 140
# ℹ 4 more variables: Diastol <dbl>, `Stress Level` <dbl>, `Heart Rate` <dbl>,
# `Daily Steps` <dbl>
summary(Data)
Fungsi summary() digunakan untuk menghitung statitika deskriptif dengan argumen data yang ingin dihitung (Data). Statistika deskriptif yang dimaksud adalah mean, median, minimum, maksimum, kuartil 1, dan kuartil 2
r = cor(Data)
corrplo(r, method = "number",type = "lower")
Fungsi cor() digunakan untuk menghitung korelasi antar variabel dengan argumen data yang ingin dihitung (Data). Selanjutnya disimpan dalam r
Fungsi corrplot() digunakan untuk membuat plot korelasi antar variabel dengan argumen:
x = data korelasi antar variabel (r)
method = Jenis yang dipakai untuk menggambarkan korelasinya (number)
type = Jenis plot yang dipakai (lower)
Statistik KMO dihitung dengan fungsi KMOS() Terlebih dahulu perlu mengaktifkan packages REdaS. Argumen berisikan Data. Fungsi KMOS() juga menghitung MSA untuk tiap variabel. Jika nilai MSA < 0.5 maka variabel tersebut tidak dapat di analisis lebih lanjut.
KMOS(Data)
Fungsi read_excel() digunakan untuk memuat data dari file Sleep Health and Lifestyle 2 dengan argumen yang berisikan lokasi file data tersimpan. Data tersebut disimpan dengan nama Data2. Kemudian digunakan fungsi data.frame(Data2) untuk membentuk data frame
Data2 = read_excel("C:/Kuliah/Tugas Kuliah/SEMESTER 5/Sleep Health and LifeStyle 2.xlsx")
data.frame(Data2)
Pengujian korelasi antar variabel digunakan fungsi bart_spher(). Terlebih dahulu perlu mengaktifkan packages REdaS. Argumen berisikan Data2
bart_spher(Data2)
Digunakan fungsi cor() untuk menghitung matriks korelasi antar variabel pada data. Argumen berisikan Data2 yang sudah dalam bentuk data frame yang kemudian disimpan pada korelasi. Lalu, nilai dan vektor eigen dapat ditentukan dengan fungsi eigen() dengan argumen korelasi yang kemudian disimpan dalam eigen.
korelasi = cor(Data2)
eigen = eigen(korelasi)
screeplot = plot(eigen$values, main = "Scree Plot", xlab = "Faktor", ylab = "Eigen Values", pch = 16, type = "o", col = "green", lwd = 1) + axis(1, at = seq(1,9)) + abline(h=1, col = "red")
Membuat scree plot digunakan fungsi plot() dengan argumen sebagai berikut:
x = data yang ingin dibuat plot (eigen$values)
main = judul plot (Scree Plot)
xlab = label sumbu x (Faktor)
ylab = label sumbu y (Eigen Values)
pch = kode jenis titik yang dipakai untuk mewakili data (16)
type = tipe plot (o)
col = warna titik dan garis (green)
lwd = ketebalan garis (1)
Selanjutnya, ditambahkan batas berupa garis horizontal pada nilai eigen=1, sehingga fungsi plot digabungkan dengan fungsi axis() dan abline()
Fungsi axis() memiliki argumen posisi sumbu dan nilai pada sumbu (1 dan at=seq(1,28)).
Fungsi abline() memiliki argumen nilai pada sumbu tegak dan warna garis(h=1 dan col=red1)
Ekstraksi faktor dengan PCA menggunakan fungsi principal(). Terlebih dahulu menginstal packages psych.
PCA = principal(r = korelasi, nfactors = 2, rotate = "varimax")
PCA$communality
Berisi argumen:
r = matriks korelasi antar variabel (korelasi)
nfactors = banyak komponen untuk diekstrak (nfactors = 2)
rotate = metode rotasi yang digunakan (varimax)
Selanjutnya ditampilkan komunalitas setiap variabel dengan fungsi PCA$communality
Ekstraksi faktor dengan PFA menggunakan fungsi fa(). Terlebih dahulu menginstal packages psych.
PFA = fa(r = Data2, nfactors = 2, rotate = "varimax", fm = "pa")
PFA
PFA$scores
Berisikan argumen:
r = matriks korelasi atau data awal yang nantinya akan dihitung otomatis matriks korelasinya (‘Data’)
nfactors = 2
rotate = rotasi yang digunakan (varimax)
fm = metode ekstraksi faktor (pa)
Visualisasi dapat dilakukan dengan fungsi fa.diagram. Terlebih dahulu menginstall packages `pysch.
loads = PFA$loadings
fa.diagram(loads)
round(PFA$loadings[1:7,],4)
Menyimpan loadings dari PFA yang diberi nama loads dengan fungsi PFA$loadings
Fungsi fa.diagram dengan argumen loadings dari metode PFA (loads)
Kemudian, menampilkan nilai loading dengan fungsi round untuk membulatkan dengan argumen PFA$loadings[1:7,] yaitu loadings dari 7 variabel dan 4 4 angka dibelakang koma.
Age Sleep Duration Quality of Sleep Physical Activity Level
Min. :27.00 Min. :5.800 Min. :4.000 Min. :30.00
1st Qu.:35.25 1st Qu.:6.400 1st Qu.:6.000 1st Qu.:45.00
Median :43.00 Median :7.200 Median :7.000 Median :60.00
Mean :42.18 Mean :7.132 Mean :7.313 Mean :59.17
3rd Qu.:50.00 3rd Qu.:7.800 3rd Qu.:8.000 3rd Qu.:75.00
Max. :59.00 Max. :8.500 Max. :9.000 Max. :90.00
Sistol Diastol Stress Level Heart Rate
Min. :115.0 Min. :75.00 Min. :3.000 Min. :65.00
1st Qu.:125.0 1st Qu.:80.00 1st Qu.:4.000 1st Qu.:68.00
Median :130.0 Median :85.00 Median :5.000 Median :70.00
Mean :128.6 Mean :84.65 Mean :5.385 Mean :70.17
3rd Qu.:135.0 3rd Qu.:90.00 3rd Qu.:7.000 3rd Qu.:72.00
Max. :142.0 Max. :95.00 Max. :8.000 Max. :86.00
Daily Steps
Min. : 3000
1st Qu.: 5600
Median : 7000
Mean : 6817
3rd Qu.: 8000
Max. :10000
Berdasarkan output di atas, dapat dilihat nilai minimum, maksimum, median, mean, kuartil 1, dan kuartil 2 dari masing-masing variabel.
Berdasarkan plot korelasi di atas, nilai korelasi yang mendekati 1 dan -1 mengindikasikan adanya korelasi kuat antara variabel tersebut. Dapat dilihat juga dari warna, semakin gelap warnanya semakin kuat juga korelasinya (biru menandakan korelasi positif dan merah menandakan korelasi negatif).
Kaiser-Meyer-Olkin Statistics
Call: KMOS(x = Data)
Measures of Sampling Adequacy (MSA):
Age Sleep Duration Quality of Sleep
0.8540614 0.8272831 0.6825248
Physical Activity Level Sistol Diastol
0.4769240 0.5407748 0.5432425
Stress Level Heart Rate Daily Steps
0.6522049 0.6436450 0.3109900
KMO-Criterion: 0.6100767
Berdasarkan output di atas, diperoleh statistik KMO-Criterion sebesar 0.61 > 0.5, sehingga dapat disimpulkan analisis faktor dapat diterapkan menggunakan matriks korelasi antar variabel data.
Nilai MSA untuk variabel Daily steps dan Physical Activity level < 0.5 sehingga variabel tersebut tidak dapat dianalisis lebih lanjut.
Data2 = read_excel("C:/Kuliah/Tugas Kuliah/SEMESTER 5/Sleep Health and LifeStyle 2.xlsx")
data.frame(Data2)
Setelah diketahui variabel daily steps dan physical activity level tidak dapat dianalisis lebih lanjut, maka dilakukan input data kembali dengan membuang variabel tersebut
Bartlett's Test of Sphericity
Call: bart_spher(x = Data2)
X2 = 2990.437
df = 21
p-value < 2.22e-16
Hipotesis:
\(H_0 :\) R = I (Tidak terdapat korelasi yang signifikan antar variabel)
\(H_1 :\) R \(\neq\) I (Terdapat korelasi yang signifikan antar variabel)
Keputusan:
Berdasarkan output di atas, nilai-p < \(\alpha\) (0.05), maka tolak \(H_0\)
Kesimpulan
Dengan taraf nyata 5%, dapat disimpulkan bahwa terdapat korelasi yang signifikan antar variabel. Sehingga layak dilanjutkan dengan analisis faktor
Berdasarkan scree plot di atas, terdapat 2 faktor yang memiliki nilai eigen lebih dari 1 sehingga banyak faktor bermakna yang akan diesktrak sebanyak 2 faktor
Age Sleep Duration Quality of Sleep Sistol
0.8228086 0.8036398 0.9362758 0.9627730
Diastol Stress Level Heart Rate
0.9485675 0.8870108 0.6321065
Berdasarkan output di atas, dapat dilihat komunalitas setiap variabel memiliki nilai < 1.Hal tersebut mengindikasikan hilangnya informasi sehingga kurang reprensentatif. Oleh karena itu, PCA kurang tepat digunakan sebagai metode ekstraksi faktor pada kasus ini.
Factor Analysis using method = pa
Call: fa(r = Data2, nfactors = 2, rotate = "varimax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
PA1 PA2 h2 u2 com
Age 0.44 0.69 0.68 0.323 1.7
Sleep Duration 0.87 -0.03 0.77 0.234 1.0
Quality of Sleep 0.97 0.05 0.94 0.059 1.0
Sistol -0.17 0.97 0.97 0.029 1.1
Diastol -0.16 0.96 0.95 0.046 1.1
Stress Level -0.92 -0.05 0.85 0.149 1.0
Heart Rate -0.69 0.16 0.51 0.491 1.1
PA1 PA2
SS loadings 3.29 2.38
Proportion Var 0.47 0.34
Cumulative Var 0.47 0.81
Proportion Explained 0.58 0.42
Cumulative Proportion 0.58 1.00
Mean item complexity = 1.1
Test of the hypothesis that 2 factors are sufficient.
df null model = 21 with the objective function = 8.09 with Chi Square = 2990.44
df of the model are 8 and the objective function was 0.31
The root mean square of the residuals (RMSR) is 0.03
The df corrected root mean square of the residuals is 0.04
The harmonic n.obs is 374 with the empirical chi square 10.97 with prob < 0.2
The total n.obs was 374 with Likelihood Chi Square = 112.42 with prob < 1.2e-20
Tucker Lewis Index of factoring reliability = 0.907
RMSEA index = 0.187 and the 90 % confidence intervals are 0.157 0.219
BIC = 65.03
Fit based upon off diagonal values = 1
Measures of factor score adequacy
PA1 PA2
Correlation of (regression) scores with factors 0.98 0.99
Multiple R square of scores with factors 0.96 0.98
Minimum correlation of possible factor scores 0.92 0.95
Berdasarkan output di atas, dapat dilihat komunalitas setiap variable memiliki nilai < 1. Pada metode PFA sudah seharusnya komunalitas tiap variabel bernilai < 1, sehingga PFA sudah tepat metode ekstraksi faktor pada kasus ini.
Model analisis faktor yang terbentuk sebagai berikut:
\(Age = 0.44PA_1 + 0.69PA_2 + u_1\)
\(Sleep Duration = 0.87PA_1 - 0.039PA_2 + u_2\)
\(Quality of Sleep = 0.97PA_1 + 0.05PA_2 + u_3\)
\(Sistol = -0.17PA_1 + 0.97PA_2 + u_4\)
\(Diastol = -0.16PA_1 + 0.96PA_2 + u_5\)
\(Stress Level = -0.92PA_1 - 0.05PA_2 + u_6\)
\(Heart Rate = -0.69PA_1 + 0.16PA_2 + u_7\)
Pada output bagian Proportion Variance, faktor PA_1 dapat menjelaskan variansi sebesar 47% dan faktor PA_2 dapat menjelaskan variansi sebesar 34%, sehingga secara kumulatif kedua faktor dapat menjelaskan variansi sebesar 81%
PA1 PA2
Age 0.4409 0.6947
Sleep Duration 0.8746 -0.0279
Quality of Sleep 0.9689 0.0502
Sistol -0.1732 0.9702
Diastol -0.1598 0.9637
Stress Level -0.9214 -0.0477
Heart Rate -0.6946 0.1629
Berdasarkan visualisasi di atas, dapat dilihat bahwa faktor \(PA_1\) memiliki korelasi signifikan terhadap Quality of sleep, Stress level(hubungan negatif), Sleep duration, dan Hear rate(hubungan negatif). Faktor \(PA_2\) memiliki korelasi signifikan terhadap Sistol, Diastol, dan Age
Hasil dari 7 variabel menghasilkan 2 buah faktor yang dapat dikelompokkan berdasarkan indikator-indikator masing-masing.
Faktor-faktor tersebut diinterpretasikan sebagai Faktor stress terhadap kualitas tidur dan faktor umur terhadap gaya hidup.
Berdasarkan hasil analisis, dapat ditarik kesimpulan bahwa:
Terdapat 2 variabel (Daily Steps dan Physical Activity Level) dengan nilai MSA<0.5, sehingga variabel tersebut harus dihapus dan variabel menjadi berjumlah 7
Terdapat 2 faktor bermakna yang dapat diekstrak dari 7 variabel/indikator kualitas tidur dan gaya hidup.
Faktor-faktor tersebut diinterpretasikan sebagai Faktor stress terhadap kualitas tidur dan faktor umur terhadap gaya hidup.
Saran yang dapat diberikan yaitu memperbanyak indikator-indikator kualitas tidur dan gaya hidup.
Sumber Data: https://www.kaggle.com/datasets/uom190346a/sleep-health-and-lifestyle-dataset
Diva, Destiara Rahma. 2018. Analisis Data Kualitas Jasa Terhadap Kepuasan Pelanggan K-POP Concert Organizer Mecimapro Dengan Analisis Faktor. Bandung: Universitas Pendidikan Indonesia
Jayakusumah, Herdi. 2011. Analisis Faktor-Faktor yang Mempengaruhi Konsumen dalam Keputusan Pembelian Teh Celup Sariwangi (Studi Kasus Pada Masyarakat Kota Bekasi). Skripsi. Fakultas Ekonomi dan Bisnis: Universitas Islam Negeri Syarif Hidayatullah
Purwanto. 2004. Analisis Faktor: Konsep, Prosedur Uji, dan Interpretasi. Jurnal Teknodik, No. 15 Vol. VIII
Xie, Yihui. 2016. bookdown Authoring Books and Technical Documents with R Markdown. Chapman and Hall