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
Y <- matrix(c(65, 70, 75,80, 85, 78, 72, 90, 88, 95), ncol=1)
X1 <- c(2, 3, 4, 5, 6, 5, 3, 7, 6, 8)
X2 <- c(60, 65, 70, 75, 80, 72, 68, 85, 83, 90)
X <- cbind(1, X1, X2)
n <- nrow(X)
k <- 2 # jumlah variabel independen
#1. Estimasi Model Regresi
# Estimasi beta
beta_hat <- solve(t(X) %*% X) %*% t(X) %*% Y
beta_hat
## [,1]
## 16.1360113
## X1 1.1698379
## X2 0.7744891
Berdasarkan hasil estimasi menggunakan metode matriks (OLS), model regresi linear berganda yang terbentuk adalah \(Y = 16,136 + 1,169X_1 + 0,774X_2\). Nilai Konstanta (Intercept) sebesar 16,136 menunjukkan bahwa apabila variabel jam belajar (\(X_1\)) dan tingkat kehadiran (\(X_2\)) bernilai nol, maka prediksi nilai ujian mahasiswa adalah 16,136. Koefisien regresi untuk variabel Jam Belajar (\(X_1\)) bernilai positif sebesar 1,169, yang berarti setiap penambahan satu jam belajar/minggu akan meningkatkan nilai ujian sebesar 1,169 poin dengan asumsi variabel lain tetap. Sementara itu, variabel Tingkat Kehadiran (\(X_2\)) memiliki nilai sebesar 0,774, mengindikasikan bahwa setiap kenaikan 1% tingkat kehadiran berkontribusi pada kenaikan nilai ujian sebesar 0,774 poin. Hal ini menunjukkan bahwa kedua variabel memiliki hubungan positif terhadap nilai ujian.
#2. Hitung Uji F dan uji t secara manual dan interpretasikan hasilnya?
# 2. Uji F dan Uji t
# Prediksi
Y_hat <- X %*% beta_hat
# Residual
e <- Y - Y_hat
# Rata-rata Y
Y_mean <- mean(Y)
# SST (Total Sum of Squares)
SST <- sum((Y - Y_mean)^2)
# SSE (Error Sum of Squares)
SSE <- sum(e^2)
# SSR (Regression Sum of Squares)
SSR <- SST - SSE
df_error <- n - k - 1
MSE <- sum(e^2) / df_error
var_beta <- as.numeric(MSE) * solve(t(X) %*% X)
se_beta <- sqrt(diag(var_beta))
# Uji t
t_hit <- beta_hat / se_beta
t_hit
## [,1]
## 5.688154
## X1 4.201468
## X2 13.900261
t_tab <- qt(0.025, df_error, lower.tail = FALSE)
t_tab
## [1] 2.364624
# Uji F
MSR <- SSR / k
F_hit <- MSR / MSE
F_hit
## [1] 5172.116
F_tab <- qf(0.05, k, df_error, lower.tail = FALSE)
F_tab
## [1] 4.737414
Pengujian pada variabel Jam Belajar (\(X_1\)) menunjukkan nilai t-hitung sebesar 4,201. Karenat-hitung \((4,201) >\) t-tabel \((2,364\)), maka dapat disimpulkan bahwa jam belajar berpengaruh secara signifikan dan positif terhadap nilai ujian. Sementara itu, variabel Tingkat Kehadiran (\(X_2\)) menunjukkan nilai t-hitung sebesar 13,900. Karena t-hitung \((13,900) >\) t-tabel \((2,364)\), maka tingkat kehadiran terbukti memiliki kontribusi yang sangat nyata dan signifikan dalam menentukan hasil ujian mahasiswa.
Berdasarkan hasil uji-t, karena nilai t-hitung kedua variabel tersebut lebih besar dari t-tabel, maka secara parsial kedua variabel tersebut dinyatakan memiliki pengaruh yang signifikan secara positif terhadap nilai ujian pada tingkat kepercayaan 95%.
Selanjutnya, pada Uji F diperoleh nilai F-hitung sebesar 5172,116, yang mana nilai ini lebih besar dari nilai F-tabel yaitu 4,737. Dengan kondisi \(F_{hitung} > F_{tabel}\), maka jumlah jam belajar dan tingkat kehadiran secara bersama-sama berpengaruh signifikan terhadap nilai ujian mahasiswa.
# 3. R2 dan Adjusted R2
#Hitung R Square
R2 <- SSR / SST
R2
## [1] 0.9993238
#Hitung Adjusted R Square
Adj_R2 <- 1 - ((SSE/(n-k-1)) / (SST/(n-1)))
Adj_R2
## [1] 0.9991305
Dari perhitungan yang dilakukan, didapat nilai \(R^2\) sebesar 0.9993238. Angka ini menunjukkan bahwa sebesar 99,93% variasi pada nilai ujian mahasiswa dapat dijelaskan secara akurat oleh variabel jam belajar dan tingkat kehadiran. Sisanya, yaitu sebesar 0,07%, dipengaruhi oleh faktor-faktor lain di luar model yang tidak diteliti.
Nilai Adjusted R-Square sebesar 0.9991305 yang sangat mendekati nilai \(R^2\) juga menegaskan bahwa model ini memiliki tingkat ketepatan yang sangat tinggi dalam menjelaskan data observasi.
# 4. Perbandingan Hasil
model <- lm(Y ~ X1 + X2)
summary_model <- summary(model)
coef(model)
## (Intercept) X1 X2
## 16.1360113 1.1698379 0.7744891
Perbandingan antara perhitungan manual dan fungsi lm() menunjukkan bahwa nilai koefisien intercept, koefisien \(X_1\), dan koefisien \(X_2\) memberikan hasil yang identik. Konsistensi tersebut membuktikan bahwa prosedur perhitungan manual yang dilakukan sudah tepat sesuai dengan teori OLS.
# 5. Prediksi Nilai Ujian
data_pred <- data.frame(X1 = 1, X2 = 100)
pred_Y <- predict(model, newdata = data_pred)
pred_Y
## 1
## 94.75476
Model regresi yang telah teruji kemudian dapat digunakan untuk memprediksi nilai ujian mahasiswa. Jika seorang mahasiswa meluangkan waktu 1 jam/minggu untuk belajar (\(X_1 = 1\)) namun dengan kehadiran sebesar 100% (\(X_2 = 100\)), maka berdasarkan perhitungan model, mahasiswa tersebut diprediksi akan memperoleh nilai ujian sebesar 94.75476. Hasil prediksi ini menunjukan bahwa tingkat kehadiran memiliki kontribusi yang sangat besar sehingga dapat mengompensasi waktu belajar yang relatif sedikit dalam menentukan nilai ujian mahasiswa.