Dataset yang digunakan adalah Student Exam Performance Dataset yang didapatkan dari Kaggle. Dataset ini berisi data kebiasaan belajar dan hasil ujian dari 200 mahasiswa, mencakup variabel seperti jam belajar, persentase kehadiran, jam tidur, dan nilai ujian akhir.
Berikut seluruh variabel yang tersedia dalam dataset:
| Variabel | Tipe | Peran | Keterangan |
|---|---|---|---|
student_id |
Numerik | ID | Nomor identitas mahasiswa |
hours_studied |
Numerik | X1 — Independen | Jam belajar per hari (0,6–8 jam) |
attendance_percentage |
Numerik | X2 — Independen | Persentase kehadiran kuliah (50–100%) |
sleep_hours |
Numerik | X3 — Independen | Jam tidur per hari (4–9 jam) |
exam_score |
Numerik | Y — Dependen | Nilai ujian akhir (20–100) |
Dalam analisis ini, exam_score digunakan sebagai
variabel dependen (Y) yang ingin dijelaskan oleh tiga variabel
independen: hours_studied,
attendance_percentage, dan sleep_hours.
Sebelum membangun model, kita perlu memahami karakteristik data terlebih dahulu. Langkah pertama adalah mengimpor data, lalu melihat statistik deskriptifnya untuk mengetahui gambaran umum distribusi setiap variabel yang akan dianalisis.
data <- read.csv("student_exam_performance.csv")
data_analisis <- data[, c("exam_score", "hours_studied",
"attendance_percentage", "sleep_hours")]
head(data_analisis)## exam_score hours_studied attendance_percentage sleep_hours
## 1 77 2.2 92 7.9
## 2 46 2.2 61 6.4
## 3 44 6.6 98 4.3
## 4 78 7.1 95 8.7
## 5 85 6.5 89 5.2
## 6 89 3.0 78 7.7
## exam_score hours_studied attendance_percentage sleep_hours
## Min. : 20.00 Min. :0.600 Min. : 50.00 Min. :4.000
## 1st Qu.: 42.00 1st Qu.:2.175 1st Qu.: 63.00 1st Qu.:5.200
## Median : 62.50 Median :3.800 Median : 75.00 Median :6.500
## Mean : 61.55 Mean :4.034 Mean : 74.89 Mean :6.543
## 3rd Qu.: 82.25 3rd Qu.:6.100 3rd Qu.: 86.25 3rd Qu.:7.800
## Max. :100.00 Max. :8.000 Max. :100.00 Max. :9.000
Dataset ini terdiri dari 200 mahasiswa dengan rata-rata nilai ujian sebesar 61.56 dari skala 0–100. Rata-rata jam belajar per hari adalah 4.03 jam, rata-rata kehadiran 74.89%, dan rata-rata jam tidur 6.54 jam per hari.
Regresi linear berganda digunakan untuk menganalisis pengaruh beberapa variabel independen secara bersamaan terhadap satu variabel dependen. Bentuk umum persamaannya adalah:
\[Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_3 + \epsilon\]
Dalam analisis ini, model yang diestimasi adalah:
\[\text{Exam Score} = \beta_0 + \beta_1 \text{Hours Studied} + \beta_2 \text{Attendance} + \beta_3 \text{Sleep Hours} + \epsilon\]
Untuk mengestimasi nilai koefisien \(\beta\), digunakan metode Ordinary
Least Squares (OLS) melalui fungsi lm() di R.
Metode ini bekerja dengan meminimalkan jumlah kuadrat selisih antara
nilai aktual dan nilai prediksi.
model <- lm(exam_score ~ hours_studied + attendance_percentage + sleep_hours, data = data_analisis)
summary(model)##
## Call:
## lm(formula = exam_score ~ hours_studied + attendance_percentage +
## sleep_hours, data = data_analisis)
##
## Residuals:
## Min 1Q Median 3Q Max
## -45.176 -18.071 2.201 20.733 40.471
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 51.35293 12.11634 4.238 3.47e-05 ***
## hours_studied 2.24895 0.75400 2.983 0.00322 **
## attendance_percentage -0.07088 0.11432 -0.620 0.53597
## sleep_hours 0.98400 1.12667 0.873 0.38353
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 23.15 on 196 degrees of freedom
## Multiple R-squared: 0.04668, Adjusted R-squared: 0.03209
## F-statistic: 3.199 on 3 and 196 DF, p-value: 0.02449
Berdasarkan hasil estimasi, model akhir yang diperoleh adalah:
\[\widehat{\text{Exam Score}} = 51.3529 + 2.249 \cdot \text{Hours Studied} + -0.0709 \cdot \text{Attendance} + 0.984 \cdot \text{Sleep Hours}\]
Nilai Multiple R-squared = 0.0467 dan Adjusted R-squared = 0.0321 menunjukkan bahwa sekitar 3.21% variasi nilai ujian dapat dijelaskan oleh ketiga variabel independen dalam model ini.
Setelah model terbentuk, perlu dilakukan serangkaian uji asumsi klasik untuk memastikan bahwa model regresi yang dihasilkan sudah memenuhi syarat BLUE (Best Linear Unbiased Estimator).
Uji normalitas bertujuan untuk memastikan bahwa residual mengikuti distribusi normal. Digunakan Uji Kolmogorov-Smirnov dengan hipotesis \(H_0\): residual berdistribusi normal.
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: error
## D = 0.089458, p-value = 0.08143
## alternative hypothesis: two-sided
Hasil uji menunjukkan nilai statistik D = 0.08946 dengan p-value = 0.0814. Karena p-value > 0,05 maka gagal tolak \(H_0\), artinya residual model berdistribusi normal.
Uji heteroskedastisitas bertujuan memastikan variansi residual bersifat konstan (homoskedastis). Digunakan Uji Breusch-Pagan dengan hipotesis \(H_0\): tidak ada heteroskedastisitas.
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 0.46739, df = 3, p-value = 0.926
Hasil uji menunjukkan nilai BP = 0.4674, df = 3, dengan p-value = 0.926. Karena p-value > 0,05 maka gagal tolak \(H_0\), artinya tidak terdapat heteroskedastisitas pada model.
Uji autokorelasi bertujuan memastikan tidak ada korelasi antar residual. Digunakan Uji Durbin-Watson dengan hipotesis: \(H_0\): tidak ada autokorelasi pada residual.
##
## Durbin-Watson test
##
## data: model
## DW = 1.7826, p-value = 0.06061
## alternative hypothesis: true autocorrelation is greater than 0
Hasil uji menunjukkan nilai DW = 1.7826 dengan p-value = 0.0606. Nilai DW yang mendekati angka 2 mengindikasikan gagal tolak \(H_0\), artinya tidak terdapat autokorelasi pada residual model.
Uji multikolinearitas bertujuan memastikan tidak ada hubungan linear yang kuat antar variabel independen. Nilai VIF < 10 menunjukkan tidak ada asumsi multikolinearitas.
## hours_studied attendance_percentage sleep_hours
## 1.009067 1.001596 1.009751
Nilai VIF untuk masing-masing variabel adalah Hours Studied = 1.0091, Attendance = 1.0016, dan Sleep Hours = 1.0098. Karena seluruh nilai VIF jauh di bawah 10 maka gagal tolak \(H_0\),artinya tidak terdapat multikolinearitas antar variabel independen.
Visualisasi plot disini digunakan untuk melihat hubungan antara variabel dalam model serta membantu mengevaluasi apakah model regresi yang terbentuk sudah menggambarkan pola data dengan baik.
Scatterplot Jam Belajar vs Nilai Ujian
Grafik menunjukkan adanya hubungan positif antara jam belajar dan nilai ujian. Hal ini terlihat dari garis regresi yang cenderung meningkat dari kiri ke kanan. Artinya, semakin banyak jam belajar per hari, maka nilai ujian cenderung meningkat.
Namun, titik-titik data masih tersebar cukup luas, sehingga hubungan antara kedua variabel tidak terlalu kuat. Hal ini menunjukkan bahwa selain jam belajar, kemungkinan terdapat faktor lain yang juga mempengaruhi nilai ujian.
Diagnostik Residual Model Regresi
Berdasarkan grafik Residual vs Fitted, terlihat bahwa titik-titik residual tersebar secara acak di sekitar garis nol dan tidak membentuk pola tertentu. Hal ini menunjukkan bahwa hubungan dalam model regresi cukup linear dan tidak terdapat indikasi kuat adanya masalah pada varians residual.
Sementara itu, pada Q-Q Plot, sebagian besar titik mengikuti garis diagonal, yang menunjukkan bahwa distribusi residual mendekati distribusi normal. Meskipun terdapat sedikit penyimpangan pada bagian ujung, secara keseluruhan asumsi normalitas residual terpenuhi.
Berdasarkan hasil estimasi model regresi linear berganda menggunakan metode OLS, diperoleh persamaan model akhir sebagai berikut:
\[\widehat{\text{Exam Score}} = 51.3529 + 2.249 \cdot \text{Hours Studied} + -0.0709 \cdot \text{Attendance} + 0.984 \cdot \text{Sleep Hours}\]
Interpretasi masing-masing koefisien adalah sebagai berikut:
Hours Studied (2.249): Setiap penambahan 1 jam belajar per hari, nilai ujian meningkat rata-rata sebesar 2.249 poin, dengan asumsi variabel lain tetap. Ini menunjukkan bahwa semakin lama mahasiswa belajar, semakin tinggi nilai ujian yang diperoleh.
Attendance Percentage (-0.0709): Setiap kenaikan 1% kehadiran, nilai ujian berubah sebesar -0.0709 poin, dengan asumsi variabel lain tetap.
Sleep Hours (0.984): Setiap penambahan 1 jam tidur per hari, nilai ujian meningkat rata-rata sebesar 0.984 poin, dengan asumsi variabel lain tetap. Hal ini mengonfirmasi bahwa istirahat yang cukup berkontribusi positif terhadap performa ujian mahasiswa.
Nilai Multiple R-squared = 0.0467 dan Adjusted R-squared = 0.0321 menunjukkan bahwa sekitar 3.21% variasi nilai ujian dapat dijelaskan oleh ketiga variabel independen dalam model.
Sisanya sebesar 96.79% dipengaruhi oleh faktor lain yang tidak tercakup dalam model, seperti kemampuan dasar mahasiswa, kualitas pengajaran, atau tingkat kesulitan ujian.
Berdasarkan keempat uji asumsi klasik yang telah dilakukan, seluruh asumsi model regresi linear berganda terpenuhi dengan baik:
Normalitas residual: p-value = 0.0814 > 0,05 sehingga \(H_0\) gagal ditolak. Residual model berdistribusi normal.
Homoskedastisitas: p-value = 0.926 > 0,05 sehingga \(H_0\) gagal ditolak. Tidak terdapat heteroskedastisitas pada model atau variansi residual bersifat konstan.
Tidak ada autokorelasi: DW = 1.7826 mendekati 2 yang berarti gagal tolak \(H_0\). Artinya model tidak ada korelasi antar residual.
Tidak ada multikolinearitas: Seluruh VIF < 10 maka gagal tolak \(H_0\), artinya tidak ada hubungan linear kuat antar variabel.
Karena seluruh asumsi terpenuhi, model regresi ini memenuhi syarat BLUE (Best Linear Unbiased Estimator) sehingga hasil estimasi koefisien dapat digunakan untuk interpretasi maupun prediksi.
Meskipun seluruh asumsi klasik terpenuhi, nilai R-squared yang relatif rendah (4.67%) mengindikasikan bahwa masih banyak faktor lain yang belum masuk ke dalam model. Untuk meningkatkan kemampuan prediktif model, dapat dipertimbangkan penambahan variabel independen lain seperti motivasi belajar, akses ke sumber belajar, atau indeks kesehatan mental mahasiswa.