Regresi Linear Berganda
SOAL
JAWABAN
Estimasi Metode OLS
Soal: Estimasikan model regresi linier berganda menggunakan metode OLS berbasis matriks dan interpretasikan hasilnya?
Manual
Model:
\[ Y_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \varepsilon_i \]
Estimator OLS:
\[ \hat{\beta} = (X^T X)^{-1} X^T Y \]
#X1: jumlah belajar (jam/minggu)
#X2: kehadiran (%)
#input data
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)
n <- length(Y)
data <- data.frame(Y, X1, X2)
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
# Matrix X (ditambah kolom 1 untuk intercept) dan vektor y
X_mat <- cbind(1, X1, X2)
Y_mat <- as.matrix(Y)
# Hitung beta
beta_hat <- solve(t(X_mat) %*% X_mat) %*% t(X_mat) %*% Y_mat
print(beta_hat)## [,1]
## 16.1360113
## X1 1.1698379
## X2 0.7744891
Hasil:
\[
\hat{\beta} =
\begin{bmatrix}
16.136 \\
1.169 \\
0.774
\end{bmatrix}
\]
Uji F (Simultan) dan Uji t (Parsial)
Soal: Hitung Uji F dan uji t secara manual dan interpretasikan hasilnya?
Uji F (Simultan)
Hipotesis yang digunakan adalah:
\[ H_0 : \beta_1 = \beta_2 = 0 \]
\[ H_1 : \text{Minimal ada satu } \beta_i \neq 0 \]
# Prediksi dan Residual
Y_pred <- X_mat %*% beta_hat
e <- Y_mat - Y_pred
# SSE, SSR, SST
SSE <- sum(e^2)
SSR <- sum((Y_pred - mean(Y))^2)
SST <- sum((Y - mean(Y))^2)
# Derajat Bebas (df)
n <- length(Y)
df_total <- n - 1
df_reg <- 2 # jumlah variabel independen
df_err <- n - 3
# Uji F (Simultan)
MSE <- SSE / df_err
MSR <- SSR / df_reg
F_hitung <- MSR / MSE
p_val_F <- pf(F_hitung, df_reg, df_err, lower.tail = FALSE)Statistik uji:
\[ F_{hitung} = 5172.116 \]
Dengan nilai p-value sebesar:
\[ p\text{-value} = 8.042129e-12 \]
Karena \(p\text{-value} < 0.05\), maka \(H_0\) ditolak.
Interpretasi:
Hal ini menunjukkan bahwa secara simultan variabel jumlah jam belajar (X1) dan tingkat kehadiran (X2) berpengaruh signifikan terhadap nilai ujian mahasiswa.
Uji t (Parsial)
# Uji t (Parsial)
var_cov_beta <- MSE * solve(t(X_mat) %*% X_mat)
se_beta <- sqrt(diag(var_cov_beta))
t_hitung <- beta_hat / se_beta
p_val_t <- 2 * pt(abs(t_hitung), df_err, lower.tail = FALSE)Interpretasi:
Berdasarkan hasil uji t, diperoleh bahwa seluruh variabel memiliki nilai p-value < 0,05, sehingga H₀ ditolak untuk masing-masing variabel.
Hal ini menunjukkan bahwa secara parsial: - Variabel jumlah jam belajar (X1) berpengaruh signifikan terhadap nilai ujian mahasiswa. - Variabel tingkat kehadiran (X2) juga berpengaruh signifikan terhadap nilai ujian mahasiswa.
Dengan demikian, baik jumlah jam belajar maupun tingkat kehadiran memiliki pengaruh yang signifikan terhadap nilai ujian mahasiswa.
R² dan Adjusted R²
Soal: Hitung nilai R² dan Adjusted R² secara manual dan interpretasikan hasilnya?
R_sq <- SSR / SST
R_sq_adj <- 1 - ((1 - R_sq) * (n - 1) / (n - 2 - 1))
cat("R-Squared:", R_sq, "\nAdjusted R-Squared:", R_sq_adj)## R-Squared: 0.9993238
## Adjusted R-Squared: 0.9991305
Interpretasi:
Nilai R² sebesar 0,9993 menunjukkan bahwa sebesar 99,93% variasi nilai ujian mahasiswa dapat dijelaskan oleh variabel jumlah jam belajar (X1) dan tingkat kehadiran (X2), sedangkan sisanya sebesar 0,07% dijelaskan oleh faktor lain di luar model.
Nilai Adjusted R² sebesar 0,9991 menunjukkan bahwa setelah disesuaikan dengan jumlah variabel dalam model, kemampuan model dalam menjelaskan variasi nilai ujian tetap sangat tinggi.
Dengan demikian, model regresi yang digunakan memiliki tingkat kecocokan (goodness of fit) yang sangat baik.
Bandingkan Dengan Fungsi lm()
Soal: Bandingkan hasil no 1 s.d 3 dengan fungsi lm.
##
## 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:
Berdasarkan hasil estimasi menggunakan fungsi lm(), diperoleh nilai koefisien regresi yang sama dengan perhitungan manual, yaitu intercept sebesar 16,13601, koefisien X1 sebesar 1,16984, dan koefisien X2 sebesar 0,77449.
Selain itu, hasil uji t, uji F, serta nilai R² dan Adjusted R² juga menunjukkan hasil yang konsisten dengan perhitungan manual, di mana seluruh variabel memiliki pengaruh yang signifikan terhadap nilai ujian mahasiswa.
Dengan demikian, dapat disimpulkan bahwa perhitungan manual yang telah dilakukan sudah benar, karena menghasilkan output yang sama dengan fungsi lm() pada R.
Nilai Prediksi
Soal: Prediksikan nilai ujian mahasiswa jika jumlah jam belajar 1 jam/minggu namun kehadirannya 100%?.
# X_new berisi: Intercept=1, X1=1, X2=100
X_new <- c(1, 1, 100)
prediksi_nilai <- sum(X_new * beta_hat)
cat("Prediksi nilai ujian:", prediksi_nilai)## Prediksi nilai ujian: 94.75476
Interpretasi:
Berdasarkan hasil perhitungan, diperoleh nilai prediksi ujian mahasiswa sebesar 94,75 untuk kondisi jumlah jam belajar 1 jam per minggu dan tingkat kehadiran 100%.
Hal ini menunjukkan bahwa meskipun jumlah jam belajar relatif rendah, tingkat kehadiran yang sangat tinggi memberikan kontribusi besar terhadap peningkatan nilai ujian mahasiswa.