Tentang Dataset

Sumber Data

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.

Keterangan Variabel

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.


Deskripsi Data

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
summary(data_analisis)
##    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.


Model Regresi Linear Berganda

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\]

Estimasi Parameter

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.

Pengujian Hipotesis

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 Residual

Uji normalitas bertujuan untuk memastikan bahwa residual mengikuti distribusi normal. Digunakan Uji Kolmogorov-Smirnov dengan hipotesis \(H_0\): residual berdistribusi normal.

error <- model$residuals
uji_ks <- ks.test(error, "pnorm", mean(error), sqrt(var(error)))
uji_ks
## 
##  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

Uji heteroskedastisitas bertujuan memastikan variansi residual bersifat konstan (homoskedastis). Digunakan Uji Breusch-Pagan dengan hipotesis \(H_0\): tidak ada heteroskedastisitas.

library(lmtest)
uji_bp <- bptest(model)
uji_bp
## 
##  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

Uji autokorelasi bertujuan memastikan tidak ada korelasi antar residual. Digunakan Uji Durbin-Watson dengan hipotesis: \(H_0\): tidak ada autokorelasi pada residual.

uji_dw <- dwtest(model)
uji_dw
## 
##  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

Uji multikolinearitas bertujuan memastikan tidak ada hubungan linear yang kuat antar variabel independen. Nilai VIF < 10 menunjukkan tidak ada asumsi multikolinearitas.

library(car)
nilai_vif <- vif(model)
nilai_vif
##         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.


Plot Model Regresi

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

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

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.


Kesimpulan

Persamaan Model

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.

Koefisien Determinasi

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.

Hasil Uji Asumsi

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.

Saran

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.