Regresi Linier Berganda adalah model regresi linier dengan lebih dari satu variabel bebas (prediktor). Model ini digunakan untuk memprediksi nilai variabel dependen berdasarkan beberapa variabel independen. Pada dasarnya regresi linear berganda adalah model prediksi atau peramalan dengan menggunakan data berskala interval atau rasio serta terdapat lebih dari satu predictor. Skala data yang dimaksud diatas adalah pada semua variabel terutama variable terikat. Pada regresi linear, tidak menutup kemungkinan digunakannya data dummy pada variable bebas. Yaitu pada regresi linear dengan dummy. Model regresi linear berganda dilukiskan dengan persamaan sebagai berikut: Y = α + β1 X2 + β2 X2 + βn Xn + e
Seseorang ingin mengetahui pengaruh jumlah jam belajar per minggu (X₁) dan frekuensi kehadiran kuliah (X₂) terhadap IPK mahasiswa (Y).
Data 10 mahasiswa:
| Mahasiswa | Jam Belajar (X₁) | Kehadiran (X₂) | IPK (Y) |
|---|---|---|---|
| Nazmi | 10 | 12 | 3.00 |
| Ela | 15 | 14 | 3.50 |
| Juan | 9 | 11 | 2.80 |
| Aca | 12 | 10 | 3.00 |
| Injil | 18 | 16 | 3.90 |
| Lydia | 16 | 15 | 3.80 |
| Delon | 11 | 13 | 3.20 |
| Aditia | 8 | 9 | 2.50 |
| Musfa | 14 | 14 | 3.60 |
| Sahril | 7 | 10 | 2.70 |
jam_belajar <- c(10, 15, 9, 12, 18, 16, 11, 8, 14, 7)
kehadiran <- c(12, 14, 11, 10, 16, 15, 13, 9, 14, 10)
ipk <- c(3.00, 3.50, 2.80, 3.00, 3.90, 3.80, 3.20, 2.50, 3.60, 2.70)
data <- data.frame(ipk, jam_belajar, kehadiran)
print(data)
## ipk jam_belajar kehadiran
## 1 3.0 10 12
## 2 3.5 15 14
## 3 2.8 9 11
## 4 3.0 12 10
## 5 3.9 18 16
## 6 3.8 16 15
## 7 3.2 11 13
## 8 2.5 8 9
## 9 3.6 14 14
## 10 2.7 7 10
model <- lm(ipk ~ jam_belajar + kehadiran, data = data)
summary(model)
##
## Call:
## lm(formula = ipk ~ jam_belajar + kehadiran, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.07812 -0.06230 -0.01531 0.06321 0.09986
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.09672 0.16353 6.707 0.000276 ***
## jam_belajar 0.06366 0.01643 3.874 0.006100 **
## kehadiran 0.10801 0.02536 4.260 0.003747 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.07842 on 7 degrees of freedom
## Multiple R-squared: 0.9793, Adjusted R-squared: 0.9734
## F-statistic: 165.6 on 2 and 7 DF, p-value: 1.276e-06
# Scatter Plot Jam Belajar vs IPK
plot(data$jam_belajar, data$ipk,
main = "Jam Belajar vs IPK",
xlab = "Jam Belajar per Minggu",
ylab = "IPK",
pch = 16, col = "blue")
abline(lm(ipk ~ jam_belajar, data = data), col = "red")
# Scatter Plot Kehadiran vs IPK
plot(data$kehadiran, data$ipk,
main = "Kehadiran vs IPK",
xlab = "Kehadiran",
ylab = "IPK",
pch = 16, col = "darkgreen")
abline(lm(ipk ~ kehadiran, data = data), col = "red")
# Plot Matriks Korelasi
pairs(data, main = "Plot Korelasi Antar Variabel", pch = 19, col = "purple")
# Korelasi antar Variabel
cor(data)
## ipk jam_belajar kehadiran
## ipk 1.0000000 0.9621024 0.9669149
## jam_belajar 0.9621024 1.0000000 0.9001029
## kehadiran 0.9669149 0.9001029 1.0000000
# Normalitas Residual
shapiro.test(residuals(model))
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.87346, p-value = 0.1097
# Plot Residual vs Fitted
plot(model$fitted.values, model$residuals,
main = "Residual vs Fitted",
xlab = "Fitted Values", ylab = "Residuals")
abline(h = 0, col = "red")
# Multikolinearitas (butuh package car)
# install.packages("car") jika belum
library(car)
## Warning: package 'car' was built under R version 4.4.2
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.2
vif(model)
## jam_belajar kehadiran
## 5.268293 5.268293
Model regresi yang terbentuk menunjukkan bahwa: - Setiap penambahan 1 jam belajar → IPK naik sekitar 0.06366 poin. - Setiap penambahan 1 kehadiran → IPK naik sekitar 0.10801 poin.
| Asumsi | Hasil Uji | Status |
|---|---|---|
| Normalitas | Shapiro-Wilk (p = 0.1097) | Terpenuhi |
| Homoskedastisitas | Plot Residual vs Fitted | Terpenuhi |
| Multikolinearitas | VIF = 5.268 (masih < 10) | Aman |