Seorang peneliti ingin menganalisis faktor-faktor yang mempengaruhi nilai ujian mahasiswa (Y). Diduga bahwa nilai ujian dipengaruhi oleh: X1 = jumlah jam belajar (jam/minggu) X2 = tingkat kehadiran (%) Peneliti mengumpulkan data dari 10 mahasiswa sebagai berikut:
# Input data
data <- data.frame(
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)
)
# Menampilkan data frame
data
## Y X1 X2
## 1 65 2 60
## 2 70 3 65
## 3 75 4 70
## 4 80 5 75
## 5 85 6 80
## 6 78 5 72
## 7 72 3 68
## 8 90 7 85
## 9 88 6 83
## 10 95 8 90
Data tersebut berisi tiga variabel yaitu nilai ujian mahasiswa (Y), jumlah jam belajar (X1), dan tingkat kehadiran (X2). Data ini digunakan untuk menganalisis hubungan antara variabel independen terhadap variabel dependen menggunakan regresi linier berganda.
PERTANYAAN
Model regresi linier yang digunakan adalah sebagai berikut:
\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \epsilon \]
Di mana:
Estimasi parameter dilakukan menggunakan metode Ordinary Least Squares (OLS) berbasis matriks.
# Menyiapkan variabel
Y <- data$Y # Var_dependen (nilai ujian)
X1 <- data$X1 # Var_independen 1 (jumlah jam belajar)
X2 <- data$X2 # Var_independen 2 (tingkat kehadiran)
# Matriks X dengan Menambahkan kolom 1 untuk intercept
X <- cbind(1, X1, X2)
# Estimasi koefisien dengan menggunakan metode OLS
beta_hat <- solve(t(X) %*% X) %*% t(X) %*% Y
# Menampilkan koefisien estimasi (beta_0, beta_1, beta_2)
beta_hat
## [,1]
## 16.1360113
## X1 1.1698379
## X2 0.7744891
# Menampilkan rumus regresi linier dengan memasukkan estimasi koefisien
cat("Ŷ =", beta_hat[1],
"+", beta_hat[2], "X1",
"+", abs(beta_hat[3]), "X2",
"+ ε\n")
## Ŷ = 16.13601 + 1.169838 X1 + 0.7744891 X2 + ε
Interpretasi Hasil
Berdasarkan hasil estimasi koefisien regresi menggunakan metode Ordinary Least Squares (OLS), diperoleh: \[ \hat{Y} = 16.13601 + 1.169838 X1 + 0.7744891 X2 + ε \]
\(\beta_0\) = 16.13601 (Intercept):
Intercept menunjukkan nilai ujian saat jam belajar (X1) dan kehadiran (X2) sama dengan 0. Artinya, jika mahasiswa tidak belajar dan tidak hadir, maka nilai ujian diperkirakan sebesar 16.13601. Walaupun kondisi ini tidak realistis, nilai ini tetap menjadi dasar dalam model regresi.
\(\beta_1\) = 1.169838 (Koefisien untuk X1):
Koefisien ini menunjukkan bahwa setiap tambahan 1 jam belajar per minggu akan meningkatkan nilai ujian sekitar 1.1698 poin, dengan asumsi kehadiran tetap. Artinya, semakin banyak waktu belajar, nilai ujian cenderung meningkat.
\(\beta_2\) = 0.7744891 (Koefisien untuk X2):
Koefisien ini menunjukkan bahwa setiap kenaikan 1% kehadiran akan meningkatkan nilai ujian sekitar 0.7745 poin, dengan asumsi jam belajar tetap. Artinya, semakin sering mahasiswa hadir, semakin baik nilai yang diperoleh.
Langkah-langkah untuk Menghitung Uji F dan Uji t Secara Manual:
# Prediksi Y dan Residual
# Prediksi nilai Y menggunakan model yang sudah dihitung (Y_hat)
Y_hat <- X %*% beta_hat
# Residual (selisih antara nilai yang diprediksi dan nilai yang sebenarnya)
e <- Y - Y_hat
# Hitung SST, SSE, SSR
# Rata-rata Y untuk menghitung SST
Y_mean <- mean(Y)
# Total Sum of Squares (SST) - variasi total dari Y
SST <- sum((Y - Y_mean)^2)
# Error Sum of Squares (SSE) - variasi yang tidak dijelaskan oleh model
SSE <- sum(e^2)
# Regression Sum of Squares (SSR) - variasi yang dijelaskan oleh model
SSR <- SST - SSE
# Jumlah variabel independen (k) dan jumlah data (n)
k <- 2 # Jumlah variabel independen
n <- length(Y) # Jumlah data
# Mean Square Regression (MSR)
MSR <- SSR / k
# Mean Square Error (MSE)
MSE <- SSE / (n - k - 1)
Uji F digunakan untuk mengetahui apakah variabel independen secara simultan berpengaruh terhadap variabel dependen.
# F hitung
F_value <- MSR / MSE
F_value
## [1] 5172.116
# p-value
p_value_F <- pf(F_value, k, n - k - 1, lower.tail = FALSE)
p_value_F
## [1] 8.042129e-12
# F tabel
F_tabel <- qf(0.95, k, n - k - 1)
F_tabel
## [1] 4.737414
Interpretasi Hasil Uji F
Hipotesis:
Berdasarkan hasil perhitungan dengan taraf signifikansi 0.05, diperoleh F hitung = 5172.116, F tabel = 4.7374, dan p-value = 8.042129e-12. Karena F hitung lebih besar dari F tabel dan p-value lebih kecil dari 0.05, maka H0 ditolak. Sehingga variabel jam belajar (X1) dan kehadiran (X2) secara simultan berpengaruh signifikan terhadap nilai ujian mahasiswa (Y), sehingga model regresi layak digunakan.
Uji t digunakan untuk mengetahui pengaruh masing-masing variabel independen secara parsial terhadap variabel dependen.
# Matriks X untuk menghitung standar error
X_inv <- solve(t(X) %*% X) # Inverse dari X'X
X_inv
## X1 X2
## 100.167606 9.4864928 -1.95924360
## X1 9.486493 0.9649988 -0.19003993
## X2 -1.959244 -0.1900399 0.03864224
# Mean Square Error (MSE)
MSE <- SSE / (n - k - 1)
# Varians koefisien
var_beta <- MSE * X_inv
var_beta
## X1 X2
## 8.0472918 0.76212839 -0.15740223
## X1 0.7621284 0.07752633 -0.01526748
## X2 -0.1574022 -0.01526748 0.00310445
# Standar error koefisien
SE_beta <- sqrt(diag(var_beta))
SE_beta
## X1 X2
## 2.83677490 0.27843551 0.05571759
# t hitung
t_values <- beta_hat / SE_beta
t_values
## [,1]
## 5.688154
## X1 4.201468
## X2 13.900261
# p-value
p_values <- 2 * (1 - pt(abs(t_values), df = n - k - 1))
p_values
## [,1]
## 7.444177e-04
## X1 4.028204e-03
## X2 2.357834e-06
# t tabel (dua sisi, alpha 0.05)
t_tabel <- qt(0.975, n - k - 1)
t_tabel
## [1] 2.364624
# Tabel hasil uji t
hasil_t <- data.frame(
Koefisien = c("Intercept", "X1", "X2"),
t_hitung = as.numeric(t_values),
p_value = as.numeric(p_values)
)
hasil_t
## Koefisien t_hitung p_value
## 1 Intercept 5.688154 7.444177e-04
## 2 X1 4.201468 4.028204e-03
## 3 X2 13.900261 2.357834e-06
Interpretasi Hasil Uji T
Berdasarkan hasil perhitungan dengan taraf signifikansi 0.05, hipotesis yang digunakan adalah:
Diperoleh hasil sebagai berikut:
Sehingga secara parsial variabel jam belajar (X1) dan kehadiran (X2) sama-sama berpengaruh signifikan terhadap nilai ujian mahasiswa, dengan kehadiran (X2) memberikan pengaruh yang paling kuat.
# Hitung R^2 (koefisien determinasi), mengukur seberapa baik model menjelaskan variabilitas Y
R2 <- SSR / SST
R2 # Nilai R^2
## [1] 0.9993238
Interpretasi Nilai \(R^2\)
Berdasarkan hasil perhitungan, diperoleh nilai \(R^2\) sebesar 0.9993238 berarti 99.93% variasi nilai ujian mahasiswa (Y) dapat dijelaskan oleh variabel jam belajar (X1) dan kehadiran (X2). Hal ini menunjukkan model sangat baik karena hampir seluruh perubahan Y dapat dijelaskan oleh model. Sisanya, yaitu sekitar 0.07%, dijelaskan oleh faktor lain di luar model yang tidak dimasukkan dalam analisis.
# Hitung Adjusted R^2 - mengoreksi nilai R^2 untuk jumlah variabel independen
Adj_R2 <- 1 - ((SSE / (n - k - 1)) / (SST / (n - 1)))
Adj_R2 # Nilai Adjusted R^2
## [1] 0.9991305
Interpretasi Adjusted \(R^2\)
Nilai Adjusted \(R^2\) sebesar 0.9991305 menunjukkan bahwa setelah disesuaikan dengan jumlah variabel dalam model, kemampuan model dalam menjelaskan variabel Y tetap sangat tinggi, yaitu sekitar 99.91%. Hal ini menunjukkan model tetap kuat meskipun sudah dikoreksi terhadap jumlah variabel yang digunakan.
# Menggunakan fungsi lm() untuk regresi linier berganda
model <- lm(Y ~ X1 + X2)
summary(model) # Menampilkan hasil regresi
##
## Call:
## lm(formula = Y ~ X1 + X2)
##
## 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
Interpretasi Perbandingan Hasil Manual dan Fungsi lm()
Berdasarkan hasil perbandingan, diperoleh bahwa nilai koefisien regresi yang dihitung secara manual dan menggunakan fungsi lm() menghasilkan nilai yang sama, yaitu:
Dan :
Hasil dari lm() juga sama dengan hasil perhitungan manual.
Hal ini menunjukkan bahwa perhitungan manual sudah benar karena menghasilkan nilai yang konsisten dengan output lm(). Kesamaan ini terjadi karena keduanya menggunakan metode yang sama, yaitu Ordinary Least Squares (OLS), sehingga hasil estimasi yang diperoleh juga sama atau sangat mendekati.
# Prediksi X1 = 1, X2 = 100
# X1 = 1, X2 = 100
X_new <- c(1, 1, 100)
X_new
## [1] 1 1 100
Y_pred <- sum(X_new * beta_hat)
Y_pred
## [1] 94.75476
Prediksi Nilai Ujian Mahasiswa
Berdasarkan hasil prediksi model regresi linier berganda, diperoleh nilai prediksi sebesar 94.75 diperoleh saat jam belajar 1 jam/minggu dan kehadiran 100%. Artinya, dengan kondisi tersebut, nilai ujian mahasiswa diperkirakan berada pada angka tersebut berdasarkan model regresi. Nilai ini terbentuk dari kontribusi positif jam belajar dan terutama kehadiran, di mana semakin tinggi kehadiran maka nilai ujian juga cenderung meningkat sesuai hasil model.
Hasil analisis regresi linier berganda dengan metode OLS menunjukkan bahwa jumlah jam belajar (X1) dan tingkat kehadiran (X2) berpengaruh positif dan signifikan terhadap nilai ujian mahasiswa (Y), baik secara simultan maupun parsial.
Model yang diperoleh adalah:
\[ \hat{Y} = 16.13601 + 1.16984X_1 + 0.77449X_2 \]
Hasil uji F menunjukkan bahwa kedua variabel secara bersama-sama berpengaruh signifikan terhadap Y, sedangkan uji t menunjukkan bahwa masing-masing variabel juga berpengaruh signifikan, dengan kehadiran (X2) memiliki pengaruh yang lebih dominan dibanding jam belajar (X1).
Nilai R² = 0.9993 dan Adjusted R² = 0.9991 menunjukkan bahwa model
mampu menjelaskan hampir seluruh variasi nilai ujian. Selain itu, hasil
perhitungan manual konsisten dengan output fungsi lm() di
R, sehingga estimasi model dapat dipastikan benar.
Prediksi menunjukkan bahwa pada kondisi jam belajar 1 jam dan kehadiran 100%, nilai ujian diperkirakan sebesar 94.75, namun hasil ini perlu diperhatikan karena berada di luar rentang data.
Model regresi yang diperoleh menunjukkan hasil yang signifikan, sehingga dapat digunakan untuk analisis maupun prediksi berdasarkan data yang digunakan.