SELEKSI MODEL REGRESI DALAM MENENTUKAN FAKTOR
DOMINAN PENENTU
NILAI UJIAN SISWA
| Disusun Oleh: | |
| 1. | MUHAMMAD ARIQ RAFIANSYAH (3338240017) |
| 2. | SUCI RAMADHANI (3338240031) |
| 3. | RIDLA IASA RAMADHANIA (3338240035) |
| 4. | MUTIARA SUCI CHAERANI (3338240044) |
| 5. | RAHAYU PUSPITA SARI (3338240049) |
Analisis Regresi
Pengantar Data Sains
PROGRAM STUDI STATISTIKA FAKULTAS TEKNIK
UNIVERSITAS SULTAN AGENG
TIRTAYASA
2025
Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa atas rahmat dan karunia-Nya sehingga Tugas Project Reproducible Research dan seleksi model ini dapat diselesaikan dengan baik. Tugas ini disusun sebagai salah satu tugas Pra-UAS pada mata kuliah Pengantar Data Sains di Program Studi Statistika, Fakultas Teknik, Universitas Sultan Ageng Tirtayasa, Banten. Kami menyadari bahwa tanpa bimbingan, bantuan, serta dukungan dari berbagai pihak, proses penyusunan tugas ini tidak akan berjalan dengan lancar. Oleh karena itu, kami mengucapkan terima kasih kepada:
Agung Satrio Wicaksono, S.Mat., M.Si., selaku dosen pengampu mata kuliah Pengantar Data Sains, atas arahan dan bimbingan selama proses pengerjaan tugas.
Aulia Ikhsan, S.Si., M.Si., selaku dosen pengampu mata kuliah Nalisis Regresi, atas arahan dan bimbingan selama proses pengerjaan tugas.
Dr. Faula Arina, S.Si., M.Si., selaku Ketua Program Studi Statistika Fakultas Teknik, Universitas Sultan Ageng Tirtayasa, atas dukungan akademik dan fasilitas yang diberikan.
Orang tua, keluarga, serta teman-teman yang selalu memberikan motivasi, dorongan, dan masukan kepada kami.
Kami menyadari bahwa laporan ini masih memiliki kekurangan, sehingga kritik dan saran yang membangun sangat diperlukan untuk perbaikan di masa mendatang. Kami berharap tugas ini dapat memberikan manfaat bagi rekan-rekan mahasiswa, khususnya dalam memahami konsep dan praktik reproducible research, serta dapat menjadi referensi dalam pengembangan kemampuan analisis data di masa depan.
Cilegon, 08 Desember 2025
Penulis
Pencapaian akademik siswa merupakan salah satu aspek penting dalam dunia pendidikan karena mencerminkan bagaimana proses belajar berlangsung. Banyak faktor dapat memengaruhi hasil belajar, dan setiap siswa biasanya memiliki kondisi serta kebiasaan yang berbeda-beda. Oleh karena itu, memahami faktor-faktor apa saja yang berkaitan dengan nilai ujian menjadi penting untuk melihat pola belajar yang efektif [1].
Salah satu faktor penting adalah kebiasaan belajar, seperti berapa lama siswa meluangkan waktu untuk belajar setiap minggu. Pengelolaan waktu belajar yang baik terbukti dapat meningkatkan kedisiplinan serta mendukung prestasi akademik [2]. Selain itu, kemampuan siswa dalam memahami materi juga dipengaruhi oleh penguasaan materi sebelumnya, sehingga nilai ujian terdahulu sering menjadi indikator kemampuan akademik siswa.
Faktor lain yang tidak kalah penting adalah kehadiran. Siswa yang hadir lebih konsisten di kelas biasanya memiliki kesempatan lebih besar untuk memahami materi secara langsung, karena bisa mendengarkan serta mengikuti penjelasan guru, mengerjakan latihan secara langsung, ataupun terlibat dalam diskusi di kelas. Selain itu, kondisi fisik dan kebiasaan sehari-hari juga ikut berperan. Waktu tidur yang cukup berpengaruh terhadap konsentrasi karena dapat membantu siswa lebih fokus, sedangkan aktivitas fisik dapat meningkatkan kebugaran tubuh sehingga siswa lebih siap mengikuti pembelajaran. Penelitian di Indonesia menunjukkan bahwa aktivitas fisik memiliki hubungan dengan kebugaran dan prestasi akademik [3-4].
Dataset Student Performance Factors dari Kaggle berisi variabel-variabel yang menggambarkan kondisi tersebut, seperti jam belajar, nilai sebelumnya, tingkat kehadiran, waktu tidur, dan aktivitas fisik. Dengan menganalisis variabel-variabel yang ada di data ini, dapat dilihat bagaimana masing-masing faktor tersebut berhubungan dengan nilai ujian akhir siswa (Exam_Score) yang menjadi indikator prestasi akademik.
Berdasarkan latar belakang yang telah dijelaskan, maka rumusan masalah dalam analisis ini adalah:
Bagaimana arah hubungan (positif atau negatif) variabel independen terhadap variabel dependen?
Seberapa besar pengaruh masing-masing variabel independen terhadap variabel dependen?
Model regresi seperti apa yang paling tepat untuk menjelaskan hubungan antara variabel independen dan variabel dependen berdasarkan metode seleksi model(Backward, Forward, Stepwise, AIC, atau BIC)?
Apakah model regresi yang dihasilkan sudah memenuhi asumsi dan dapat memberikan gambaran tentang faktor-faktor yang memengaruhi nilai ujian?
Tujuan dari analisis ini adalah:
Mengidentifikasi variabel independen (Hours_Studied, Previous_Scores, Attendance, Sleep_Hours, Physical_Activity) yang berpengaruh terhadap variabel dependen, yaitu Exam_Score.
Mengetahui arah hubungan (positif atau negatif) dan besarnya pengaruh masing-masing variabel independen terhadap nilai ujian.
Membangun model regresi yang optimal untuk memprediksi Exam_Score melalui proses seleksi model (Backward, Forward, Stepwise, AIC, dan BIC).
Menghasilkan model yang efisien, memenuhi asumsi regresi, serta memberikan pemahaman tentang faktor-faktor yang memengaruhi nilai ujian.
Analisis regresi adalah teknik statistik untuk menyelidiki dan memodelkan hubungan antara variabel. Aplikasi analisis regresi sangat luas dan terdapat di hampir setiap bidang, termasuk teknik, ilmu fisika dan kimia,ekonomi, manajemen, ilmu kehidupan dan biologi, serta ilmu sosial. Faktanya,analisis regresi mungkin merupakan teknik statistik yang paling banyak digunakan [5].
Regresi Linear Berganda adalah model regresi linear dengan melibatkan lebih dari satu variable bebas atau predictor. Dalam bahasa inggris, istilah ini disebut dengan multiple linear regression [6]. Dengan demikian, Regresi Linier Berganda dinyatakan dalam persamaan matematika sebagai berikut :
Uji asumsi klasik digunakan untuk mengetahui ada tidaknya normalitas residual, multikolinearitas, autokorelasi, dan heteroskedastisitas pada model regresi. Menurut Purnomo (2016), uji asumsi klasik merupakan syarat penting agar model regresi menghasilkan estimasi yang valid dan tidak bias. Model regresi linier dapat disebut sebagai model yang baik jika model tersebut memenuhi beberapa asumsi klasik yaitu data residual terdistribusi normal, tidak adanya multikolinearitas, autokorelasi, dan heteroskedastisitas. Harus terpenuhinya asumsi klasik agar diperoleh model regresi dengan estimasi yang tidak bias dan pengujian dapat dipercaya. Apabila ada satu syarat saja yang tidak terpenuhi, maka hasil analisis regresi tidak dapat dikatakan bersifat BLUE (Best Linear Unbiased Estimator) [7].
Uji normalitas adalah untuk menguji apakah dalam model regresi,variabel terikat (dependent variable) dan variabel bebas (independent variable) keduanya memiliki distribusi normal atau tidak. Model regresi yang memiliki distribusi data yang normal atau mendekati normal dikatakan model regresi yang baik [6].
Uji autokorelasi dilakukan untuk mengetahui apakah ada korelasi antara kesalahan pengganggu pada periode t dengan kesalahan pada periode t sebelumnya pada model regresi linier yang dipergunakan.Jika terjadi korelasi, maka dinamakan ada problem autokorelasi. Dalam model regresi yang baik adalah tidak terjadi autokorelasi [8].
Menurut Resista Vikaliana (2022), kondisi ideal dalam regresi adalah homoskedastisitas, yaitu varian residual yang sama. Apabila heteroskedastisitas terjadi, maka proses penaksiran parameter menjadi tidak efisien. Untuk mendeteksi apakah model mengalami heteroskedastisitas atau tidak, terdapat beberapa metode pengujian yang dapat digunakan, antara lain Uji Breusch-Pagan Godfrey (BP Test), Uji White, Uji Goldfeld-Quandt (GQ Test), dan Uji Brown-Forsythe [9].
Menurut Arnas et al. (2023), uji multikolinearitas bertujuan untuk mendeteksi ada tidaknya korelasi antar variabel independen dalam model regresi [10]. Multikolinearitas muncul ketika terdapat hubungan linier yang kuat antar variabel bebas, sehingga menyulitkan pemisahan pengaruh masing-masing variabel terhadap variabel dependen. Oleh karena itu, regresi linier yang baik tidak boleh menunjukkan hubungan tersebut. Deteksi multikolinearitas dapat dilakukan menggunakan Variance Inflation Factor (VIF) dan Tolerance (TOL) [10].
Secara umum, model terbaik dapat diartikan sebagai model yang memiliki faktor gangguan paling kecil atau model yang memberikan residual minimum. Satu-satunya jaminan bahwa suatu model dapat dipercaya adalah diikut-sertakannya variabel independen sebanyak mungkin ke dalam model. Dengan kata lain, semakin banyak variabel independen maka residual yang dihasilkan oleh model cenderung semakin kecil [11]
Tiga ukuran utama yang sering digunakan dalam seleksi model adalah Koefisien Determinasi Terkoreksi (adj R kuadrat), Akaike Information Criterion (AIC), dan Bayesian Information Criterion (BIC). Untuk mencari Koefisien Determinan Terkoreksi gunakan rumus,
jika nilai semakin besar maka semakin baik. Untuk mencari Akaike Information Criterion (AIC) gunakan rumus,
jika nilai semakin kecil maka semakin baik. Untuk mencari Bayesian Information Criterion (BIC) gunakan rumus,
jika nilai semakin kecil maka semakin baik.
Forward selection adalah metode pembentukan model regresi terbaik berdasarkan pendekatan dengan cara me-lakukan pemilihan variabel dengan memasukkan variabel bebas yang memiliki nilai korelasi terbesar. Lalu dilakukan pemeriksaan nilai F model yang baru terbentuk apakah sig-nfikan atau tidak. Bila iya simpan variabel bebas tersebut lalu lakukan secara bertahap memasukkan variabel bebas [12]. Kelebihan menggunakan metode forward dalam mencari model regresi yang terbaik adalah sebagai alternatif untuk mengurangi kemungkinan adanya multikolinearitas dalam model yang dihasilkan. Adapun kekurangannya adalah memungkinkan untuk memasukkan lebih banyak variabel yang tidak begitu signifikan, karena MSE yang dihasilkan forward akan lebih kecil yang menyebabkan nilai F hitung besar, prosedur ini tidak selalu mengarahkan ke model yang terbaik, mengingat kita hanya mempertimbangkan sebuah subset kecil dari semua model-model yang mungkin [12].
Dalam metode backward elimination ini dimulai dengan memasukkan seluruh variabel bebas x, ke dalam model lalu secara bertahap kita akan mengurangi variabel satu per satu di dalam persamaan yang tidak memenuhi syarat kelayakan [12]. Kelebihan prosedur ini jauh lebih menghemat waktu dan tenaga dibandingkan metode pemilihan model regresi terbaik lainnya karena di dalam backward elimination kita hanya memperhatikan satu variabel saja..Namun kekurangan dari pemilihan model ini adalah ketika suatu variabel dikeluarkan dari dalam model melalui dalam prosedur ini, maka ia akan hilang untuk selamanya. Jadi, semua model alternatif yang menanggung variabel yang telah dikeluarkan tidak dapat dipertimbangkan atau digunakan kembali [12].
Metode regresi stepwise adalah metode yang merupakan gabungan dari metode regresi forward dan backward. Pada metode ini, terdapat banyak tahap yang kemudian tujuan akhirnya adalah untuk menentukan variabel mana saja yang merupakan prediktor terbaik yang dimasukkan ke dalam model. Variabel yang terpilih untuk masuk ke dalam model adalah variabel yang mempunyai korelasi tertinggi dan sig-nificant terhadap variabel dependent [12]. Setiap terdapat 1 variabel yang masuk ke dalam model, maka variabel yang sudah masuk ke dalam model akan di-evaluasi. Jika terdapat variabel yang tidak significant di dalam model, maka variabel tersebut dikeluarkan dari model [12].
Data yang digunakan dalam laporan ini berasal dari dataset Student Performance Factors yang diunduh dari platform Kaggle. Dataset sekunder ini berisi ratusan data informasi mengenai berbagai faktor yang diduga memengaruhi nilai ujian siswa, seperti kebiasaan belajar, riwayat nilai sebelumnya, kondisi fisik, serta tingkat keterlibatan siswa dalam kegiatan belajar. Secara keseluruhan, dataset ini memuat beragam variabel, di antaranya jam belajar, tingkat kehadiran, kualitas tidur, aktivitas fisik, dukungan orang tua, akses internet, hingga jenis sekolah. Namun, agar analisis lebih terarah dan sesuai dengan kebutuhan proyek, dilakukan proses penyederhanaan data. Dari dataset asli tersebut, kelompok hanya menggunakan 75 data siswa yang memiliki informasi lengkap pada variabel yang dibutuhkan. Pemilihan jumlah ini mempertimbangkan agar proses pembersihan data, analisis regresi, serta pemilihan model terbaik seperti forward, backward, dan stepwise dapat dilakukan secara lebih terstruktur.
Dalam proses penyederhanaan, kelompok hanya menggunakan variabel-variabel kuantitatif yang relevan terhadap tujuan analisis, yaitu Hours_Studied, Previous_Scores, Attendance, Sleep_Hours, dan Physical_Activity. Kelima variabel inilah yang kemudian digunakan sebagai variabel independen (X1, X2, X3, X4, X5), sementara Exam_Score dijadikan variabel dependen (Y). Pemilihan lima variabel independen ini dilakukan karena masing-masing memiliki dasar logis dan relevan terhadap nilai ujian siswa. Hours_Studied (X1) dipilih karena jam belajar merupakan salah satu prediktor paling kuat dari performa akademik, di mana semakin banyak waktu yang digunakan untuk belajar biasanya akan meningkatkan pemahaman materi dan berdampak pada nilai ujian. Previous_Scores (X2) digunakan karena nilai sebelumnya mencerminkan kemampuan dasar siswa dan secara statistik sering berkorelasi tinggi dengan nilai yang diperoleh berikutnya. Attendance (X3) juga dimasukkan karena tingkat kehadiran menunjukkan seberapa sering siswa mengikuti proses pembelajaran, karena siswa dengan kehadiran tinggi umumnya lebih memahami materi sehingga mendapat hasil lebih baik. Selanjutnya, Sleep_Hours (X4) dipilih karena kualitas tidur berpengaruh langsung terhadap fokus, konsentrasi, serta stamina belajar, yang pada akhirnya memengaruhi nilai ujian. Terakhir, Physical_Activity (X5) digunakan karena aktivitas fisik terbukti dapat meningkatkan kesehatan mental dan konsentrasi, sehingga turut mendukung dalam performa belajar
library(readxl)
library(car)
library(lmtest)
library(sandwich)
library(MASS)
library(dplyr)
library(tidyverse)
library(corrplot)
library(leaps)
library(broom)
library(GGally)
# Immpor Data
data_project <- read_excel("C:/Users/rahay/OneDrive/Documents/Semester 3/PDS/Data_Project_Anreg_fix.xlsx")
Langkah berikutnya adalah mengimpor data dari file Data_Project_Anreg_fix.xlsx. Tahap ini dilakukan agar seluruh variabel yang ada di excel bisa dibaca dan digunakan di R.
# Lihat struktur
str(data_project)
Setelah data masuk, struktur data dicek menggunakan str(). Tujuannya untuk melihat jumlah baris, jumlah kolom, dan tipe data pada setiap variabelnya, serta memastikan semuanya bisa terbaca dengan benar.
head(data_project)
Fungsi head() digunakan untuk menampilkan enam baris awal data. Ini dilakukan untuk memastikan bahwa data sudah sesuai harapan.
summary(data_project)
Ringkasan data diperoleh dengan summary(). Bagian ini memberi gambaran awal mengenai nilai minimum, maksimum, median, dan rata-rata tiap variabel sehingga dapat membantu memahami kondisi umum data.
# Menampilkan variable
Y = data_project$Exam_Score_Y
X1 = data_project$Hours_Studied_X1
X2 = data_project$Previous_Scores_X2
X3 = data_project$Attendance_X3
X4 = data_project$Sleep_Hours_X4
X5 = data_project$Physical_Activity_X5
Pada tahap ini, variabel-variabel dipisahkan dari dataset agar lebih mudah digunakan saat membuat model.
# Cek missing values
colSums(is.na(data_project))
Kode colSums(is.na(data_project)) digunakan untuk memastikan apakah ada data yang kosong atau missing. Pengecekan ini penting karena nilai yang hilang dapat memengaruhi hasil regresi. Makanya, jika ada variabel yang kosong, perlu dibersihkan dan ditangani terlebih dahulu.
# Deteksi outlier pada Exam_Score_Y dengan boxplot
boxplot(data_project$Exam_Score_Y, main="Boxplot Exam_Score_Y")
Boxplot digunakan untuk melihat apakah nilai ujian memiliki outlier. Melalui grafik, titik yang berada jauh di luar rentang normal dapat terlihat dengan jelas.Tujuannya adalah memastikan apakah ada nilai yang sangat ekstrem sehingga bisa mempengaruhi model regresi.
# Distribusi variabel dependen (Y)
hist(data_project$Exam_Score_Y, main="Distribusi Exam_Score_Y", xlab="Exam_Score_Y")
Histogram dibuat untuk melihat bentuk distribusi dari nilai ujian (Y).Dari grafik ini bisa diketahui apakah nilai ujian cenderung normal, miring ke kanan, ataupun miring ke kiri.
# Hubungan antar variabel numerik
GGally::ggpairs(data_project)
GGally::ggpairs(data_project) menampilkan grafik hubungan antar variabel numerik sekaligus dalam satu tampilan. Melalui grafik ini dapat dilihat apakah ada hubungan linear antara X dan Y, apakah ada korelasi yang terlalu kuat antar variabel X (yang bisa memicu multikolinearitas), dan pola umum antar variabel.
# Buat model
model <- lm(Y ~ X1 + X2 + X3 + X4 + X5, data = data_project)
summary(model)
Model pertama dibuat menggunakan semua variabel independen: model <- lm(Y ~ X1 + X2 + X3 + X4 + X5, data = data_project) Tujuan dari model awal ini adalah untuk melihat variabel mana yang berpengaruh, seberapa besar kontribusinya terhadap Y, dan apakah model awal sudah cukup baik atau masih perlu disederhanakan.
# Hitung AIC & BIC model penuh
anova <- aov(Y ~ X1 + X2 + X3 + X4 + X5, data = data_project)
summary(anova)
n = 75
JKG = 150
k = 6
aic_model <- n * log(JKG / n) + 2 * k
cat("Nilai AIC Model penuh", aic_model)
bic_model <- n * log(JKG / n) + k * log(n)
cat("Nilai AIC Model penuh", bic_model)
Pada tahap ini dihitung nilai AIC dan BIC untuk model penuh atau model yang masih menggunakan semua variabel. Tujuannya adalah menilai seberapa baik model tersebut. AIC (Akaike Information Criterion) dan BIC (Bayesian Information Criterion) keduanya digunakan untuk membandingkan model. Semakin kecil nilai AIC dan BIC, semakin baik modelnya karena berarti model lebih efisien dan tidak terlalu rumit. Rumus dihitung manual dengan memasukkan:
Jumlah data (n = 75)
Jumlah kuadrat galat (JKG = 150)
Jumlah parameter (k = 6)
# Hitung VIF
vif_values <- vif(model)
tabel_VIF <- data.frame(
Variabel_X = c("Hours Studied", "Previous Scores", "Attendance",
"Sleep Hours", "Physical Activity"),
Nilai_VIF = vif_values)
tabel_VIF
Tahap ini digunakan untuk mengecek apakah ada masalah multikolinearitas, yaitu kondisi ketika variabel X saling berhubungan terlalu kuat.
Fungsi vif(model) menghasilkan nilai VIF untuk setiap variabel.
Nilai VIF > 10 biasanya menandakan masalah multikolinearitas yang serius.
Nilai VIF 1-5 masih dianggap aman.
# Uji Homoskedastisitas
# Visual: Plot Residuals vs Fitted
plot(model, which=1)
# Statistik: Uji Breusch-Pagan
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 3.1936, df = 5, p-value = 0.6702
Uji ini dilakukan untuk melihat apakah varians galat (residual) bersifat konstan di seluruh nilai fitted. Jika variansnya tidak konstan maka bisa terjadi heteroskedastisitas, yang bisa mengganggu hasil regresi.
# Uji Normalitas Residual
# Visual: Q-Q Plot
plot(model, which=2)
# Statistik: Uji Shapiro-Wilk
shapiro.test(residuals(model))
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.98291, p-value = 0.4077
Uji ini dilakukan untuk memastikan residual berdistribusi normal.
# Uji Autokorelasi
# Statistik: Uji Durbin-Watson
dwtest(model)
Tahap ini menggunakan Durbin-Watson test melalui dwtest(model). Autokorelasi adalah kondisi ketika residual saling berhubungan. Dicek untuk memastikan model stabil.
Nilai DW mendekati 2 berarti tidak ada autokorelasi.
Nilai < 1,5 atau > 2,5 berarti ada kemungkinan autokorelasi.
model_backward <- step(lm(Y ~ X1 + X2 + X3 + X4 + X5), direction = "backward")
Metode ini dimulai dari model penuh, kemudian variabel yang paling tidak signifikan dihilangkan satu per satu. Proses terus berjalan sampai model yang tersisa adalah model paling sederhana yang memberikan hasil terbaik. step(…, direction = “backward”)
model_forward <- step(lm(Y ~ X1 + X2 + X3 + X4 + X5), direction = "forward")
Metode ini kebalikannya dari backward. Dimulai dari model kosong, lalu variabel ditambahkan satu per satu berdasarkan kontribusi yang terbaik. Proses berhenti ketika penambahan variabel tidak lagi meningkatkan kualitas model. step(…, direction = “forward”)
model_stepwise <- stepAIC(lm(Y ~ X1 + X2 + X3 + X4 + X5), direction = "both")
Stepwise merupakan perpaduan antara forward dan backward. Pada metode ini, variabel bisa ditambahkan ataupun dikeluarkan tergantung apakah perubahan tersebut membuat model menjadi lebih baik. Pendekatan ini lebih fleksibel karena tidak hanya fokus menambah atau mengurangi saja, tetapi mencari kombinasi yang paling seimbang. Dengan tujuan menemukan model yang ringkas, namun tetap mampu menjelaskan hubungan antarvariabel dengan baik.
formula(model_backward)
Perintah ini menampilkan bentuk model akhir dari metode backward. Hasilnya menunjukkan variabel mana yang bertahan setelah proses penghapusan variabel yang tidak signifikan.
formula(model_forward)
Di sini ditampilkan model yang terbentuk dari proses forward, yaitu model yang dibangun dengan menambahkan variabel satu per satu berdasarkan kontribusinya.
formula(model_stepwise)
Perintah ini memberikan model akhir yang dipilih oleh metode stepwise, kombinasi antara penambahan dan pengurangan variabel yang paling meningkatkan performa model.
Setelah mendapatkan model dari masing-masing metode, langkah
berikutnya adalah menghitung nilai AIC dan BIC untuk membandingkan
kualitas model.
# Hitung AIC & BIC model backward
n = 75
JKG = 150.5
k = 4
aic_modelb <- n * log(JKG / n) + 2 * k
cat("Nilai AIC Model penuh", aic_modelb)
bic_modelb <- n * log(JKG / n) + k * log(n)
cat("Nilai AIC Model penuh", bic_modelb)
Bagian ini menghitung AIC dan BIC dari model backward dengan memasukkan jumlah pengamatan (n), jumlah kuadrat galat (JKG), serta jumlah parameter (k) dari model hasil backward.
# Hitung AIC model forward
n = 75
JKG = 150
k = 6
aic_modelf <- n * log(JKG / n) + 2 * k
cat("Nilai AIC Model penuh", aic_modelf)
bic_modelf <- n * log(JKG / n) + k * log(n)
cat("Nilai AIC Model penuh", bic_modelf)
Bagian ini cara perhitungannya sama, tetapi menggunakan nilai JKG dan jumlah parameter sesuai model forward.
# Hitung AIC model stepwise
n = 75
JKG = 150.5
k = 4
aic_models <- n * log(JKG / n) + 2 * k
cat("Nilai AIC Model penuh", aic_models)
bic_models <- n * log(JKG / n) + k * log(n)
cat("Nilai AIC Model penuh", bic_models)
Model stepwise dihitung menggunakan nilai JKG dan jumlah variabel yang tersisa setelah proses seleksi dua arah.
Tahap ini, semua model yang sudah dihasilkan seperti model penuh, backward, forward, dan stepwise dikumpulkan ke dalam satu tabel. Tujuannya supaya bisa melihat dan membandingkan kualitas masing-masing model secara langsung.
model_r <- data.frame(
Model = c("Model Penuh",
"Model Terbaik (Backward)",
"Model Terbaik (Forward)",
"Model Terbaik (Stepwise)"),
# Ambil R-squared yang Disesuaikan dari ringkasan
Adj_R2 = c( summary(model)$adj.r.squared,
summary(model_backward)$adj.r.squared,
summary(model_forward)$adj.r.squared,
summary(model_stepwise)$adj.r.squared),
# Ambil AIC
AIC = c(aic_model, aic_modelb, aic_modelf, aic_models),
# Ambil BIC
BIC = c(bic_model, bic_modelb, bic_modelf, bic_models)
)
# Tampilkan hasilnya
print(model_r)
Model dengan Adj R? yang cukup tinggi dan AIC/BIC paling rendah biasanya dianggap paling baik.
Setelah membandingkan seluruh model, dipilihlah model yang dianggap paling baik. Model terpilih berisi variabel yang paling berpengaruh terhadap nilai ujian, yaitu:
Jam belajar (X1)
Nilai sebelumnya (X2)
Kehadiran (X3)
# Model terpilih
model_terpilih <- lm(Y ~ X1 + X2 + X3, data = data_project)
summary(model_terpilih)
Setelah mendapatkan model terpilih, langkah berikutnya adalah mengecek apakah model tersebut sudah memenuhi asumsi regresi.
par(mfrow = c(2,2))
plot(model_terpilih)
Untuk memastikan model tidak mengandung multikolinearitas, maka dilakukan uji VIF:
# VIF
car :: vif(model_terpilih)
## X1 X2 X3
## 1.008524 1.003789 1.004853
Jika nilai VIF:
< 10 maka aman, tidak ada gejala multikolinearitas
> 10 maka bermasalah
Tahap ini untuk melihat bagaimana hasil prediksi model dibandingkan dengan nilai sebenarnya. Lalu dibuat grafik hubungan antara nilai aktual (Y) dan nilai prediksi. Grafik ini membantu melihat apakah model menghasilkan pola prediksi yang baik. Semakin dekat titik-titik data dengan garis merah, maka semakin akurat modelnya.
pred <- predict(model_terpilih)
ggplot(data_project, aes(pred, Y)) +
geom_point(color = "green", size = 2) +
geom_smooth(method = "lm", se = FALSE, color = "red") +
theme_minimal() +
labs(tittle = "Prediksi vs Nilai Aktual", x = "prediksi", y = "aktual")
Persiapan Package
library(readxl)
library(car)
library(lmtest)
library(sandwich)
library(MASS)
library(dplyr)
library(tidyverse)
library(corrplot)
library(leaps)
library(broom)
library(GGally)Deskripsi Data dan Penentuan Variabel
# Lihat struktur
str(data_project)
## tibble [75 × 7] (S3: tbl_df/tbl/data.frame)
## $ NO : num [1:75] 1 2 3 4 5 6 7 8 9 10 ...
## $ Exam_Score_Y : num [1:75] 67 61 74 71 70 71 67 66 69 72 ...
## $ Hours_Studied_X1 : num [1:75] 23 19 24 29 19 19 29 25 17 23 ...
## $ Previous_Scores_X2 : num [1:75] 73 59 91 98 65 89 68 50 80 71 ...
## $ Attendance_X3 : num [1:75] 84 64 98 89 92 88 84 78 94 98 ...
## $ Sleep_Hours_X4 : num [1:75] 7 8 7 8 6 8 7 6 6 8 ...
## $ Physical_Activity_X5: num [1:75] 3 4 4 4 4 3 2 2 1 5 ...
# Variabel
Y = data_project$Exam_Score_Y
X1 = data_project$Hours_Studied_X1
X2 = data_project$Previous_Scores_X2
X3 = data_project$Attendance_X3
X4 = data_project$Sleep_Hours_X4
X5 = data_project$Physical_Activity_X5Data yang digunakan terdiri dari 75 observasi dengan 6 variabel yaitu:
Y (Exam_Score_Y) : Nilai ujian (variabel respon)
X1 (Hours_Studied_X1) : Jam belajar
X2 (Previous_Scores_X2) : Nilai sebelumnya
X3 (Attendance_X3) : Kehadiran
X4 (Sleep_Hours_X4) : Jam tidur
X5 (Physical_Activity_X5) : Aktivitas fisik
Variabel-variabel ini dipilih karena secara teoritis berpengaruh terhadap prestasi akademik mahasiswa/siswa. Nilai ujian dijadikan sebagai variabel terikat (dependent), sedangkan lima variabel lainnya sebagai variabel bebas (independent).
Cek data hilang
# Cek missing values
colSums(is.na(data_project))
## NO Exam_Score_Y Hours_Studied_X1
## 0 0 0
## Previous_Scores_X2 Attendance_X3 Sleep_Hours_X4
## 0 0 0
## Physical_Activity_X5
## 0Tidak terdapat data yang hilang, sehingga data layak langsung digunakan untuk analisis regresi tanpa perlu imputasi atau penghapusan observasi.
Nilai ujian sebagian besar berada di rentang 64-70.
Distribusi terlihat cukup simetris, tidak terlalu miring ke kiri atau kanan.
Frekuensi tertinggi muncul di sekitar 66-68, berarti itu nilai yang paling sering muncul di data.
Hampir tidak ada nilai ekstrem (outlier), karena tepi kiri (60-62) dan tepi kanan (72-74) frekuensinya sangat kecil.
Buat model awal
# Buat model
model <- lm(Y ~ X1 + X2 + X3 + X4 + X5, data = data_project)
summary(model)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4 + X5, data = data_project)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.6613 -1.0580 0.0291 1.0628 2.5392
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 42.647819 1.888639 22.581 < 2e-16 ***
## X1 0.231624 0.031877 7.266 4.37e-10 ***
## X2 0.047390 0.011208 4.228 7.10e-05 ***
## X3 0.198521 0.014422 13.765 < 2e-16 ***
## X4 0.006374 0.130679 0.049 0.961
## X5 0.087797 0.189311 0.464 0.644
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.474 on 69 degrees of freedom
## Multiple R-squared: 0.7899, Adjusted R-squared: 0.7747
## F-statistic: 51.88 on 5 and 69 DF, p-value: < 2.2e-16hitung VIF
## Variabel_X Nilai_VIF
## X1 Hours Studied 1.132066
## X2 Previous Scores 1.027922
## X3 Attendance 1.014892
## X4 Sleep Hours 1.136616
## X5 Physical Activity 1.165192Semua nilai VIF berada di sekitar 1.01-1.16.
Nilai VIF < 10 : tidak ada masalah multikolinearitas antar variabel.
Bahkan VIF < 2 : hubungan antar variabel sangat rendah, sehingga model regresi aman dipakai tanpa perlu menghapus atau menggabungkan variabel.
Uji homoskedastisitas bertujuan untuk mengetahui apakah varians residual (error) konstan pada seluruh nilai prediksi (fitted values). Perintah plot(model, which = 1) digunakan untuk,
Sumbu X : Nilai prediksi (Fitted Values)
Sumbu Y : Residual
Garis merah (loess line) untuk melihat pola
Titik-titik residual sebagai penyebaran error
Berdasarkan grafik Residuals vs Fitted, terlihat bahwa titik-titik residual menyebar secara acak di sekitar garis nol dan tidak membentuk pola tertentu seperti kipas atau gelombang. Hal ini menunjukkan bahwa varians residual bersifat konstan, sehingga dapat disimpulkan bahwa asumsi homoskedastisitas terpenuhi. Dengan demikian, model regresi yang digunakan layak untuk dilakukan pengujian statistik lanjutan seperti uji t dan uji F.
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 3.1936, df = 5, p-value = 0.6702
Uji Breusch-Pagan digunakan untuk menguji apakah terjadi heteroskedastisitas pada model regresi, yaitu kondisi ketika varians residual tidak konstan. Uji ini bersifat statistik dan digunakan untuk memperkuat hasil uji visual Residuals vs Fitte. Asumsi yang diuji,
H0 (Hipotesis nol): Tidak terjadi heteroskedastisitas (homoskedastisitas terpenuhi)
H1 (Hipotesis alternatif): Terjadi heteroskedastisitas
Berdasarkan hasil Uji Breusch-Pagan diperoleh nilai BP sebesar 3,1936 dengan p-value sebesar 0,6702. Karena nilai p-value lebih besar dari taraf signifikan 0,05, maka keputusan yang diambil adalah gagal menolak H0. Dengan demikian dapat disimpulkan bahwa tidak terjadi heteroskedastisitas dalam model regresi, sehingga asumsi homoskedastisitas telah terpenuhi.
Uji normalitas residual bertujuan untuk mengetahui apakah residual (error) dalam model regresi berdistribusi normal. Hipotesis,
H0: Residual berdistribusi normal
H1: Residual tidak berdistribusi normal
Berdasarkan grafik Q-Q Plot residual, terlihat bahwa sebagian besar titik menyebar mengikuti garis diagonal normal. Hal ini menunjukkan bahwa residual dalam model regresi berdistribusi mendekati distribusi normal. Meskipun terdapat beberapa titik yang sedikit menyimpang pada bagian ekor distribusi, penyimpangan tersebut tidak bersifat ekstrem. Dengan demikian, asumsi normalitas residual pada model regresi dapat dinyatakan terpenuhi.
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.98291, p-value = 0.4077
Uji Shapiro-Wilk digunakan untuk menguji apakah residual model regresi berdistribusi normal secara statistik. Uji ini berfungsi sebagai penguat uji visual (Q-Q Plot) yang telah dilakukan sebelumnya. Hipotesis yang digunakan,
H0: Residual berdistribusi normal
H1: Residual tidak berdistribusi normal
Berdasarkan hasil uji Shapiro-Wilk terhadap residual model regresi diperoleh nilai statistik W sebesar 0,98291 dengan p-value sebesar 0,4077. Karena nilai p-value lebih besar dari taraf signifikan 0,05, maka keputusan yang diambil adalah gagal menolak H0. Dengan demikian, dapat disimpulkan bahwa residual model regresi berdistribusi normal, sehingga asumsi normalitas terpenuhi.
##
## Durbin-Watson test
##
## data: model
## DW = 2.5739, p-value = 0.994
## alternative hypothesis: true autocorrelation is greater than 0
Uji Durbin-Watson (DW) digunakan untuk mengetahui apakah terdapat autokorelasi pada residual model regresi, khususnya autokorelasi positif. Hipotesis yang digunakan,
H0: Tidak terjadi autokorelasi
H1: Terjadi autokorelasi (positif)
Berdasarkan hasil uji Durbin-Watson diperoleh nilai statistik DW sebesar 2,5739 dengan p-value sebesar 0,994. Karena nilai p-value lebih besar dari taraf signifikan 0,05, maka keputusan yang diambil adalah gagal menolak H0. Dengan demikian, dapat disimpulkan bahwa tidak terdapat autokorelasi pada residual model regresi, sehingga asumsi independensi residual telah terpenuhi.
Seleksi model dilakukan untuk menentukan kombinasi variabel bebas (X1-X5) yang paling signifikan memengaruhi variabel respon Y.
Seleksi model regresi dilakukan menggunakan metode backward elimination berdasarkan AIC. Dimulai dari model penuh dengan semua variabel bebas (X1-X5), variabel X4 (Sleep Hours) dan X5 (Physical Activity) secara berturut-turut dihapus karena tidak menurunkan AIC. Model akhir yang terpilih adalah Y ~ X1 + X2 + X3, yang menunjukkan bahwa jam belajar, nilai sebelumnya, dan kehadiran secara signifikan memengaruhi nilai ujian, sementara variabel lain tidak memberikan kontribusi signifikan terhadap prediksi.
model_forward <- step(lm(Y ~ X1 + X2 + X3 + X4 + X5), direction = "forward")
## Start: AIC=63.97
## Y ~ X1 + X2 + X3 + X4 + X5
Forward selection digunakan untuk memilih variabel prediktor terbaik dalam model regresi. Proses ini dimulai dari model kosong (tanpa variabel), kemudian variabel dimasukkan satu per satu berdasarkan kemampuannya menurunkan nilai AIC (Akaike Information Criterion). Variabel hanya dipertahankan jika kehadirannya membuat model menjadi lebih efisien menurut AIC. Model yang dimasukkan ke fungsi step() sudah merupakan model penuh, yaitu model yang langsung memuat semua variabel X1 sampai X5. arena forward selection bekerja dengan cara menambah variabel dari model kosong, maka proses ini tidak dapat dilakukan. Akibatnya, fungsi step() hanya menampilkan Start: AIC=63.97 dengan modelnya Y ~ X1 + X2 + X3 + X4 + X5. Jadi tidak ada variabel yang ditambahkan maupun dihapus, karena semua variabel sudah ada sejak awal.
Dari output tersebut dapat dijelaskan bahwa: AIC awal model penuh = 63.97 Ini adalah nilai AIC dari model yang memuat X1-X5 secara lengkap. Karena model sudah berisi seluruh variabel, metode forward selection tidak dapat menambahkan variabel baru. Oleh karena itu, model penuh otomatis dianggap sebagai model terbaik dalam proses forward. Dengan demikian, model akhir forward selection adalah Y ~ X1 + X2 + X3 + X4 + X5. Forward selection tidak menemukan model lain yang lebih efisien karena prosesnya tidak pernah berjalan dari model kosong.
# Hitung AIC model forward
n = 75
JKG = 150
k = 6
aic_modelf <- n * log(JKG / n) + 2 * k
cat("Nilai AIC Model penuh", aic_modelf)
## Nilai AIC Model penuh 63.98604
bic_modelf <- n * log(JKG / n) + k * log(n)
cat("Nilai AIC Model penuh", bic_modelf)
## Nilai AIC Model penuh 77.89097
Perhitungan manual yang dilakukan memberikan hasil AIC model forward 63.99, BIC model forward77.89. Nilai-nilai ini didasarkan pada jumlah sampel n sebesar 75, jumlah parameter k adala 6, dan jumlah kuadrat galat JKG sebesar 150. AIC mengukur efisiensi model berdasarkan keseimbangan antara: ketepatan model (melalui JKG), dan jumlah parameter yang digunakan. BIC memberikan penalti lebih besar untuk jumlah variabel.
Dimulai dari model penuh (all predictors), menghapus variabel satu per satu berdasarkan AIC (Akaike Information Criterion)
# LANGKAH 4: LAKUKAN SELEKSI MODEL
model_kosong <- lm(Y~1, data = data_project)
model_backward <- step(lm(Y ~ X1 + X2 + X3 + X4 + X5), direction = "backward")
## Start: AIC=63.97
## Y ~ X1 + X2 + X3 + X4 + X5
##
## Df Sum of Sq RSS AIC
## - X4 1 0.01 149.98 61.976
## - X5 1 0.47 150.44 62.207
## <none> 149.97 63.973
## - X2 1 38.86 188.83 79.253
## - X1 1 114.76 264.73 104.593
## - X3 1 411.86 561.83 161.029
##
## Step: AIC=61.98
## Y ~ X1 + X2 + X3 + X5
##
## Df Sum of Sq RSS AIC
## - X5 1 0.52 150.50 60.234
## <none> 149.98 61.976
## - X2 1 39.76 189.74 77.613
## - X1 1 118.39 268.37 103.616
## - X3 1 412.66 562.64 159.136
##
## Step: AIC=60.23
## Y ~ X1 + X2 + X3
##
## Df Sum of Sq RSS AIC
## <none> 150.50 60.234
## - X2 1 39.35 189.85 75.655
## - X1 1 123.78 274.28 103.249
## - X3 1 418.41 568.91 157.967
Model awal Y ~ X1 + X2 + X3 + X4 + X5 (AIC = 63.97). Penghapusan kandidat pertama,
X4 : menurunkan AIC menjadi 61.976 maka dihapus
X5 : tidak sebaik X4
Model sementara: Y ~ X1 + X2 + X3 + X5 (AIC = 61.98)
Model sementara: Y ~ X1 + X2 + X3 + X5
Model sementara: Y ~ X1 + X2 + X3 (AIC = 60.23)
Model sementara: Y ~ X1 + X2 + X3
Model final terpilih yaitu Y : X1 + X2 + X3
Seleksi model regresi dilakukan menggunakan metode backward elimination berdasarkan AIC. Dimulai dari model penuh dengan semua variabel bebas (X1-X5), variabel X4 (Sleep Hours) dan X5 (Physical Activity) secara berturut-turut dihapus karena tidak menurunkan AIC. Model akhir yang terpilih adalah Y ~ X1 + X2 + X3, yang menunjukkan bahwa jam belajar, nilai sebelumnya, dan kehadiran secara signifikan memengaruhi nilai ujian, sementara variabel lain tidak memberikan kontribusi signifikan terhadap prediksi.
Stepwise
model_stepwise <- stepAIC(lm(Y ~ X1 + X2 + X3 + X4 + X5), direction = "both")
## Start: AIC=63.97
## Y ~ X1 + X2 + X3 + X4 + X5
##
## Df Sum of Sq RSS AIC
## - X4 1 0.01 149.98 61.976
## - X5 1 0.47 150.44 62.207
## <none> 149.97 63.973
## - X2 1 38.86 188.83 79.253
## - X1 1 114.76 264.73 104.593
## - X3 1 411.86 561.83 161.029
##
## Step: AIC=61.98
## Y ~ X1 + X2 + X3 + X5
##
## Df Sum of Sq RSS AIC
## - X5 1 0.52 150.50 60.234
## <none> 149.98 61.976
## + X4 1 0.01 149.97 63.973
## - X2 1 39.76 189.74 77.613
## - X1 1 118.39 268.37 103.616
## - X3 1 412.66 562.64 159.136
##
## Step: AIC=60.23
## Y ~ X1 + X2 + X3
##
## Df Sum of Sq RSS AIC
## <none> 150.50 60.234
## + X5 1 0.52 149.98 61.976
## + X4 1 0.06 150.44 62.207
## - X2 1 39.35 189.85 75.655
## - X1 1 123.78 274.28 103.249
## - X3 1 418.41 568.91 157.967Langkah 0
Pemilihan model menggunakan fungsi stepAIC() R gmenggunakan ukuran AIC (Akaike Information Criterion). Dengan nilai AIC sebesar 63.97. Gunakan model yaitu Y ~ X1 + X2 + X3 + X4 + X5 penuh untuk langkah pertama, setelahnya tentukan variabel mana yang dapat dihapus untuk mengurangi AIC.
Pada langkah ini, sistem dari R akan melihat perubahan nilai AIC jika salah satu variabel dihapus yang ditandai dengan (-) atau jika semua variabel di pertahankan dengan notasi (none). Yang berarti pada iterasi pertama ini menggunakan fase backward. Dengan keputusan yang diambil program sebagai model terbaik pada tahap ini yaitu dengan menghapus X4 menghasilkan AIC = 61.976. Maka model baru yang terpilih Y ~ X1 + X2 + X3 + X5.
Langkah selanjutnya akan dilakukan penghapusan pada variabel yang tersisa (fase backward) dari model yang terpilih dilangkah sebelumnya dan penambahan variabel yang sebelumnya sudah dihapus (fase forward) serta mempertahankan model saat ini tanpa melakukan penambahan dan pengurangan variabel. Sistem mengambil keputusan dengan menghapus X5 karna menghasilkan nilai AIC terkecil dari model sebelumnya dengan AIC = 60.23, maka dihasilkan model terbaik yang terpilih yaitu Y ~ X1 + X2 + X3.
Sistem melakukan pemeriksaan dengan menghapus variabel yang ada (fase backward) yaitu variabel X1, X2, dan X3. Serta menambahkan (fase forward) dengan variabel yang sebelumnya dihapus. Dan mempertahankan model saat ini. Nilai terkecil tetap berada pada mosel sebelumnya yaitu Y ~ X1 + X2 + X3 dengan AIC sebesar 60.23. Dengan ini sistem berhenti karna model terbaik sudah didapatkan.
## Model Adj_R2 AIC BIC
## 1 Model Penuh 0.7746639 63.98604 77.89097
## 2 Model Terbaik (Backward) 0.7802479 60.23562 69.50558
## 3 Model Terbaik (Forward) 0.7746639 63.98604 77.89097
## 4 Model Terbaik (Stepwise) 0.7802479 60.23562 69.50558
Dari tabel perbandingan yang sudah dibuat nilai AIC dan BIC terkecil disertai nilai adjR^2 terbesar ada pada model terpilih dari metode backward dan stepwise dengan model Y ~ X1 + X2 + X3. Ini berarti ketiga prediktor Hours_Studied_X1, Previous_Scores_X2, dan Attendance_X3 sudah cukup untuk bisa menjelaskan variasi pada variabel respon Y, semesntara dua prediktor Sleep_Hours_X4, dan Physical_Activity_X5, tidak memberikan kontribusi signifikan untuk meningkatkan kualitas model.
# Model terpilih
model_terpilih <- lm(Y ~ X1 + X2 + X3, data = data_project)
summary(model_terpilih)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data_project)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.6932 -0.9840 0.0188 1.1426 2.5859
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 43.02359 1.53766 27.980 < 2e-16 ***
## X1 0.22705 0.02971 7.642 7.71e-11 ***
## X2 0.04713 0.01094 4.309 5.19e-05 ***
## X3 0.19910 0.01417 14.050 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.456 on 71 degrees of freedom
## Multiple R-squared: 0.7892, Adjusted R-squared: 0.7802
## F-statistic: 88.58 on 3 and 71 DF, p-value: < 2.2e-16
Model terpilih membemtuk model regresi Y ^= 43.0236 + 0.2271(X1) + 0.0471(X2) + 0.1991(X3) Ketika X1, X2, X3 bernilai nol maka nilai y prediksi sebesar 43.0236. Setiap kenaikan satu unit pada X1 akan meningkatkan Y sebesar 0.2271 unit, dengan asumsi X2 dan X3 tetap. Ketika X2 mengalami keaikan satu unit maka akan meningkatkan Y sebesar 0.0471 unit, dengan asumsi X1 dan X3 tetap. Tiap kenaikan satu unit pada X3 akan meningkatkan Y sebesar 0.1991 unit, dengan asumsi X1 dan X2 tetap. Nilai R-squared yang dihasilkan model twepilh sekitar 78.92% dari total variasi pada Y yang dapat dijelaskan oleh variasi pada prediktor terpilih secara bersamaan. Nilai R-squared yang cukup tinggi menyataka model memiliki kecocokan yang baik terhadap data yang dianalisis.
Model regresi linear dari model terpilih memenuhi semua asumsi (linearitas, homoskedastisitas, dan normalitas sisaan) dengan baik yang dijelaskan melalui keempat plot diagnostik.
## X1 X2 X3
## 1.008524 1.003789 1.004853
Dari hasil uji VIF semua nilai VIF dari semua prediktor model terpilih hampir mendekati satu artinya variabel-variabel tersebut independen satu sama lain, dan menunjukan sama sekali tidak ada korelasi dengan prediktor lain dalam model.
Nilai aktual ada di sekitar garis prediksi, menyatakan model terpilih memiliki kemampuan prediksi yang kuat asumsi ini didukung juga dengan nilai R-Square yang tinggi. Jadi dari semua analsis yang dilakukan pada model terpilih menunjukkan model terpilih adalah model terbaik yang dapat digunakan, variabel prediktor Hours_Studied_X1, Previous_Scores_X2, Attendance_X3 berpengaru terhadap Exam_Score_Y dan dapat menjelaskan Y dengan sangat baik.
Berdasarkan analisis regresi linear berganda terhadap data Student Performance Factors dengan variabel dependen Nilai Ujian (Exam_Score, Y) dan variabel independen Jam Belajar (X1), Nilai Sebelumnya (X2), Kehadiran (X3), Jam Tidur (X4), dan Aktivitas Fisik (X5), serta melalui tahapan seleksi model, maka diperoleh kesimpulan sebagai berikut:
Model regresi yang optimal, yang diperoleh melalui metode seleksi Backward dan Stepwise berdasarkan nilai AIC/BIC terendah, adalah model yang hanya melibatkan tiga prediktor: Jam Belajar (X1), Nilai Sebelumnya (X2), dan Kehadiran (X3). Variabel Jam Tidur (X4) dan Aktivitas Fisik (X5) tidak memberikan kontribusi yang signifikan secara statistik terhadap kualitas model.
Arah hubungan ketiga variabel terpilih (X1, X2, X3) terhadap Nilai Ujian (Y) adalah positif. Hal ini ditunjukkan oleh koefisien regresi yang positif, yaitu Y = 43,0236 + 0,2271 (X1) + 0,0471(X2) + 0,1991(X3)
Besarnya Pengaruh dari masing-masing variabel secara parsial (dengan asumsi variabel lain konstan) adalah:
Setiap kenaikan 1 unit Jam Belajar (X1) akan meningkatkan Nilai Ujian sebesar 0.2271 unit.
Setiap kenaikan 1 unit Nilai Sebelumnya (X2) akan meningkatkan Nilai Ujian sebesar 0.0471 unit.
Setiap kenaikan 1 unit Kehadiran (X3) akan meningkatkan Nilai Ujian sebesar 0.1991 unit.
Model regresi yang paling tepat dan efisien untuk menjelaskan hubungan antara variabel independen dan dependen adalah Y = 43,0236 +0,2271 (X1) + 0,0471(X2) + 0,1991(X3)
Model ini memiliki Koefisien Determinasi Terkoreksi (Adj R Kuadrat) sebesar 78.92%, yang menunjukkan bahwa 78.92% variasi dalam Nilai Ujian dapat dijelaskan secara simultan oleh variasi Jam Belajar, Nilai Sebelumnya, dan Kehadiran. Sementara sisanya (sekitar 21.08%) dijelaskan oleh faktor lain di luar model.
Model terpilih ini juga memiliki nilai AIC terkecil (60.23) dan BIC terkecil (67.48) dibandingkan model penuh dan model Forward, yang mengindikasikan model ini adalah yang paling parsimoni (sederhana) dan paling baik.
Model regresi terpilih telah memenuhi semua asumsi klasik yang diperlukan, yaitu tidak ada Multikolinearitas (nilai VIF semua prediktor mendekati 1), Homoskedastisitas terpenuhi (p-value Uji Breusch-Pagan = 0.6702 > 0.05), Normalitas Residual terpenuhi (p-value Uji Shapiro-Wilk = 0.4077 > 0.05), tidak ada Autokorelasi (p-value Uji Durbin-Watson = 0.994 > 0.05).
Dengan demikian, model regresi yang dihasilkan adalah BLUE (Best Linear Unbiased Estimator) dan dapat memberikan gambaran yang valid serta kuat tentang faktor-faktor yang memengaruhi nilai ujian.
Berdasarkan temuan bahwa Jam Belajar (X1), Nilai Sebelumnya (X2), dan Kehadiran (X3) adalah prediktor yang signifikan terhadap Nilai Ujian (Y), maka disarankan untuk Prioritaskan peningkatan kualitas dan kuantitas Jam Belajar serta menjaga Tingkat Kehadiran karena kedua faktor ini terbukti paling berpengaruh positif terhadap pencapaian nilai ujian.
[1] Astuti, N. P., & Kartika, R. (2022). Pengaruh fasilitas belajar, motivasi, manajemen waktu, dan lingkungan keluarga terhadap prestasi belajar siswa. Jurnal Pendidikan dan Pembelajaran, 9(3).
[2] Anjani, E. T. (2023). Pengaruh manajemen waktu belajar dalam peningkatan kedisiplinan dan prestasi pada siswa SMA/SMK. Karimah Tauhid, 2(5).
[3] Fepriyanto, T., Wahyudi, A., & Kurniawan, R. (2022). Hubungan aktivitas fisik terhadap kebugaran jasmani dan prestasi akademik mahasiswa STKIP PGRI Sumenep. Jurnal Sains Keolahragaan dan Kesehatan, 6(2).
[4] Suwandaru, B., & Hidayat, R. (2022). Hubungan aktivitas fisik dengan prestasi belajar siswa SMK Negeri 1 Surabaya. Jurnal Pendidikan Jasmani, Olahraga, dan Kesehatan, 10(1).
[5] Douglas, C., & Montgomery, E. (2012). Introduction to Linear Regression Analysis FIFTH EDITION. WILEY A JOHN WILEY & SONS, INC., PUBLICATION.
[6] Nuzwan Sudariana, M. d. (2022). ANALISIS STATISTIK REGRESI LINIER BERGANDA. Seniman Transactions on Management and Business.
[7] Purnomo, R. A. (2016). Analisis Statistik Ekonomi dan Bisnis. Ponorogo: CV. WADE GROUP : CV. WADE GROUP.
[8] Nisfiannoor, M. (2009). Pendekatan Statistika Modern untuk Ilmu Sosial. JAKARTA: Salemba.
[9] Vikaliana, R. (2022). RAGAM PENELITIAN DENGAN SPSS. Sukoharjo: Tahta Media Group.
[10] Arnas, Y. S. (2023). The Effect of Work Discipline and Work Environment on Employee Performance at PT Axia Multi Sarana Kota Jakarta Selatan. Arnas, Y., Susbiyantoro, S., & Harsono, Y. (2023). The Effect of Work Discipline and Work Environment on Employee Performance at International Journal of Economics, Business and Accounting Research (IJEBAR), 7(1).
[11] Qudratullah, M. F. (2013). Analisis Regresi Terapan : Teori, Contoh Kasus dan Aplikasi Dengan SPSS. Yogyakarta: Penerbit Andi.
[12] Yiniarto, R. K. (2016 ). ANALISIS REGRESI. Indonesia Kencana Prenada Media