Studi Kasus Regresi Linier Berganda: Pengaruh IQ dan Tingkat Kehadiran Siswa Terhadap Nilai UAS

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

setwd("D:/KULIAH/SEMESTER 4/MATKUL/PENGANTAR MODEL LINEAR")

library(readxl)

data_IQ <- read_xlsx("D:/KULIAH/SEMESTER 4/MATKUL/PENGANTAR MODEL LINEAR/data_IQ.xlsx")
DT::datatable(data_IQ)

1. Persamaan Regresi Linier Berganda

Buatlah persamaan regresi linier berganda! (hitung beta duga secara manual di R dan bandingkan dengan fungsi lm)

# A. Perhitungan Manual
library(readxl)
data_IQ <- read_excel("D:/KULIAH/SEMESTER 4/MATKUL/PENGANTAR MODEL LINEAR/data_IQ.xlsx")

Y <- as.matrix(data_IQ$`Nilai UAS (Y)`) 
X1 <- data_IQ$`Tingkat kehadiran (X1)`
X2 <- data_IQ$`IQ (X2)`
n <- length(Y)

X <- cbind(1, X1, X2) 

XtX <- t(X) %*% X
XtX_inv <- solve(XtX)
XtY <- t(X) %*% Y
beta_manual <- XtX_inv %*% XtY
beta_manual
##          [,1]
##    23.0544545
## X1  0.7372330
## X2 -0.0343275

Pada perhitungan manual digunakan metode Ordinary Least Squares (OLS) dan didapatkan nilai koefisien β₀ = 23.0545, β₁ = 0.7372, dan β₂ = -0.0343.

# B.Fungsi lm
model <- lm(`Nilai UAS (Y)` ~ `Tingkat kehadiran (X1)` + `IQ (X2)`, data = data_IQ)
summary(model)
## 
## Call:
## lm(formula = `Nilai UAS (Y)` ~ `Tingkat kehadiran (X1)` + `IQ (X2)`, 
##     data = data_IQ)
## 
## 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    
## `Tingkat kehadiran (X1)`  0.73723    0.10918   6.752 0.000264 ***
## `IQ (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

Berdasarkan hasil estimasi menggunakan fungsi lm(), diperoleh nilai koefisien regresi yang sama dengan hasil perhitungan manual, yaitu β₀ = 23.0545, β₁ = 0.7372, dan β₂ = -0.0343.

# C. Perbandingan
cbind(beta_manual, summary(model))
##    [,1]       [,2]                                                  
##    23.05445   expression                                            
## X1 0.737233   `Nilai UAS (Y)` ~ `Tingkat kehadiran (X1)` + `IQ (X2)`
## X2 -0.0343275 numeric,10

Berdasarkan hasil perhitungan manual dan menggunakan fungsi lm(), diperoleh persamaan regresi dengan nilai koefisien yang sama, yaitu β₀ = 23.0545, β₁ = 0.7372, dan β₂ = -0.0343 dimana nilai koefisien β₁ menunjukkan bahwa setiap peningkatan satu satuan tingkat kehadiran (X1) akan meningkatkan nilai UAS sebesar 0.7372. Sementara itu, koefisien β₂ menunjukkan bahwa variabel IQ (X2) memiliki pengaruh negatif yang sangat kecil terhadap nilai UAS. Dengan demikian, dapat disimpulkan bahwa hasil perhitungan manual yang dilakukan telah sesuai dengan hasil yang didapatkan menggunakan fungsi lm(), sehingga perhitungan tersebut dinyatakan benar.

2. Uji Simultan (Uji F)

Pada tahap ini dilakukan uji F untuk mengetahui apakah variabel independen secara bersama-sama berpengaruh terhadap variabel dependen.

# A. Manual
# Prediksi
Y_hat <- X %*% beta_manual
residuals <- Y - Y_hat
# Hitung SST, SSR, SSE
mean_y <- mean(Y)
SST <- sum((Y - mean_y)^2)
SSR <- sum((Y_hat - mean_y)^2)
SSE <- sum((Y - Y_hat)^2)
# Derajat bebas
n <- length(Y)
k <- 2
df_reg <- k
df_err <- n - k - 1
# Mean square
MSR <- SSR / df_reg
MSE <- SSE / df_err
# F hitung
F_value <- MSR / MSE
p_value_F <- pf(F_value, df_reg, df_err, lower.tail = FALSE)
F_value
## [1] 23.82303
p_value_F
## [1] 0.0007522929
# B. Menggunakan Fungsi
summary(model)
## 
## Call:
## lm(formula = `Nilai UAS (Y)` ~ `Tingkat kehadiran (X1)` + `IQ (X2)`, 
##     data = data_IQ)
## 
## 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    
## `Tingkat kehadiran (X1)`  0.73723    0.10918   6.752 0.000264 ***
## `IQ (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

Berdasarkan hasil perhitungan secara manual dan menggunakan fungsi summary(model) diperoleh nilai F dan p-value yang sama, dengan nilai F hitung sebesar 23.82303 dengan p-value sebesar 0.0007522929. Karena nilai p-value lebih kecil dari 0.05, maka H₀ ditolak. Hal ini menunjukkan bahwa variabel tingkat kehadiran (X₁) dan IQ (X₂) secara simultan berpengaruh signifikan terhadap nilai UAS. Dengan demikian, model regresi yang terbentuk dapat dinyatakan signifikan dan layak digunakan untuk menjelaskan hubungan antara variabel independen dan variabel dependen.

3. Uji Parsial (Uji t)

Pada tahap ini dilakukan uji t untuk mengetahui pengaruh masing-masing variabel independen terhadap variabel dependen secara parsial.

# A. Manual
sigma2 <- SSE / df_err
var_beta <- sigma2 * solve(t(X) %*% X)

t_manual <- beta_manual / sqrt(diag(var_beta))
t_manual
##          [,1]
##     0.9015644
## X1  6.7524718
## X2 -0.1556715
# B. Menggunakan Fungsi
summary(model)$coefficients
##                            Estimate Std. Error    t value     Pr(>|t|)
## (Intercept)              23.0544545 25.5716101  0.9015644 0.3972467061
## `Tingkat kehadiran (X1)`  0.7372330  0.1091797  6.7524718 0.0002644133
## `IQ (X2)`                -0.0343275  0.2205125 -0.1556715 0.8806860631

Berdasarkan hasil perhitungan secara manual dan menggunakan fungsi summary(model)$coefficients, diperoleh nilai t hitung yang konsisten untuk masing-masing variabel. Untuk variabel tingkat kehadiran (X1), didapatkan nilai t hitung sebesar 6.7524718 dengan p-value sebesar 0.0002644133. Karena nilai p-value lebih kecil dari 0.05, maka H₀ ditolak. Artinya terdapat pengaruh signifikan antara variabel tingkat kehadiran dengan nilai UAS. Kemudian, untuk variabel IQ (X2) diperoleh nilai t hitung sebesar -0.1556715 dengan p-value sebesar 0.8806860631. Karena nilai p-value lebih besar dari 0.05, maka H₀ gagal ditolak. Artinya tidak terdapat pengaruh signifikan antara variabel IQ dengan nilai UAS. Sehingga dapat disimpulkan bahwa hanya variabel tingkat kehadiran yang berpengaruh signifikan terhadap nilai UAS, sedangkan variabel IQ tidak berpengaruh signifikan secara parsial.

4. Koefisien Determinasi (R^2)

pada tahap keempat dilakukan perhitungan koefisien determinasi yang berguna untuk mengukur seberapa baik model regresi dapat menjelaskan data.

# Manual
R2_manual <- SSR / SST
R2_manual
## [1] 0.8719029
# Menggunakan Fungsi
summary(model)$r.squared
## [1] 0.8719029

Berdasarkan perhitungan secara manual dan menggunakan fungsi summary(model)$r.squared, diperoleh nilai koefisien determinasi yang sama, yaitu 0.8719029. Nilai yang didapatkan tersebut menunjukkan bahwa sebesar 87.19% variasi pada nilai UAS dapat dijelaskan oleh variabel tingkat kehadiran (X1) dan IQ (X2) dalam model regresi. Sedangkan sisanya yaitu sebesar 12.81% dijelaskan oleh faktor lain di luar model yang dimasukkan. Sehingga dapat disimpulkan bahwa model regregi yang digunakan memiliki kemampuan yang baik dalam menjelaskan hubungan antara variabel independen dan variabel dependen.

5. Uji Asumsi Regresi Linier

Pada tahap ini dilakukan pengujian asumsi yang meliputi uji normalitas, heteroskedastisitas, autokorelasi, dan multikolinearitas.

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

Berdasarkan perhitungan uji Shapiro-Wilk, diperoleh nilai p-value sebesar 0.6833. Karena nilai p-value lebih besar dari 0.05, maka H₀ tidak ditolak. Artinya residual berdistribusi normal, sehingga asumsi normalitas terpenuhi.

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

Berdasarkan perhitungan uji Breusch-Pagan, diperoleh nilai p-value sebesar 0.05221. Karena nilai p-value lebih besar dari 0.05, maka H₀ tidak ditolak. Artinya tidak terdapat gejala heteroskedastisitas, sehingga varians residual bersifat homogen (homoskedastisitas).

# Autokorelasi
dwtest(model)
## 
##  Durbin-Watson test
## 
## data:  model
## DW = 2.594, p-value = 0.8013
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan perhitungan uji Durbin-Watson, diperoleh nilai p-value sebesar 0.8013. Karena nilai p-value lebih besar dari 0.05, maka H₀ tidak ditolak. Artinya tidak terdapat autokorelasi pada residual model.

# Multikolinearitas
library(car)
vif(model)
## `Tingkat kehadiran (X1)`                `IQ (X2)` 
##                 1.055571                 1.055571

Berdasarkan perhitungan uji Multikolinearitas, didapatkan nilai Variance Inflation (VIF) sebesar 1.055571. Karena nilai VIF lebih kecil dari 10, maka dapat disimpulkan bahwa tidak terjadi multikolinearitas antar variabel independen.