(Uji Hipotesis, Ukuran Kecocokan Model, dan Uji Asumsi)
Berikut adalah package yang dipakai:
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.2
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
library(knitr)
## Warning: package 'knitr' was built under R version 4.4.3
Diberikan data tentang IQ dan tingkat kehadiran sepuluh siswa di kelas yang diperkirakan mempengaruhi nilai UAS.
IQ_X2 <- c(110,120,115,130,110,120,120,125,110,120)
Tingkat_Kehadiran_X1 <- c(60,70,75,80,80,90,95,95,100,100)
Nilai_UAS_Y <- c(65,70,75,75,80,80,85,95,90,98)
df <- data.frame(IQ_X2, Tingkat_Kehadiran_X1, Nilai_UAS_Y)
df
## IQ_X2 Tingkat_Kehadiran_X1 Nilai_UAS_Y
## 1 110 60 65
## 2 120 70 70
## 3 115 75 75
## 4 130 80 75
## 5 110 80 80
## 6 120 90 80
## 7 120 95 85
## 8 125 95 95
## 9 110 100 90
## 10 120 100 98
model <- lm(Nilai_UAS_Y ~ Tingkat_Kehadiran_X1 + IQ_X2, data = df)
Analisis regresi linier berganda digunakan untuk mengetahui hubungan antara variabel independen, yaitu tingkat kehadiran (X1) dan IQ (X2), terhadap variabel dependen yaitu Nilai UAS (Y).
Berdasarkan data yang telah diberikan, berikut adalah soal & penyelesaian dari permasalahan yang diajukan:
Model regresi linier berganda yang digunakan adalah:
\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 \]
dengan:
X <- cbind(1, Tingkat_Kehadiran_X1, IQ_X2)
Y <- matrix(Nilai_UAS_Y, ncol = 1)
Menghitung Komponen Matriks
Untuk memperoleh koefisien regresi secara manual, terlebih dahulu dihitung komponen matriks sebagai berikut:
\[ X^T X \quad \text{dan} \quad X^T Y \]
dengan:
XtX <- t(X) %*% X
XtY <- t(X) %*% Y
Koefisien regresi dihitung menggunakan metode matriks dengan rumus:
\[ \hat{\beta} = (X^T X)^{-1} X^T Y \]
Perhitungan dilakukan sebagai berikut:
beta_manual <- solve(XtX) %*% XtY
beta_manual
## [,1]
## 23.0544545
## Tingkat_Kehadiran_X1 0.7372330
## IQ_X2 -0.0343275
Menampilkan persamaan regresi manual :
cat("Ŷ =", beta_manual[1],
"+", beta_manual[2], "X1",
"-", abs(beta_manual[3]), "X2\n")
## Ŷ = 23.05445 + 0.737233 X1 - 0.0343275 X2
data <- data.frame(Nilai_UAS_Y, Tingkat_Kehadiran_X1, IQ_X2)
model <- lm(Nilai_UAS_Y ~ Tingkat_Kehadiran_X1 + IQ_X2, data = data)
Mengambil koefisien dari lm
beta_lm <- coef(model)
beta_lm
## (Intercept) Tingkat_Kehadiran_X1 IQ_X2
## 23.0544545 0.7372330 -0.0343275
Menampilkan persamaan regresi lm
cat("Ŷ =", beta_lm[1],
"+", beta_lm[2], "X1",
"-", abs(beta_lm[3]), "X2\n")
## Ŷ = 23.05445 + 0.737233 X1 - 0.0343275 X2
perbandingan <- data.frame(
Metode = c("Manual", "lm"),
Intercept = c(beta_manual[1], beta_lm[1]),
X1 = c(beta_manual[2], beta_lm[2]),
X2 = c(beta_manual[3], beta_lm[3])
)
perbandingan
## Metode Intercept X1 X2
## Manual 23.05445 0.737233 -0.0343275
## (Intercept) lm 23.05445 0.737233 -0.0343275
Berdasarkan hasil perbandingan, diperoleh bahwa nilai koefisien regresi yang dihitung secara manual dan menggunakan fungsi lm() menghasilkan nilai yang sama, yaitu:
Hal ini menandakan bahwa perhitungan manual yang dilakukan sudah tepat, karena hasilnya sama dengan yang diperoleh dari fungsi lm() pada R.
Kesamaan hasil tersebut terjadi karena kedua metode menggunakan pendekatan yang sama, yaitu Ordinary Least Squares (OLS). Metode ini digunakan untuk menentukan nilai koefisien regresi dengan cara meminimalkan jumlah kuadrat selisih antara nilai aktual Y (Nilai UAS) dan nilai prediksi \(\hat{Y}\) yang dihasilkan oleh model regresi.
Karena kedua metode menggunakan dasar perhitungan yang sama, maka koefisien regresi yang dihasilkan juga akan sama. Hal ini menunjukkan bahwa perhitungan manual yang dilakukan telah sesuai dengan teori regresi linier berganda.
Uji F digunakan untuk mengetahui apakah variabel independen secara simultan berpengaruh terhadap variabel dependen.
Hipotesis:
# Menentukan jumlah data dan variabel
n <- length(Nilai_UAS_Y)
k <- 2
# Menghitung nilai prediksi dan residual
Y_pred <- X %*% beta_manual
res <- Y - Y_pred
# Menghitung SST, SSR, dan SSE
SST <- sum((Y - mean(Y))^2)
SSR <- sum((Y_pred - mean(Y))^2)
SSE <- sum(res^2)
# Menghitung MSR dan MSE
MSR <- SSR / k
MSE <- SSE / (n - k - 1)
# Menghitung F hitung dan p-value
F_hitung <- MSR / MSE
p_value <- pf(F_hitung, k, n-k-1, lower.tail = FALSE)
F_hitung
## [1] 23.82303
p_value
## [1] 0.0007522929
Berdasarkan hasil uji F, diperoleh nilai F hitung sebesar 23,82 dengan p-value sebesar 0,0008. Karena nilai p-value < 0,05, maka H0 ditolak.
Hal ini menunjukkan bahwa secara simultan variabel Kehadiran (X1) dan IQ (X2) berpengaruh signifikan terhadap Nilai UAS (Y).
Nilai F hitung yang cukup besar menunjukkan bahwa variasi yang dapat dijelaskan oleh model (SSR) lebih besar dibandingkan variasi yang disebabkan oleh error (SSE). Artinya, model regresi memiliki kemampuan yang baik dalam menjelaskan hubungan antara variabel.
Dengan demikian, dapat disimpulkan bahwa secara bersama-sama variabel Kehadiran (X1) dan IQ (X2) berpengaruh signifikan terhadap Nilai UAS (Y), sehingga model regresi yang digunakan sudah layak digunakan untuk menjelaskan hubungan antar variabel.
Uji t digunakan untuk mengetahui pengaruh masing-masing variabel independen secara parsial terhadap variabel dependen.
Hipotesis:
# Menghitung residual
Y_pred <- X %*% beta_manual
res <- Y - Y_pred
# Menghitung SSE dan MSE
SSE <- sum(res^2)
MSE <- SSE / (n - k - 1)
# Menghitung varians dan standar error beta
var_beta <- MSE * solve(t(X) %*% X)
se_beta <- sqrt(diag(var_beta))
# Menghitung t hitung dan p-value
t_hitung <- beta_manual / se_beta
p_value_t <- 2 * pt(-abs(t_hitung), df = n-k-1)
# Menampilkan hasil uji t
hasil_t <- data.frame(
Koefisien = c("Intercept", "Kehadiran (X1)", "IQ (X2)"),
t_hitung = (t_hitung),
p_value = (p_value_t)
)
hasil_t
## Koefisien t_hitung p_value
## Intercept 0.9015644 0.3972467061
## Tingkat_Kehadiran_X1 Kehadiran (X1) 6.7524718 0.0002644133
## IQ_X2 IQ (X2) -0.1556715 0.8806860631
Berdasarkan hasil uji t diperoleh bahwa :
Untuk variabel Kehadiran (X1), karena nilai p-value (0,0003) < 0,05, maka H0 ditolak. Hal ini menunjukkan bahwa secara parsial variabel Kehadiran (X1) berpengaruh signifikan terhadap Nilai UAS (Y).
Untuk variabel IQ (X2), karena nilai p-value (0,8807) > 0,05, maka H0 tidak ditolak. Hal ini menunjukkan bahwa secara parsial variabel IQ (X2) tidak berpengaruh signifikan terhadap Nilai UAS (Y).
Sementara itu, nilai p-value untuk Intercept sebesar 0,3972 > 0,05, yang menunjukkan bahwa konstanta tidak signifikan secara statistik.
Dengan demikian, dapat disimpulkan bahwa secara parsial hanya variabel Kehadiran (X1) yang berpengaruh signifikan terhadap Nilai UAS (Y), sedangkan variabel IQ (X2) tidak berpengaruh signifikan.
Koefisien determinasi digunakan untuk mengukur seberapa besar kemampuan variabel independen dalam menjelaskan variasi variabel dependen.
# Menghitung kembali komponen
Y_pred <- X %*% beta_manual
res <- Y - Y_pred
SST <- sum((Y - mean(Y))^2)
SSR <- sum((Y_pred - mean(Y))^2)
SSE <- sum(res^2)
n <- length(Nilai_UAS_Y)
k <- 2
# Menghitung R-squared
R2 <- SSR / SST
# Menghitung Adjusted R-squared
Adj_R2 <- 1 - ((SSE/(n - k - 1)) / (SST/(n - 1)))
R2
## [1] 0.8719029
Adj_R2
## [1] 0.8353038
Berdasarkan hasil perhitungan, diperoleh nilai R-squared sebesar 0,8719 dan Adjusted R-squared sebesar 0,8353.
Nilai tersebut menunjukkan bahwa 87,19% variasi Nilai UAS (Y) dapat dijelaskan oleh variabel Kehadiran (X1) dan IQ (X2) dalam model regresi, sedangkan 12,81% sisanya dijelaskan oleh faktor lain di luar model yang tidak dimasukkan dalam penelitian ini.
Nilai R-squared yang cukup tinggi menunjukkan bahwa model regresi memiliki kemampuan yang baik dalam menjelaskan hubungan antara variabel independen dan variabel dependen.
Sementara itu, Adjusted R-squared memiliki nilai yang sedikit lebih kecil karena telah disesuaikan dengan jumlah variabel independen dalam model, sehingga memberikan ukuran yang lebih akurat dalam menilai kemampuan model.
Dengan demikian, model regresi linier berganda yang digunakan dapat dikatakan cukup baik dalam menjelaskan variasi Nilai UAS (Y).
Uji asumsi klasik dilakukan untuk memastikan bahwa model regresi yang digunakan memenuhi asumsi dasar sehingga hasil analisis dapat dipercaya.
Uji normalitas digunakan untuk mengetahui apakah residual dalam model regresi berdistribusi normal.
shapiro_test <- shapiro.test(res)
shapiro_test
##
## Shapiro-Wilk normality test
##
## data: res
## W = 0.95125, p-value = 0.6833
Interpretasi
Berdasarkan hasil uji Shapiro-Wilk diperoleh nilai p-value sebesar 0,6833 (> 0,05), maka H0 tidak ditolak. Hal ini menunjukkan bahwa residual berdistribusi normal, sehingga asumsi normalitas pada model regresi telah terpenuhi.
Nilai p-value yang cukup besar menunjukkan bahwa penyimpangan residual dari distribusi normal sangat kecil, sehingga secara statistik tidak signifikan.
Uji multikolinearitas digunakan untuk mengetahui apakah terdapat korelasi yang kuat antar variabel independen.
vif_model <- vif(model)
vif_model
## Tingkat_Kehadiran_X1 IQ_X2
## 1.055571 1.055571
Interpretasi
Berdasarkan hasil perhitungan Variance Inflation Factor (VIF), diperoleh nilai VIF untuk masing-masing variabel sebesar 1,055571 (< 10). Hal ini menunjukkan bahwa tidak terjadi multikolinearitas antar variabel independen dalam model regresi.
Nilai VIF yang mendekati 1 menunjukkan bahwa variabel independen tidak memiliki korelasi yang kuat satu sama lain, sehingga tidak menimbulkan masalah dalam estimasi koefisien regresi.
Uji heteroskedastisitas digunakan untuk mengetahui apakah varians residual bersifat konstan.
bp_test <- bptest(model)
bp_test
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 5.905, df = 2, p-value = 0.05221
Interpretasi
Berdasarkan hasil uji Breusch-Pagan diperoleh nilai p-value sebesar 0,05221 (> 0,05), maka H0 tidak ditolak. Hal ini menunjukkan bahwa tidak terdapat gejala heteroskedastisitas, sehingga varians residual bersifat konstan (homoskedastis).
Nilai p-value yang lebih besar dari 0,05 menunjukkan bahwa variasi residual tidak berubah secara signifikan terhadap variabel independen, sehingga model memenuhi asumsi homoskedastisitas.
Uji autokorelasi digunakan untuk mengetahui apakah terdapat korelasi antar residual.
dw_test <- dwtest(model)
dw_test
##
## Durbin-Watson test
##
## data: model
## DW = 2.594, p-value = 0.8013
## alternative hypothesis: true autocorrelation is greater than 0
Interpretasi
Berdasarkan hasil uji Durbin-Watson diperoleh nilai statistik DW sebesar 2,59 dengan p-value sebesar 0,8013 (> 0,05), maka H0 tidak ditolak. Hal ini menunjukkan bahwa tidak terdapat autokorelasi pada residual.
Selain itu, nilai DW yang mendekati 2 menunjukkan bahwa residual bersifat independen atau tidak saling berkorelasi, sehingga asumsi independensi residual pada model regresi telah terpenuhi.
Berdasarkan hasil analisis yang telah dilakukan, model regresi linier berganda yang diperoleh signifikan secara simultan berdasarkan uji F. Secara parsial, hasil uji t menunjukkan bahwa variabel Kehadiran (X1) berpengaruh signifikan terhadap Nilai UAS (Y), sedangkan variabel IQ (X2) tidak berpengaruh signifikan.
Nilai koefisien determinasi menunjukkan bahwa sebagian besar variasi Nilai UAS dapat dijelaskan oleh variabel dalam model. Selain itu, hasil uji asumsi klasik menunjukkan bahwa model telah memenuhi asumsi normalitas, tidak terjadi multikolinearitas, tidak terjadi heteroskedastisitas, dan tidak terdapat autokorelasi.
Dengan demikian, model regresi yang digunakan layak digunakan untuk menjelaskan pengaruh variabel Kehadiran (X1) dan IQ (X2) terhadap Nilai UAS (Y).