Regresi Linear Berganda (Metode OLS) - Pengantar Model Linier

Regresi Linear Berganda adalah model regresi linear dengan melibatkan lebih dari satu variabel bebas atau predikdor. Regresi Linier Berganda dinyatakan dalam persamaan matematika sebagai berikut :

\[ Y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_k x_k + \varepsilon \]

Salah satu metode yang digunakan untuk mengestimasi parameter regresi adalah metode Ordinary Least Squares (OLS). Metode OLS bertujuan menemukan penduga parameter regresi dengan meminimumkan jumlah kuadrat residual. Residual adalah selisih antara nilai pengamatan dengan nilai estimasinya \(\hat{y}\) penduga untuk parameter regresi dalam bentuk matriks dapat dirumuskan sebagai berikut.

\[ \hat{\beta} = (X'X)^{-1} X'Y \]

STUDI KASUS

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:

# Load Library 
library(car)
## Warning: package 'car' was built under R version 4.4.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.4.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
# Input Data
(data_mahasiswa <- data.frame(
  Nilai_Ujian = c(65, 70, 75, 80, 85, 
                        78, 72, 90, 88, 95),
  Jumlah_Jam_Belajar = c(2, 3, 4, 5, 6,
                         5, 3, 7, 6, 8),
  Tingkat_Kehadiran = c(60, 65, 70, 75, 80,
                        72, 68, 85, 83, 90)
))
##    Nilai_Ujian Jumlah_Jam_Belajar Tingkat_Kehadiran
## 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
DT::datatable(data_mahasiswa)
Y <- as.matrix(data_mahasiswa$Nilai_Ujian) # variabel respon
X1 <- data_mahasiswa$Jumlah_Jam_Belajar
X2 <- data_mahasiswa$Tingkat_Kehadiran

X <- cbind(1, X1, X2)
n <- nrow(X) # jumlah observasi
k <- ncol(X) - 1 # jumlah variabel bebas

1. Estimasi model regresi linier berganda menggunakan metode OLS berbasis matriks

# Estimasi OLS: β = (X′X)^−1 X′Y
(beta_hat <- solve(t(X) %*% X) %*% t(X) %*% Y)
##          [,1]
##    16.1360113
## X1  1.1698379
## X2  0.7744891
# Prediksi : Y^ = Xβ
(Y_hat <- X %*% beta_hat)
##           [,1]
##  [1,] 64.94503
##  [2,] 69.98732
##  [3,] 75.02960
##  [4,] 80.07188
##  [5,] 85.11416
##  [6,] 77.74841
##  [7,] 72.31078
##  [8,] 90.15645
##  [9,] 87.43763
## [10,] 95.19873
# Residual : Y - Y^
(e <- Y - Y_hat)
##              [,1]
##  [1,]  0.05496829
##  [2,]  0.01268499
##  [3,] -0.02959831
##  [4,] -0.07188161
##  [5,] -0.11416490
##  [6,]  0.25158562
##  [7,] -0.31078224
##  [8,] -0.15644820
##  [9,]  0.56236786
## [10,] -0.19873150

Secara umum, hasil analisis persamaan regresi linier berganda yang dihitung dengan metode Ordinary Least Squares (OLS), hasil persamaanya yaitu: \[ \hat{Y} = 16.136 + 1.169X_1 + 0.774X_2 \]

Artinya:

\(\beta_0\) = 16.136, jika jumlah jam belajar dan tingkat kehadiran sama dengan nol, maka nilai ujian mahasiswa rata-rata adalah bernilai 16.136.

\(\beta_1\) = 1.169, setiap jumlah jam belajar meningkat satu jam per minggunya, maka nilai ujian mahasiswa diperkirakan akan meningkat sebesar 1.169 poin, dengan asumsi variabel tingkat kehadiran konstan.

\(\beta_2\) = 0.774, setiap persentase kehadiran naik sebesar 1%, maka nilai ujian mahasiswa diperkirakan akan meningkat sebesar 0.774 poin dengan asumsi jumlah jam belajar konstan.

Berdasarkan hasil interpretasi tersebut, disimpulkan bahwa jumlah jam belajar dan tingkat kehadiran memiliki pengaruh yang positif terhadap nilai ujian mahasiswa. Semakin banyaknya waktu yang digunakan untuk belajar dan tingginya tingkat persentase kehadiran, maka nilai ujian juga cenderung ikut meningkat.

2. Uji F dan Uji t (manual)

Uji F

Hipotesis:

• H0: \(\beta_1 = \beta_2 = 0\) (Tidak ada pengaruh antara variabel X1 dan X2 terhadap Y)

• H1: minimal ada satu \(\beta_1 \neq 0\)

Taraf signifikansi :

\(\alpha\) = 0.05

Statistik Uji

# Uji F
# Hitung SST, SSR, SSE
SST <- sum((Y - mean(Y))^2)     # Total 
SSR <- sum((Y_hat - mean(Y))^2) # Regresi 
SSE <- sum(e^2)                 # Error 

# Uji F (signifikansi model) 
MSR <- SSR / k 
MSE <- SSE / (n - k - 1) 
F_value <- MSR / MSE 
p_value_F <- pf(F_value, k, n-k-1, lower.tail = FALSE) 

F_value; p_value_F
## [1] 5172.116
## [1] 8.042129e-12

Kriteria keputusan:

Jika p-value < 0.05, maka H0 ditolak

Kesimpulan

Berdasarkan hasil Uji F, diperoleh nilai F-value = 5172.116 dan p-value = 8.042129e-12. Karena p-value (8.042129e-12) < 0.05, maka hasil keputusan adalah H0 ditolak. Artinya, variabel jumlah jam belajar dan tingkat kehadiran secara simultan memiliki pengaruh yang signifikan terhadap nilai ujian mahasiswa.

Uji t

Hipotesis:

  • X1 (Jumlah Jam Belajar)

H0 : \(\beta_1\) = 0 (tidak ada pengaruh terhadap variabel Y)

H1 : \(\beta_1\) \(\neq\) 0 (terdapat pengaruh terhadap variabel Y)

  • X2 (Tingkat Kehadiran)

H0 : \(\beta_2\) = 0 (tidak ada pengaruh terhadap variabel Y)

H1 : \(\beta_2\) \(\neq\) 0 (terdapat pengaruh terhadap variabel Y)

Taraf signifikansi :

\(\alpha\) = 0.05

Statistik Uji

# Uji t 
# Varian error 
sigma2 <- SSE / (n - k - 1) 

# Kovarians koefisien 
var_b <- sigma2 * solve(t(X) %*% X) 
se_b <- sqrt(diag(var_b)) 


# t-value dan p-value untuk tiap koefisien 
t_value <- beta_hat / se_b 
p_value_t <- 2 * pt(-abs(t_value), df = n-k-1) 

# Gabungkan hasil 
(hasil <- data.frame( 
  Koefisien = as.vector(beta_hat), 
  Std_Error = se_b, 
  t_value = as.vector(t_value), 
  p_value = as.vector(p_value_t) 
))
##     Koefisien  Std_Error   t_value      p_value
##    16.1360113 2.83677490  5.688154 7.444177e-04
## X1  1.1698379 0.27843551  4.201468 4.028204e-03
## X2  0.7744891 0.05571759 13.900261 2.357834e-06

Kriteria keputusan:

Jika p-value < 0.05, maka H0 ditolak

Interpretasi:

  • X1

Berdasarkan output ringkasan model yang dihasilkan, diketahui bahwa p-value = 4.028204e-03. Karena p-value (4.028204e-03) < 0.05, maka hasil keputusan adalah H0 ditolak. Artinya, setiap kenaikan jumlah jam belajar, memiliki pengaruh yang signifikan terhadap nilai ujian mahasiswa.

  • X2

Berdasarkan output ringkasan model yang dihasilkan, diketahui bahwa p-value = 2.357834e-06. Karena p-value (2.357834e-06) < 0.05, maka hasil keputusan adalah H0 ditolak. Artinya, tingkat kehadiran memiliki pengaruh yang signifikan terhadap nilai ujian mahasiswa.

Berdasarkan uji-t, secara keseluruhan variabel tingkat kehadiran memiliki pengaruh yang lebih kuat dibandingkan dengan jumlah jam belajar, ditunjukkan oleh nilai t yang lebih besar.

3. Nilai R² dan Adjusted R² (manual)

#Hitung R Square
(R2 <- SSR / SST)
## [1] 0.9993238

Berdasarkan hasil perhitungan, nilai koefisien determinasi, yaitu:

\(R^2\) = 0.9993238 (99.93%)

Artinya, sebesar 99.93% variasi nilai ujian mahasiswa dapat dijelaskan oleh variabel jumlah jam belajar dan tingkat kehadiran, sedangkan 0.07% sisanya dijelaskan oleh faktor lain diluar model.

Adjusted R²

#Hitung Adjusted R Square
(Adj_R2 <- 1 - ((SSE/(n-k-1)) / (SST/(n-1))))
## [1] 0.9991305

Adjusted \(R^2\) = 0.9991305 (99.91%)

Nilai adjusted \(R^2\) merupakan kemampuan model dalam menjelaskan variasi nilai ujian mahasiswa setelah memperhitungkan jumlah variabelnya. Sekitar 99.91% variasi nilai ujian mahasiswa tetap dapat dijelaskan oleh model. Nilai adjusted \(R^2\) yang tidak jauh berbeda dari nilai \(R^2\) menunjukkan bahwa model yang digunakan sudah baik dan tidak mengalami overfitting.

4. Perbandingan dengan fungsi lm

model <- lm(Y ~ X1 + X2, data = data_mahasiswa)
summary(model)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = data_mahasiswa)
## 
## 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

Hasil pengujian dari uji F, uji t, serta nilai \(R^2\) dan adjusted \(R^2\) yang diperoleh melalui perhitungan manual menunjukkan bahwa output yang dihasilkan identik dengan hasil yang diperoleh dengan menggunakan fungsi lm(). Terdapat sedikit perbedaan di hasil uji F secara manual dan fungsi lm(). Dimana pada hasil manual, nilai F-statisticnya adalah 5172.116, sedangkan yang menggunakan fungsi lm() bernilai 5172. Perbedaan ini hanya disebabkan oleh pembulatan angka dan tidak mempengaruhi kesimpulan maupun signifikansi model.

Hal ini menunjukkan bahwa proses perhitungan manual yang dilakukan telah benar dan sesuai dengan metode yang digunakan oleh fungsi pada perangkat lunak R.

5. Prediksi nilai ujian mahasiswa jika jumlah jam belajar 1 jam/minggu namun kehadirannya 100%?

# Data baru
X_new <- matrix(c(1, 1, 100), nrow = 1)

# Prediksi
Y_pred <- X_new %*% beta_hat
Y_pred
##          [,1]
## [1,] 94.75476

Berdasarkan hasil prediksi menggunakan model regresi, diperoleh nilai \(\hat{y}\) = 94.75. Artinya, mahasiswa dengan tingkat kehadiran 100% meskipun jumlah jam belajar hanya 1 jam/minggu, diperkirakan akan tetap memperoleh nilai tinggi. Hal ini menunjukkan bahwa tingkat kehadiran yang tinggi memberikan kontribusi yang cukup besar meskipun jumlah jam belajar relatif rendah.

Namun perlu diperhatikan bahwa prediksi ini didasarkan pada model yang dibangun dari data, sehingga nilai akurasinya bergantung pada kesesuaian data dengan kondisi yang sebenarnya.