Nama Vallerry Sectio Alberta Pangaribuan
NIM 24050123140165
Mata Kuliah Komputasi Statistika Lanjutan
Program Studi Statistika
Universitas Universitas Diponegoro
Hari, Tanggal Sabtu, 7 Maret 2026

1 Pendahuluan

1.1 Latar Belakang

Pendidikan merupakan salah satu faktor penting dalam meningkatkan kualitas sumber daya manusia. Dalam proses pembelajaran, performa akademik siswa sering kali dipengaruhi oleh berbagai faktor yang berkaitan dengan kebiasaan belajar maupun kondisi individu. Oleh karena itu, penting untuk memahami faktor-faktor yang dapat mempengaruhi tingkat keberhasilan akademik seorang siswa.

Beberapa faktor yang diduga berpengaruh terhadap performa akademik antara lain jumlah waktu belajar, nilai akademik sebelumnya, waktu tidur, serta intensitas latihan melalui pengerjaan soal. Waktu belajar yang lebih lama dapat memberikan kesempatan bagi siswa untuk memahami materi secara lebih mendalam. Selain itu, nilai akademik sebelumnya juga dapat menjadi indikator kemampuan dasar siswa dalam memahami materi pelajaran. Waktu tidur yang cukup berperan dalam menjaga kondisi fisik dan konsentrasi siswa selama proses belajar. Sementara itu, latihan melalui pengerjaan soal latihan dapat membantu siswa meningkatkan pemahaman konsep serta kemampuan menyelesaikan masalah.

Dengan memanfaatkan data yang berkaitan dengan faktor-faktor tersebut, analisis statistik dapat digunakan untuk mengetahui hubungan antara variabel-variabel tersebut terhadap performa akademik siswa. Salah satu metode statistik yang dapat digunakan adalah regresi linear berganda, yang memungkinkan peneliti untuk menganalisis pengaruh beberapa variabel independen secara simultan terhadap satu variabel dependen.

Oleh karena itu, penelitian ini dilakukan untuk menganalisis pengaruh Hours Studied, Previous Scores, Sleep Hours, dan Sample Question Papers Practiced terhadap Performance Index menggunakan metode regresi linear berganda.

1.2 Rumusan Masalah

Berdasarkan latar belakang yang telah dijelaskan, maka rumusan masalah dalam penelitian ini adalah sebagai berikut.

  1. Bagaimana karakteristik data dari variabel Hours Studied, Previous Scores, Sleep Hours, Sample Question Papers Practiced, dan Performance Index?

  2. Bagaimana pengaruh variabel Hours Studied, Previous Scores, Sleep Hours, dan Sample Question Papers Practiced terhadap Performance Index secara simultan?

  3. Bagaimana pengaruh masing-masing variabel independen terhadap Performance Index secara parsial?

  4. Apakah model regresi linear berganda yang terbentuk memenuhi asumsi klasik regresi?

1.3 Tujuan Penelitian

Tujuan dari penelitian ini adalah sebagai berikut: Mendeskripsikan karakteristik data dari variabel yang digunakan dalam penelitian. Menganalisis pengaruh variabel Hours Studied, Previous Scores, Sleep Hours, dan Sample Question Papers Practiced terhadap Performance Index secara simultan menggunakan regresi linear berganda. Menganalisis pengaruh masing-masing variabel independen terhadap Performance Index secara parsial. Mengevaluasi apakah model regresi yang dihasilkan memenuhi asumsi klasik regresi linear berganda.

2 Landasan Teori

2.1 Dataset Performance Index

Dataset yang digunakan dalam penelitian ini merupakan data yang berkaitan dengan faktor-faktor yang mempengaruhi performa akademik siswa. Dataset bersumber dari kaggle.com ini terdiri dari beberapa variabel yang merepresentasikan kebiasaan belajar serta kondisi siswa yang diduga mempengaruhi hasil belajar. Variabel yang digunakan dalam dataset ini meliputi:

  1. Hours Studied (X1)
    Variabel ini menunjukkan jumlah waktu yang dihabiskan siswa untuk belajar. Waktu belajar yang lebih banyak umumnya diasumsikan dapat meningkatkan pemahaman terhadap materi pembelajaran.

  2. Previous Scores (X2)
    Variabel ini menunjukkan nilai akademik siswa sebelumnya. Nilai sebelumnya dapat menggambarkan kemampuan dasar siswa dalam memahami materi pembelajaran.

  3. Sleep Hours (X3)
    Variabel ini menunjukkan jumlah waktu tidur siswa. Waktu tidur yang cukup sangat penting untuk menjaga konsentrasi, kesehatan, serta kemampuan kognitif siswa.

  4. Sample Question Papers Practiced (X4)
    Variabel ini menunjukkan jumlah latihan soal yang dikerjakan oleh siswa. Latihan soal dapat meningkatkan kemampuan siswa dalam memahami konsep dan menyelesaikan permasalahan akademik.

  5. Performance Index (Y)
    Variabel ini merupakan variabel dependen yang menggambarkan tingkat performa akademik siswa secara keseluruhan. Dataset ini digunakan untuk menganalisis hubungan antara kebiasaan belajar dan performa akademik menggunakan pendekatan statistik.

2.2 Metode Regresi Linear Berganda

Metode analisis yang digunakan dalam penelitian ini adalah regresi linear berganda. Regresi linear berganda merupakan metode statistik yang digunakan untuk menganalisis hubungan antara satu variabel dependen dengan dua atau lebih variabel independen. Secara umum, model regresi linear berganda dapat dinyatakan dalam bentuk persamaan sebagai berikut.

\[ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \beta_3X_3 + \beta_4X_4 + \varepsilon \]

\(Y\) Performance Index (Variabel Dependen)
\(X_1\) Hours Studied (Variabel Independen)
\(X_2\) Previous Scores (Variabel Independen)
\(X_3\) Sleep Hours (Variabel Independen)
\(X_4\) Sample Question Papers Practiced (Variabel Independen)
\(\beta_0\) Konstanta
\(\beta_1\), \(\beta_2\), \(\beta_3\), \(\beta_4\) Koefisien Regresi
\(\varepsilon\) error

3 Persiapan Package

Pada tahap ini dilakukan persiapan package yang diperlukan untuk proses analisis data. Package yang digunakan dalam penelitian ini antara lain openxlsx dan lmtest.

  • Package openxlsx digunakan untuk membaca dan mengimpor data dari file Excel ke dalam lingkungan R.

  • Package lmtest digunakan untuk melakukan pengujian statistik pada model regresi, seperti uji heteroskedastisitas dan uji autokorelasi.

Kode program yang digunakan juga dirancang untuk memeriksa apakah package yang diperlukan telah terpasang pada sistem. Jika package belum tersedia, maka sistem secara otomatis akan menginstalnya dari repositori CRAN sebelum digunakan dalam proses analisis. Dengan demikian, proses analisis dapat berjalan tanpa kendala terkait ketersediaan package.

needed_packages <- c("openxlsx", "lmtest")

for (p in needed_packages) {
  if (!require(p, character.only = TRUE)) {
    install.packages(p, repos = "https://cloud.r-project.org")
    library(p, character.only = TRUE)
  }
}

4 Import Data

Pada tahap ini dilakukan proses pengimporan dataset ke dalam lingkungan kerja R. Dataset yang digunakan berisi informasi mengenai faktor-faktor yang diduga mempengaruhi Performance Index siswa.

Data diimpor dari file Excel menggunakan package openxlsx. Setelah data berhasil dimuat, dilakukan beberapa pemeriksaan awal untuk memastikan bahwa data telah terbaca dengan benar oleh sistem.

Langkah pertama adalah menampilkan nama variabel yang terdapat dalam dataset. Hal ini bertujuan untuk memastikan bahwa setiap variabel telah terdeteksi dengan benar oleh R. Variabel yang terdapat dalam dataset ini terdiri dari:

  1. Hours Studied – jumlah jam belajar siswa

  2. Previous Scores – nilai akademik sebelumnya

  3. Sleep Hours – jumlah jam tidur siswa

  4. Sample Question Papers Practiced – jumlah latihan soal yang dikerjakan

  5. Performance Index – indeks performa akademik siswa

setwd("/Users/vallerysectio/Documents/smt 6/RMarkdown1")
data <- openxlsx::read.xlsx("Student_Performance.xlsx", sheet = 1)

# Lihat nama variabel asli
names(data)
## [1] "Hours.Studied"                    "Previous.Scores"                 
## [3] "Sleep.Hours"                      "Sample.Question.Papers.Practiced"
## [5] "Performance.Index"

Selanjutnya dilakukan proses penyesuaian nama variabel agar lebih mudah digunakan dalam pemrograman di R. Penyesuaian ini dilakukan dengan mengganti nama variabel menjadi format huruf kecil dan menggunakan underscore (_), seperti hours_studied, previous_scores, dan seterusnya.

# Ubah nama variabel agar lebih mudah dipanggil di R
names(data) <- c("hours_studied",
                 "previous_scores",
                 "sleep_hours",
                 "sample_papers_practiced",
                 "performance_index")

Untuk memberikan gambaran awal mengenai dataset, ditampilkan beberapa baris pertama dari data menggunakan fungsi head(). Tampilan ini membantu dalam melihat struktur data serta memastikan bahwa nilai-nilai pada setiap variabel telah terbaca dengan benar.

# Tampilkan 6 data pertama
head(data)

Digunakan fungsi str() untuk menampilkan struktur data secara keseluruhan, termasuk jumlah observasi dan tipe data dari masing-masing variabel.

# Struktur data
str(data)
## 'data.frame':    10000 obs. of  5 variables:
##  $ hours_studied          : num  7 4 8 5 7 3 7 8 5 4 ...
##  $ previous_scores        : num  99 82 51 52 75 78 73 45 77 89 ...
##  $ sleep_hours            : num  9 4 7 5 8 9 5 4 8 4 ...
##  $ sample_papers_practiced: num  1 2 2 2 5 6 6 6 2 0 ...
##  $ performance_index      : num  91 65 45 36 66 61 63 42 61 69 ...

Berdasarkan hasil pemeriksaan, dataset ini terdiri dari 10.000 observasi dan 5 variabel numerik yang akan digunakan dalam analisis regresi. Proses pemeriksaan awal ini penting dilakukan sebelum tahap analisis lebih lanjut guna memastikan bahwa dataset telah siap digunakan dalam pemodelan statistik.

5 Statistik Deskriptif

Statistik deskriptif digunakan untuk memberikan gambaran umum mengenai karakteristik data yang digunakan dalam penelitian. Melalui analisis ini dapat diketahui nilai minimum, kuartil pertama, median, rata-rata (mean), kuartil ketiga, serta nilai maksimum dari setiap variabel yang terdapat dalam dataset.

summary(data)
##  hours_studied   previous_scores  sleep_hours    sample_papers_practiced
##  Min.   :1.000   Min.   :40.00   Min.   :4.000   Min.   :0.000          
##  1st Qu.:3.000   1st Qu.:54.00   1st Qu.:5.000   1st Qu.:2.000          
##  Median :5.000   Median :69.00   Median :7.000   Median :5.000          
##  Mean   :4.993   Mean   :69.45   Mean   :6.531   Mean   :4.583          
##  3rd Qu.:7.000   3rd Qu.:85.00   3rd Qu.:8.000   3rd Qu.:7.000          
##  Max.   :9.000   Max.   :99.00   Max.   :9.000   Max.   :9.000          
##  performance_index
##  Min.   : 10.00   
##  1st Qu.: 40.00   
##  Median : 55.00   
##  Mean   : 55.22   
##  3rd Qu.: 71.00   
##  Max.   :100.00

Berdasarkan hasil perhitungan statistik deskriptif, diperoleh informasi sebagai berikut:

  • Variabel hours_studied memiliki nilai minimum sebesar 1 jam dan nilai maksimum sebesar 9 jam, dengan rata-rata sekitar 4,993 jam. Nilai median sebesar 5 jam menunjukkan bahwa sebagian besar siswa belajar sekitar lima jam.

  • Variabel previous_scores memiliki rentang nilai dari 40 hingga 99, dengan rata-rata sebesar 69,45 dan median 69. Hal ini menunjukkan bahwa secara umum nilai akademik sebelumnya berada pada kategori cukup hingga baik.

  • Variabel sleep_hours memiliki nilai minimum 4 jam dan maksimum 9 jam, dengan rata-rata 6,531 jam. Median sebesar 7 jam menunjukkan bahwa sebagian besar siswa memiliki waktu tidur sekitar tujuh jam per hari.

  • Variabel sample_papers_practiced memiliki nilai minimum 0 dan maksimum 9, dengan rata-rata sekitar 4,583 latihan soal. Nilai median sebesar 5 menunjukkan bahwa sebagian besar siswa mengerjakan sekitar lima latihan soal.

  • Sementara itu, variabel performance_index memiliki nilai minimum 10 dan maksimum 100, dengan rata-rata 55,22 dan median 55. Hal ini menunjukkan bahwa secara umum tingkat performa akademik siswa berada pada kisaran nilai menengah.

Analisis statistik deskriptif ini memberikan gambaran awal mengenai distribusi data sebelum dilakukan analisis lebih lanjut menggunakan metode regresi linear berganda.

6 Korelasi Antar Variabel

Analisis korelasi dilakukan untuk mengetahui hubungan linier antar variabel dalam dataset sebelum dilakukan pemodelan regresi. Korelasi membantu mengidentifikasi apakah terdapat hubungan yang kuat atau lemah antara variabel independen maupun antara variabel independen dengan variabel dependen.

Koefisien korelasi yang digunakan dalam analisis ini adalah koefisien korelasi Pearson, yang memiliki nilai antara -1 hingga 1. Nilai korelasi yang mendekati 1 menunjukkan hubungan positif yang kuat, sedangkan nilai yang mendekati -1 menunjukkan hubungan negatif yang kuat. Sementara itu, nilai korelasi yang mendekati 0 menunjukkan hubungan yang lemah atau tidak terdapat hubungan linier.

cor_matrix <- cor(data)
cor_matrix
##                         hours_studied previous_scores sleep_hours
## hours_studied             1.000000000    -0.012389916 0.001245198
## previous_scores          -0.012389916     1.000000000 0.005944219
## sleep_hours               0.001245198     0.005944219 1.000000000
## sample_papers_practiced   0.017463168     0.007888025 0.003990220
## performance_index         0.373730351     0.915189141 0.048105835
##                         sample_papers_practiced performance_index
## hours_studied                       0.017463168        0.37373035
## previous_scores                     0.007888025        0.91518914
## sleep_hours                         0.003990220        0.04810584
## sample_papers_practiced             1.000000000        0.04326833
## performance_index                   0.043268327        1.00000000

Berdasarkan matriks korelasi, hubungan antar variabel independen relatif kecil sehingga indikasi multikolinearitas rendah. Hubungan antara variabel independen dengan performance_index menunjukkan pola yang berbeda. Variabel previous_scores memiliki korelasi positif yang sangat kuat dengan performance_index (r ≈ 0,915). Variabel hours_studied memiliki korelasi positif sedang (r ≈ 0,374). Sementara itu, sleep_hours dan sample_papers_practiced menunjukkan korelasi yang relatif lemah terhadap performance_index.

pairs(data, main = "Scatterplot Matrix Antar Variabel")

Berdasarkan scatterplot matrix, terlihat bahwa variabel previous_scores memiliki hubungan linier positif yang sangat kuat dengan performance_index, yang ditunjukkan oleh pola titik yang membentuk garis diagonal naik. Variabel hours_studied juga menunjukkan hubungan positif terhadap performance_index, meskipun tidak sekuat previous_scores. Sementara itu, variabel sleep_hours dan sample_papers_practiced menunjukkan pola sebaran titik yang lebih acak, yang mengindikasikan hubungan linier yang relatif lemah terhadap performance_index.

7 Pembentukan Model Awal

Persamaan regresi dilihat dari koefisien pembentuk model.

model <- lm(performance_index ~ hours_studied +
                              previous_scores +
                              sleep_hours +
                              sample_papers_practiced,
            data = data)

summary(model)
## 
## Call:
## lm(formula = performance_index ~ hours_studied + previous_scores + 
##     sleep_hours + sample_papers_practiced, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.3299 -1.3831 -0.0062  1.3701  8.4864 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             -33.763726   0.126841 -266.19   <2e-16 ***
## hours_studied             2.853429   0.007962  358.40   <2e-16 ***
## previous_scores           1.018584   0.001189  857.02   <2e-16 ***
## sleep_hours               0.476333   0.012153   39.19   <2e-16 ***
## sample_papers_practiced   0.195198   0.007189   27.15   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.061 on 9995 degrees of freedom
## Multiple R-squared:  0.9885, Adjusted R-squared:  0.9885 
## F-statistic: 2.147e+05 on 4 and 9995 DF,  p-value: < 2.2e-16
coef_model <- coef(model)
coef_model
##             (Intercept)           hours_studied         previous_scores 
##             -33.7637261               2.8534292               1.0185835 
##             sleep_hours sample_papers_practiced 
##               0.4763330               0.1951983

Persamaan regresi berdasarkan hasil estimasi adalah sebagai berikut

\[ \hat{Y} = -33.7637261 + 2.8534292X_1 + 1.0185835X_2 + 0.4763330X_3 + 0.1951983X_4 \]

Koefisien regresi menunjukkan bahwa seluruh variabel independen memiliki pengaruh positif terhadap performance_index. Artinya, peningkatan pada masing-masing variabel tersebut cenderung meningkatkan nilai performance_index.

8 Uji Simultan (Uji F)

Uji simultan (Uji F) digunakan untuk mengetahui apakah seluruh variabel independen secara bersama-sama memiliki pengaruh yang signifikan terhadap variabel dependen performance_index.

Hipotesis yang digunakan adalah sebagai berikut.

  • \(H_0\) : \(\beta_0\) = \(\beta_1\) = \(\beta_2\) = \(\beta_3\) = \(\beta_4\) = 0 (variabel \(X_1\), \(X_2\), \(X_3\), dan \(X_4\) secara simultan tidak berpengaruh signifikan terhadap \(Y\).

  • \(H_1\) : Minimal terdapat satu koefisien regresi yang tidak sama dengan nol (terdapat setidaknya satu variabel independen yang berpengaruh signifikan terhadap\(Y\).

anova(model)

Berdasarkan hasil analisis varians (ANOVA), diperoleh nilai p-value < 2.2 × 10⁻¹⁶, yang jauh lebih kecil dari tingkat signifikansi \(\alpha\) = 0,05

Dengan kriteria penolakan \(H_0\) adalah jika p-value < \(\alpha\) , maka diputuskan bahwa \(H_0\) ditolak.

Kesimpulan: variabel \(X_1\), \(X_2\), \(X_3\), dan \(X_4\) secara simultan berpengaruh signifikan terhadap \(Y\).

9 Uji Parsial (Uji t)

Uji parsial (Uji t) digunakan untuk mengetahui apakah masing-masing variabel independen memiliki pengaruh yang signifikan terhadap variabel dependen performance_index.

Hipotesis yang digunakan adalah sebagai berikut untuk setiap variabel independen.

  • \(H_0\) : \(\beta_i\) = 0 (variabel \(X_i\) tidak berpengaruh signifikan terhadap \(Y\).

  • \(H_1\) : \(\beta_i\) \(\ne\) 0 (variabel \(X_i\) berpengaruh signifikan terhadap\(Y\).

summary(model)$coefficients
##                            Estimate  Std. Error    t value      Pr(>|t|)
## (Intercept)             -33.7637261 0.126841340 -266.18866  0.000000e+00
## hours_studied             2.8534292 0.007961502  358.40339  0.000000e+00
## previous_scores           1.0185835 0.001188517  857.02064  0.000000e+00
## sleep_hours               0.4763330 0.012153428   39.19330 1.127701e-312
## sample_papers_practiced   0.1951983 0.007189218   27.15153 1.069770e-156

Berdasarkan hasil output regresi, diperoleh nilai p-value keempat variabel lebih kecil dari tingkat signifikansi \(\alpha\) = 0,05

Dengan kriteria penolakan \(H_0\) adalah jika p-value < \(\alpha\) , maka diputuskan bahwa \(H_0\) ditolak.

Kesimpulan: Variabel \(X_1\), \(X_2\), \(X_3\), dan \(X_4\) masing-masing berpengaruh signifikan terhadap \(Y\).

10 Koefisien Determinasi

Koefisien determinasi digunakan untuk mengukur seberapa besar kemampuan variabel independen dalam menjelaskan variasi variabel dependen dalam model regresi. Nilai koefisien determinasi yang sangat tinggi ini menunjukkan bahwa model regresi yang dibentuk memiliki kemampuan yang sangat baik dalam menjelaskan hubungan antara variabel independen dan variabel dependen.

model_summary <- summary(model)

model_summary$r.squared
## [1] 0.9884981
model_summary$adj.r.squared
## [1] 0.9884935

Berdasarkan hasil output model regresi diperoleh nilai

  • Multiple R-squared sebesar 0.9885

  • Adjusted R-squared sebesar 0.9885

Kesimpulan: Nilai ini menunjukkan bahwa sekitar 98,85% variasi pada \(Y\) dapat dijelaskan oleh variabel independen \(X_1\), \(X_2\), \(X_3\), dan \(X_4\) dalam model regresi yang digunakan. Sementara itu, sisanya sebesar 1,15% dijelaskan oleh faktor lain di luar model yang tidak dimasukkan dalam penelitian ini.

11 Uji Asumsi Klasik

Uji asumsi klasik dilakukan untuk memastikan bahwa model regresi linear berganda yang diperoleh memenuhi asumsi dasar regresi sehingga estimasi parameter yang dihasilkan bersifat BLUE (Best Linear Unbiased Estimator). Beberapa asumsi yang diuji dalam analisis ini meliputi normalitas residual, multikolinearitas, heteroskedastisitas, autokorelasi, dan linearitas.

11.1 Residual Model

Residual merupakan selisih antara nilai aktual dengan nilai prediksi yang dihasilkan oleh model regresi. Analisis residual dilakukan untuk mengetahui apakah model regresi yang dibentuk telah memenuhi asumsi-asumsi yang diperlukan.

res <- residuals(model)
fit <- fitted(model)

head(res)
##          1          2          3          4          5          6 
## -0.5322439  1.5304306  0.2638044 -0.2418255 -1.3906991  1.2957358

11.2 Uji Normalitas Residual

Uji normalitas residual bertujuan untuk mengetahui apakah residual dari model regresi berdistribusi normal atau tidak.

11.2.1 Uji normalitas menyesuaikan jumlah sampel

n_res <- length(res)

if (n_res >= 3 && n_res <= 5000) {
  shapiro_result <- shapiro.test(res)
  shapiro_result
} else {
  cat("Shapiro-Wilk tidak digunakan karena jumlah residual di luar batas 3 sampai 5000)")
}
## Shapiro-Wilk tidak digunakan karena jumlah residual di luar batas 3 sampai 5000)

Pada penelitian ini jumlah data yang digunakan adalah 10.000 observasi, sehingga uji Shapiro–Wilk tidak digunakan karena metode tersebut hanya direkomendasikan untuk ukuran sampel antara 3 sampai 5000. Oleh karena itu, normalitas residual dievaluasi menggunakan Histogram Residual dan Normal Q-Q Plot.

11.2.2 Histogram Residual

hist(res,
     main = "Histogram Residual",
     xlab = "Residual")

Berdasarkan Histogram Residual, terlihat bahwa distribusi residual membentuk pola yang menyerupai kurva lonceng (bell-shaped curve) yang relatif simetris di sekitar nilai nol. Hal ini menunjukkan bahwa distribusi residual cenderung mendekati distribusi normal.

11.2.3 QQ Plot

qqnorm(res, main = "QQ Plot Residual")
qqline(res, col = "red", lwd = 2)

Pada Normal Q-Q Plot, sebagian besar titik residual berada di sekitar garis diagonal. Hal ini menunjukkan bahwa distribusi residual mengikuti distribusi normal teoritis.

Kesimpulan: Residual dari model regresi berdistribusi normal, sehingga asumsi normalitas pada model regresi telah terpenuhi.

11.3 Uji Multikolinearitas

Uji multikolinearitas bertujuan untuk mengetahui apakah terdapat korelasi yang tinggi antar variabel independen dalam model regresi.

Karena kita ingin meminimalkan package tambahan, nilai VIF dihitung manual.

vif_manual <- function(model_object) {
  x <- model.matrix(model_object)[, -1, drop = FALSE]
  vif_values <- numeric(ncol(x))
  names(vif_values) <- colnames(x)
  
  for (i in seq_len(ncol(x))) {
    y_i <- x[, i]
    x_i <- x[, -i, drop = FALSE]
    aux_model <- lm(y_i ~ x_i)
    r2_i <- summary(aux_model)$r.squared
    vif_values[i] <- 1 / (1 - r2_i)
  }
  
  return(vif_values)
}

vif_manual(model)
##           hours_studied         previous_scores             sleep_hours 
##                1.000464                1.000254                1.000052 
## sample_papers_practiced 
##                1.000386

Kriteria yang digunakan dalam uji multikolinearitas adalah sebagai berikut.

  • Jika VIF \(<\) 10, maka tidak terjadi multikolinearitas.

  • Jika VIF \(\geq\) 10, maka terdapat indikasi multikolinearitas

Dari hasil tersebut terlihat bahwa seluruh variabel independen memiliki nilai VIF yang sangat kecil (berkisar 1.000) dan jauh di bawah 10.

Kesimpulan: Tidak terdapat hubungan linear yang kuat antar variabel independen (tidak terjadi multikolinearitas) sehingga variabel independen dapat digunakan secara bersama-sama dalam model regresi

11.4 Uji Heteroskedastisitas

Uji heteroskedastisitas bertujuan untuk mengetahui apakah terjadi ketidaksamaan varians residual pada model regresi. Model regresi yang baik seharusnya memiliki varians residual yang konstan (homoskedastisitas).

Pada penelitian ini, digunakan Breusch-Pagan Test, dengan hipotesis berikut.

  • \(H_0\) : Tidak terdapat heteroskedastisitas (varians residual konstan).

  • \(H_1\) : Terdapat heteroskedastisitas (varians residual tidak konstan).

lmtest::bptest(model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 1.5045, df = 4, p-value = 0.8258

Berdasarkan hasil output pengujian, diperoleh nilai BP = 1.5045 dengan p-value = 0.8258 lebih besar dari tingkat signifikansi \(\alpha\) = 0,05

Dengan kriteria penolakan \(H_0\) adalah jika p-value < \(\alpha\) , maka diputuskan bahwa \(H_0\) gagal ditolak.

Kesimpulan: Tidak terdapat heteroskedastisitas (varians residual konstan) pada model regresi sehingga asumsi terpenuhi.

11.4.1 Plot Residual vs Fitted

Selain menggunakan Breusch–Pagan Test, heteroskedastisitas juga dapat dievaluasi secara visual melalui plot residual terhadap fitted values. Plot ini digunakan untuk melihat apakah terdapat pola tertentu pada penyebaran residual.

plot(fit, res,
     xlab = "Fitted Values",
     ylab = "Residuals",
     main = "Residuals vs Fitted")
abline(h = 0, col = "red", lwd = 2)

Pada grafik Residuals vs Fitted, titik-titik residual terlihat menyebar secara acak di sekitar garis horizontal pada nilai nol. Selain itu, tidak terlihat pola tertentu seperti pola mengerucut (funnel) atau membentuk pola sistematis. Hal ini menunjukkan bahwa varians residual bersifat konstan (homoskedastisitas).

11.5 Uji Linearitas

Uji linearitas bertujuan untuk mengetahui apakah hubungan antara variabel independen dan variabel dependen dalam model regresi bersifat linear. Salah satu cara untuk mengevaluasi linearitas adalah dengan menggunakan plot residual terhadap fitted values.

plot(fit, res,
     xlab = "Fitted Values",
     ylab = "Residuals",
     main = "Uji Linearitas: Residuals vs Fitted")
abline(h = 0, col = "blue", lwd = 2)

Pada grafik Residuals vs Fitted, titik-titik residual terlihat menyebar secara acak di sekitar garis horizontal pada nilai nol. Selain itu, tidak terlihat pola tertentu seperti pola melengkung (curve) atau pola sistematis lainnya.

Kesimpulan: Hubungan antarvariabel independen dan variabel dependen bersifat linear pada model regresi sehingga asumsi terpenuhi.

12 Model Akhir Regresi

Berdasarkan hasil analisis regresi linear berganda yang dilakukan, diperoleh model regresi akhir sebagai berikut.

summary(model)
## 
## Call:
## lm(formula = performance_index ~ hours_studied + previous_scores + 
##     sleep_hours + sample_papers_practiced, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.3299 -1.3831 -0.0062  1.3701  8.4864 
## 
## Coefficients:
##                           Estimate Std. Error t value Pr(>|t|)    
## (Intercept)             -33.763726   0.126841 -266.19   <2e-16 ***
## hours_studied             2.853429   0.007962  358.40   <2e-16 ***
## previous_scores           1.018584   0.001189  857.02   <2e-16 ***
## sleep_hours               0.476333   0.012153   39.19   <2e-16 ***
## sample_papers_practiced   0.195198   0.007189   27.15   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.061 on 9995 degrees of freedom
## Multiple R-squared:  0.9885, Adjusted R-squared:  0.9885 
## F-statistic: 2.147e+05 on 4 and 9995 DF,  p-value: < 2.2e-16

\[ Y = -33.7637261 + 2.8534292X_1 + 1.0185835X_2 + 0.4763330X_3 + 0.1951983X_4 \]

dengan

\(Y\) Performance Index (Variabel Dependen)
\(X_1\) Hours Studied (Variabel Independen)
\(X_2\) Previous Scores (Variabel Independen)
\(X_3\) Sleep Hours (Variabel Independen)
\(X_4\) Sample Question Papers Practiced (Variabel Independen)

13 Kesimpulan

Berdasarkan hasil analisis regresi linear berganda yang dilakukan terhadap dataset Student Performance, diperoleh beberapa kesimpulan sebagai berikut.

  1. Berdasarkan analisis statistik deskriptif, karakteristik data menunjukkan bahwa variabel Hours Studied memiliki rentang nilai antara 1 hingga 9 jam dengan rata-rata sekitar 4,99 jam. Variabel Previous Scores memiliki rentang nilai antara 40 hingga 99 dengan rata-rata sekitar 69,45. Variabel Sleep Hours berada pada rentang 4 hingga 9 jam dengan rata-rata sekitar 6,53 jam. Variabel Sample Paper Praticed memiliki rentang nilai antara 0 hingga 9 dengan rata-rata sekitar 4,58. Sementara itu, variabel Performance Index memiliki rentang nilai antara 10 hingga 100 dengan rata-rata sekitar 55,22. Hal ini menunjukkan bahwa sebagian besar siswa memiliki tingkat performa akademik pada kategori sedang.

  2. Hasil uji simultan (Uji F) menunjukkan bahwa faktor Hours Studied, Previous Scores, Sleep Hours, dan Sample Papers Practiced secara bersama-sama berpengaruh signifikan terhadap Performance Index.

  3. Berdasarkan uji parsial (Uji t), seluruh faktor Hours Studied, Previous Scores, Sleep Hours, dan Sample Papers Practiced masing-masing memiliki pengaruh signifikan terhadap Performance Index.

  4. Nilai koefisien determinasi (R²) sebesar 0.9885 menunjukkan bahwa sekitar 98.85% variasi pada Performance Index dapat dijelaskan oleh faktor Hours Studied, Previous Scores, Sleep Hours, dan Sample Papers Practiced, sedangkan 1.15% sisanya dipengaruhi oleh faktor lain di luar model penelitian ini.

  5. Berdasarkan hasil uji asumsi klasik, model regresi yang diperoleh telah memenuhi asumsi yang diperlukan, yaitu residual berdistribusi normal, tidak terdapat multikolinearitas antar variabel independen, tidak terdapat heteroskedastisitas, dan hubungan antara variabel independen dan dependen bersifat linear.

  6. Dengan terpenuhinya seluruh asumsi regresi, maka model regresi linear berganda yang diperoleh dapat digunakan untuk menjelaskan hubungan antara faktor-faktor yang mempengaruhi Performance Index pada dataset yang digunakan.

14 Saran

Berdasarkan hasil analisis yang telah dilakukan, beberapa saran yang dapat diberikan adalah sebagai berikut.

  1. Penelitian selanjutnya disarankan untuk mempertimbangkan faktor-faktor lain yang berpotensi mempengaruhi Performance Index, seperti motivasi belajar, lingkungan belajar, serta metode pembelajaran.

  2. Penelitian berikutnya dapat menggunakan dataset yang lebih beragam atau lebih besar agar hasil analisis dapat memberikan gambaran yang lebih luas mengenai faktor-faktor yang mempengaruhi Performance Index.

  3. Hasil penelitian ini dapat menjadi bahan pertimbangan bagi pendidik untuk mendorong kebiasaan belajar yang baik, meningkatkan latihan soal, serta memperhatikan pola istirahat siswa guna meningkatkan performa akademik.

15 Daftar Pustaka

Fox, J., & Weisberg, S. (2019). An R companion to applied regression (3rd ed.). Sage Publications.

James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An introduction to statistical learning: With applications in R (2nd ed.). Springer.

Kutner, M. H., Nachtsheim, C. J., Neter, J., & Li, W. (2005). Applied linear statistical models (5th ed.). McGraw-Hill Irwin.

Montgomery, D. C., Peck, E. A., & Vining, G. G. (2021). Introduction to linear regression analysis (6th ed.). John Wiley & Sons.