Analisis Regresi Linier Berganda: Faktor yang Mempengaruhi Nilai Ujian

Pendahuluan

Analisis regresi linier berganda digunakan untuk mengetahui hubungan antara satu variabel terikat dengan lebih dari satu variabel bebas. Metode ini membantu mengukur seberapa besar pengaruh masing-masing variabel bebas, baik secara parsial maupun simultan, terhadap variabel terikat.

Dalam analisis ini, variabel yang digunakan adalah jam belajar (X1) dan kehadiran (X2) sebagai variabel independen, serta nilai ujian (Y) sebagai variabel dependen. Selain itu, dilakukan estimasi parameter menggunakan metode Ordinary Least Squares (OLS), pengujian hipotesis melalui uji t dan uji F, serta evaluasi kecocokan model menggunakan koefisien determinasi.

Deskripsi Data

# Input data sesuai tabel soal
data <- data.frame(
  No = 1:10,
  Y  = c(65, 70, 75, 80, 85, 78, 72, 90, 88, 95),
  X1 = c(2, 3, 4, 5, 6, 5, 3, 7, 6, 8),
  X2 = c(60, 65, 70, 75, 80, 72, 68, 85, 83, 90)
)
data
##    No  Y X1 X2
## 1   1 65  2 60
## 2   2 70  3 65
## 3   3 75  4 70
## 4   4 80  5 75
## 5   5 85  6 80
## 6   6 78  5 72
## 7   7 72  3 68
## 8   8 90  7 85
## 9   9 88  6 83
## 10 10 95  8 90

Data terdiri dari 10 observasi. Variabel Y menunjukkan nilai ujian, X1 menunjukkan jumlah jam belajar per minggu, dan X2 menunjukkan persentase kehadiran. Secara umum, terlihat bahwa nilai ujian cenderung meningkat seiring dengan meningkatnya jam belajar dan kehadiran.

Estimasi Model Regresi

Estimasi Parameter Secara Manual (OLS)

# Menyiapkan Matriks X (ditambah kolom 1 untuk Intercept) dan Vektor Y
X_mat <- as.matrix(cbind(1, data$X1, data$X2))
Y_mat <- as.matrix(data$Y)

# Menghitung Beta
beta_manual <- solve(t(X_mat) %*% X_mat) %*% t(X_mat) %*% Y_mat
rownames(beta_manual) <- c("Intercept", "Jam_Belajar(X1)", "Kehadiran(X2)")
beta_manual
##                       [,1]
## Intercept       16.1360113
## Jam_Belajar(X1)  1.1698379
## Kehadiran(X2)    0.7744891

Koefisien regresi dihitung menggunakan metode Ordinary Least Squares (OLS) dengan rumus β = (X’X)^(-1)X’Y. Berdasarkan hasil perhitungan, diperoleh persamaan regresi dalam bentuk:

Y = β0 + β1X1 + β2X2

Nilai intercept menunjukkan nilai dasar ketika jam belajar dan kehadiran bernilai nol. Koefisien X1 menunjukkan perubahan nilai ujian untuk setiap tambahan 1 jam belajar, sedangkan koefisien X2 menunjukkan perubahan nilai ujian untuk setiap peningkatan 1 persen kehadiran.

Jika koefisien X1 bernilai positif, maka semakin banyak jam belajar akan meningkatkan nilai ujian. Begitu juga jika koefisien X2 bernilai positif, maka kehadiran memiliki pengaruh positif terhadap nilai ujian.

Uji Hipotesis secara Manual

Uji F dan Uji T

n <- nrow(data)
k <- 3 # Jumlah parameter (b0, b1, b2)
df_res <- n - k

# Prediksi dan Residual
Y_hat <- X_mat %*% beta_manual
res <- Y_mat - Y_hat

# Sum of Squares
SSE <- sum(res^2)
SST <- sum((Y_mat - mean(Y_mat))^2)
SSR <- SST - SSE

# MSE dan Standard Error
MSE <- SSE / df_res
var_beta <- MSE * solve(t(X_mat) %*% X_mat)
se_beta <- sqrt(diag(var_beta))

# Uji t
t_stat <- beta_manual / se_beta
p_val_t <- 2 * (1 - pt(abs(t_stat), df_res))

# Uji F
f_stat <- (SSR / (k - 1)) / (SSE / df_res)
p_val_f <- 1 - pf(f_stat, k - 1, df_res)

cat("F-hitung:", f_stat, "p-value:", p_val_f, "\n")
## F-hitung: 5172.116 p-value: 8.042123e-12
cat("T-hitung per variabel:\n")
## T-hitung per variabel:
print(t_stat)
##                      [,1]
## Intercept        5.688154
## Jam_Belajar(X1)  4.201468
## Kehadiran(X2)   13.900261

Uji t digunakan untuk mengetahui pengaruh masing-masing variabel secara parsial. Jika p-value < 0.05, maka variabel tersebut berpengaruh signifikan terhadap nilai ujian. Sebaliknya, jika p-value > 0.05, maka variabel tidak berpengaruh signifikan.

Uji F digunakan untuk mengetahui pengaruh variabel bebas secara simultan terhadap variabel terikat. Jika p-value uji F lebih kecil dari 0.05, maka model regresi signifikan secara keseluruhan. Artinya, jam belajar dan kehadiran secara bersama-sama mempengaruhi nilai ujian.

Kecocokan Model

R-Squared dan Adjusted R-Squared

r_sq <- SSR / SST
adj_r_sq <- 1 - ((1 - r_sq) * (n - 1) / (n - k))

cat("R-Squared:", r_sq, "\n")
## R-Squared: 0.9993238
cat("Adjusted R-Squared:", adj_r_sq, "\n")
## Adjusted R-Squared: 0.9991305

Nilai R-Squared menunjukkan proporsi variasi nilai ujian yang dapat dijelaskan oleh variabel jam belajar dan kehadiran. Semakin tinggi nilai R-Squared, semakin baik kemampuan model dalam menjelaskan data.

Adjusted R-Squared digunakan untuk menyesuaikan jumlah variabel dalam model. Nilai ini lebih akurat dalam menilai kecocokan model, terutama ketika jumlah variabel lebih dari satu.

Perbandingan dengan fungsi lm()

model_lm <- lm(Y ~ X1 + X2, data = data)
summary(model_lm)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = data)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.31078 -0.14588 -0.05074  0.04440  0.56237 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 16.13601    2.83677   5.688 0.000744 ***
## X1           1.16984    0.27844   4.201 0.004028 ** 
## X2           0.77449    0.05572  13.900 2.36e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2834 on 7 degrees of freedom
## Multiple R-squared:  0.9993, Adjusted R-squared:  0.9991 
## F-statistic:  5172 on 2 and 7 DF,  p-value: 8.042e-12

Output summary(model_lm) memberikan informasi lengkap mengenai model regresi. Koefisien yang dihasilkan menunjukkan arah dan besar pengaruh masing-masing variabel.

Nilai p-value pada masing-masing variabel menunjukkan signifikansi pengaruhnya. Jika p-value kecil dari 0.05, maka variabel tersebut berpengaruh signifikan terhadap nilai ujian.

Nilai R-Squared menunjukkan kemampuan model dalam menjelaskan variasi data. Selain itu, uji F pada output menunjukkan apakah model signifikan secara keseluruhan.

Secara umum, hasil dari fungsi lm() akan sama dengan perhitungan manual menggunakan metode OLS, sehingga dapat digunakan sebagai validasi.

Prediksi

Prediksi nilai ujian jika Jam Belajar (\(X1\)) = 1 jam/minggu dan Kehadiran (\(X2\)) = 100%.

new_data <- data.frame(X1 = 1, X2 = 100)
prediksi <- predict(model_lm, new_data)
prediksi
##        1 
## 94.75476

Hasil prediksi menunjukkan nilai ujian yang diperkirakan ketika seorang siswa hanya belajar 1 jam per minggu namun memiliki kehadiran penuh. Nilai ini diperoleh berdasarkan persamaan regresi yang telah dibangun.

Interpretasi prediksi ini harus dilakukan secara hati-hati, karena nilai X1 dan X2 berada di luar rentang sebagian data, sehingga kemungkinan terjadi ekstrapolasi.

Kesimpulan

Berdasarkan hasil analisis regresi linier berganda, diperoleh bahwa model regresi mampu menjelaskan hubungan antara jam belajar dan kehadiran terhadap nilai ujian.

Secara parsial, masing-masing variabel dapat diuji menggunakan uji t untuk melihat signifikansinya. Secara simultan, uji F menunjukkan bahwa variabel dalam model memiliki pengaruh terhadap nilai ujian.

Nilai koefisien determinasi menunjukkan bahwa sebagian besar variasi nilai ujian dapat dijelaskan oleh model. Hal ini menunjukkan bahwa model memiliki kemampuan yang cukup baik.

Secara keseluruhan, jam belajar dan kehadiran merupakan faktor penting dalam menentukan nilai ujian, dengan kemungkinan salah satu variabel memiliki pengaruh yang lebih dominan dibandingkan yang lain tergantung hasil uji signifikansi.