Analisis Regresi Linier Berganda - 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 \]

STUDI KASUS:

Diberikan data tentang IQ dan tingkat kehadiran sepuluh siswa di kelas yang diperkirakan mempengaruhi nilai UAS

# 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_siswa <- data.frame(
  Tingkat_Kehadiran = c(60, 70, 75, 80, 80,
         90, 95, 95, 100, 100),
  IQ = c(110, 120, 115, 130, 110,
         120, 120, 125, 110, 120),
  Nilai_UAS = c(65, 70, 75, 75, 80,
                80, 85, 95, 90, 98))

DT::datatable(data_siswa)
Y <- as.matrix(data_siswa$Nilai_UAS) # variabel respon
X1 <- data_siswa$Tingkat_Kehadiran
X2 <- data_siswa$IQ

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

1. Persamaan Regresi Linear Berganda

Manual

# Rumus: b = (X'X)^(-1) X'Y
XtX <- t(X) %*% X 
XtY <- t(X) %*% Y 
(b <- solve(XtX) %*% XtY) 
##          [,1]
##    23.0544545
## X1  0.7372330
## X2 -0.0343275

Fungsi lm

# Fungsi lm
model <- lm(Y ~ X1 + X2, data = data_siswa)
summary(model)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = data_siswa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.2861 -2.8939  0.0296  1.6791  6.1993 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 23.05445   25.57161   0.902 0.397247    
## X1           0.73723    0.10918   6.752 0.000264 ***
## X2          -0.03433    0.22051  -0.156 0.880686    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.346 on 7 degrees of freedom
## Multiple R-squared:  0.8719, Adjusted R-squared:  0.8353 
## F-statistic: 23.82 on 2 and 7 DF,  p-value: 0.0007523

Secara umum, hasil analisis persamaan regresi linier berganda yang dihitung dengan cara manual maupun fungsi lm(), hasil persamaanya yaitu: \[ \hat{Y} = 23.054 + 0.737X_1 - 0.034X_2 \] Artinya:

\(\beta_0\) = 23.054, jika persentase kehadiran dan IQ sama dengan nol, maka nilai UAS siswa rata-rata adalah bernilai 23.05.

\(\beta_1\) = 0.737, setiap persentase kehadiran naik sebesar 1%, maka nilai UAS diperkirakan akan meningkat sebesar 0.737 poin, dengan asumsi variabel IQ konstan.

\(\beta_2\) = -0.034, setiap kenaikan 1 poin IQ, maka nilai UAS siswa diperkirakan akan turun sebesar 0.034 poin dengan asumsi persentase kehadiran konstan.

Nilai koefisien IQ yang bernilai negatif bukan berarti peningkatan IQ dapat menyebabkan nilai UAS menurun. Melainkan, hal ini disebabkan karena adanya variabel lain yang lebih dominan, seperti persentase kehadiran.

Perbandingan persamaan regresi linier berganda antara yang dihitung secara manual dan menggunakan fungsi lm() adalah terletak pada pembulatan angka desimal. Pada fungsi lm(), nilai koefisien regresi ditampilkan dalam bentuk yang telah dibulatkan, sedangkan pada perhitungan manual diperoleh nilai yang lebih rinci. Meskipun demikian, perbedaan yang terjadi sangat kecil sehingga dapat disimpulkan bahwa hasil perhitungan manual telah sesuai dan benar.

2. Uji-F

(uji_F <- anova(model))
## Analysis of Variance Table
## 
## Response: Y
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## X1         1 899.43  899.43 47.6218 0.0002312 ***
## X2         1   0.46    0.46  0.0242 0.8806861    
## Residuals  7 132.21   18.89                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hipotesis:

• H0 \[ \beta_1 = \beta_2 = 0 \] Tidak ada pengaruh antara variabel X1 dan X2 terhadap Y

• H1 \[ \beta_1 \neq 0 \] Terdapat pengaruh variabel bebas terhadap Y.

Kriteria keputusan: Jika p-value < 0.05, maka H0 ditolak

Berdasarkan output anova yang dihasilkan, diketahui bahwa p-value = 0.0007523. Karena p-value (0.0007523) < 0.05, maka hasil keputusan adalah H0 ditolak. Artinya, variabel persentase kehadiran dan IQ secara simultan memiliki pengaruh yang signifikan terhadap nilai UAS.

3. Uji-t

(uji_t <- summary(model)$coefficients)
##               Estimate Std. Error    t value     Pr(>|t|)
## (Intercept) 23.0544545 25.5716101  0.9015644 0.3972467061
## X1           0.7372330  0.1091797  6.7524718 0.0002644133
## X2          -0.0343275  0.2205125 -0.1556715 0.8806860631

Hipotesis:

  • X1 (Persentase Kehadiran)

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

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

  • X2 (IQ)

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

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

Kriteria keputusan: Jika p-value < 0.05, maka H0 ditolak

Interpretasi:

  • X1

Berdasarkan output ringkasan model yang dihasilkan, diketahui bahwa p-value = 0.0002644133. Karena p-value (0.0002644133) < 0.05, maka hasil keputusan adalah H0 ditolak. Artinya, setiap kenaikan persentase kehadiran, memiliki pengaruh yang signifikan terhadap nilai UAS siswa.

  • X2

Berdasarkan output ringkasan model yang dihasilkan, diketahui bahwa p-value = 0.8806860631. Karena p-value (0.8806860631) > 0.05, maka hasil keputusan adalah Gagal menolak H0.Artinya, IQ tidak memiliki pengaruh yang signifikan terhadap nilai UAS.

4. Koefisien Determinasi

Manual

# Nilai Prediksi dan Residual
Y_pred <- X %*% b 
(residual <- Y - Y_pred)
##             [,1]
##  [1,]  1.4875890
##  [2,] -0.5414662
##  [3,]  0.6007312
##  [4,] -2.5705215
##  [5,]  1.7429286
##  [6,] -5.2861266
##  [7,] -3.9722917
##  [8,]  6.1993458
##  [9,] -3.0017318
## [10,]  5.3415432
# SST, SSR, SSE
(SST <- sum((Y - mean(Y))^2)) # Total 
## [1] 1032.1
(SSR <- sum((Y_pred - mean(Y))^2)) # Regresi 
## [1] 899.891
(SSE <- sum(residual^2)) # Error 
## [1] 132.209
# Koefisien Determinasi
(R2 <- SSR / SST)
## [1] 0.8719029
(Adj_R2 <- 1 - ((SSE/(n-k-1)) / (SST/(n-1))))
## [1] 0.8353038

Ringkasan Model

summary(model)$r.squared
## [1] 0.8719029
summary(model)$adj.r.squared
## [1] 0.8353038

Berdasarkan output yang dihasilkan dari cara manual maupun dengan ringkasan model, keduanya menunjukkan nilai koefisien determinasi yang sama, yaitu:

\(R^2\) = 0.8719029 (87.19%)

Artinya, sebesar 87.19% variasi nilai UAS dapat dijelaskan oleh variabel persentase kehadiran dan IQ, sedangkan 12.81% sisanya dijelaskan oleh faktor lain diluar model.

Adjusted \(R^2\) = 0.8353038 (83.53%)

Nilai adjusted \(R^2\) merupakan kemampuan model dalam menjelaskan variasi nilai UAS setelah memperhitungkan jumlah variabelnya. Nilai adjusted \(R^2\) relatif lebih kecil, hal ini disebabkan karena adanya variabel IQ pada model yang kurang berpengaruh terhadap nilai UAS.

5. Uji Asumsi

Uji Linieritas

# Uji Linieritas
galat <- model$residuals

plot(fitted(model), galat,
     xlab = "Fitted values", ylab = "Residuals",
     main = "Residuals vs Fitted Plot")
abline(0,0)

Analisis regresi bersifat linier apabila titik menyebar acak di sekitar garis 0. Berdasarkan Residuals vs Fitted Plot tersebut, titik-titik berdistribusi acak di atas dan di bawah garis 0, dan tidak membentuk suatu pola tertentu. Sehingga dapat disimpulkan memenuhi asumsi linieritas.

Uji Normalitas

# Uji Normalitas - Shapiro Wilk
shapiro.test(galat)
## 
##  Shapiro-Wilk normality test
## 
## data:  galat
## W = 0.95125, p-value = 0.6833

Hipotesis:

H0: Residual berdistribusi normal

H1: Residual tidak berdistribusi normal

Kriteria Keputusan: Jika p-value < 0.05, maka H0 ditolak

Interpretasi:

Berdasarkan output dari uji Shapiro-Wilk, diketahui bahwa p-value = 0.6833. Karena p-value (0.6833) > 0.05, maka hasil keputusan adalah Gagal menolak H0. Artinya, residual berdistribusi normal dan asumsi normalitas terpenuhi.

Uji Heteroskedastisitas

# Uji Heteroskedastisitas - Breusch Pagan
(bp_berganda <- bptest(model))
## 
##  studentized Breusch-Pagan test
## 
## data:  model
## BP = 5.905, df = 2, p-value = 0.05221

Hipotesis:

H0: Tidak terjadi heteroskedastisitas (homoskedastisitas)

H1: Terjadi heteroskedastisitas

Kriteria Keputusan: Jika p-value < 0.05, maka H0 ditolak

Interpretasi:

Berdasarkan output dari uji Shapiro-Wilk, diketahui bahwa p-value = 0.05221. Karena p-value (0.05221) > 0.05, maka hasil keputusan adalah Gagal menolak H0. Artinya, tidak terdapat heteroskedastisitas, sehingga varians residual dianggap konstan / stabil

Uji Multikolinearitas

# Uji Multikolinearitas - Uji VIF
(vif <- vif(model))
##       X1       X2 
## 1.055571 1.055571
(vif.inv <- 1 / vif)
##       X1       X2 
## 0.947355 0.947355

Syarat uji multikolinearitas menggunakan VIF yaitu, apabila VIF < 10, dapat dikatakan tidak ada multikolinearitas.

Berdasarkan hasil uji multikolinearitas, nilai VIF yang dihasilkan yaitu 1.055571. Karena VIF (1.055571) < 10, maka tidak terdapat multikolinearitas antar variabel bebas (X1 dan X2)

Sedangkan, VIF-Invers (Tolerance) adalah nilai yang mengukur besarnya variabel bebas yang tidak dijelaskan oleh variabel lain. Jika nilai Tolerance > 0.1, maka tidak ada multikolinearitas. Sederhananya, apabila VIF-Invers kecil (≤ 0.1), maka terjadi masalah multikolinearitas.

Berdasarkan hasil uji multikolinearitas, nilai VIF-Invers yang dihasilkan yaitu 0.947355. Karena VIF-Invers (0.947355) > 0.1, maka tidak terdapat multikolinearitas antar variabel bebas.

Uji Autokorelasi

# Uji Autokorelasi - Durbin Watson
(dw <- dwtest(model, alternative = "two.sided"))
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 2.594, p-value = 0.3974
## alternative hypothesis: true autocorrelation is not 0

Hipotesis:

H0 : Tidak ada autokorelasi

H1 : Terdapat Autokorelasi

Kriteria Keputusan:

Jika p-value < 0.05, maka H0 ditolak

Interpretasi:

Berdasarkan hasil uji autokorelasi, nilai Durbin Watson (DW) yaitu 2.594 dan p-value = 0.3974. Karena p-value (0.3974) > 0.05, maka hasil keputusan adalah Gagal menolak H0. Artinya tidak terdapat autokorelasi pada residual, sehingga model memenuhi uji asumsi klasik.