Diberikan data tentang IQ dan tingkat kehadiran sepuluh siswa di kelas yang diperkirakan mempengaruhi nilai UAS.
# Input Data
X1 <- c(60,70,75,80,80,90,95,95,100,100) # Kehadiran
X2 <- c(110,120,115,130,110,120,120,125,110,120) # IQ
Y <- c(65,70,75,75,80,80,85,95,90,98) # Nilai UAS
X <- cbind(1, X1, X2)
beta_manual <- solve(t(X) %*% X) %*% t(X) %*% Y
cat("Hasil Koefisien Manual:\n")
## Hasil Koefisien Manual:
print(beta_manual)
## [,1]
## 23.0544545
## X1 0.7372330
## X2 -0.0343275
model_lm <- lm(Y ~ X1 + X2)
cat("\nHasil Koefisien (Fungsi lm):\n")
##
## Hasil Koefisien (Fungsi lm):
print(coef(model_lm))
## (Intercept) X1 X2
## 23.0544545 0.7372330 -0.0343275
Berdasarkan hasil perhitungan diperoleh persamaan regresi linier berganda sebagai berikut:
\[Y = 23.054 + 0.737 X_1 - 0.034 X_2\]
Jika variabel Tingkat Kehadiran (\(X_1\)) dan IQ (\(X_2\)) bernilai nol, maka nilai UAS (\(Y\)) diprediksi sebesar 23.054. Angka ini merupakan nilai intercept atau konstanta awal dalam model.
Nilai positif ini menunjukkan hubungan yang searah. Setiap kenaikan 1% Tingkat Kehadiran, maka Nilai UAS diprediksi akan meningkat sebesar 0.737 poin (dengan asumsi IQ tetap).
Nilai negatif ini menunjukkan hubungan yang berlawanan arah. Setiap kenaikan 1 poin IQ, maka Nilai UAS diprediksi akan menurun sebesar 0.034 poin (dengan asumsi tingkat kehadiran tetap). Namun, karena nilainya sangat mendekati nol, pengaruh ini tergolong sangat kecil.
Y_hat <- predict(model_lm)
res <- residuals(model_lm)
tabel_hasil <- data.frame(Aktual=Y, Prediksi=round(Y_hat,2), Residual=round(res,2))
cat("\nTabel Prediksi dan Residual:\n")
##
## Tabel Prediksi dan Residual:
print(tabel_hasil)
## Aktual Prediksi Residual
## 1 65 63.51 1.49
## 2 70 70.54 -0.54
## 3 75 74.40 0.60
## 4 75 77.57 -2.57
## 5 80 78.26 1.74
## 6 80 85.29 -5.29
## 7 85 88.97 -3.97
## 8 95 88.80 6.20
## 9 90 93.00 -3.00
## 10 98 92.66 5.34
Tabel di atas menunjukkan perbandingan antara nilai UAS aktual dengan nilai yang diprediksi oleh model regresi. Selisih antara keduanya (Residual) menunjukkan tingkat kesalahan prediksi. Secara keseluruhan, nilai residual yang relatif kecil menunjukkan bahwa model mampu memprediksi nilai UAS dengan cukup akurat berdasarkan variabel Tingkat Kehadiran (\(X_1\)) dan IQ (\(X_2\)).
n <- length(Y) # jumlah observasi (n)
k <- 2 # jumlah variabel independen (k)
Y_bar <- mean(Y)
SSR <- sum((predict(model_lm) - Y_bar)^2)
SSE <- sum(residuals(model_lm)^2)
MSR <- SSR / k
MSE <- SSE / (n - k - 1)
F_manual <- MSR / MSE
F_tabel <- qf(0.05, k, (n - k - 1), lower.tail = FALSE)
p_value <- pf(F_manual, k, (n - k - 1), lower.tail = FALSE)
cat("Hasil Perhitungan Manual:\n")
## Hasil Perhitungan Manual:
cat("F hitung:", F_manual, "\n")
## F hitung: 23.82303
cat("F-Tabel :", F_tabel, "\n")
## F-Tabel : 4.737414
cat("p-value :", p_value, "\n")
## p-value : 0.0007522929
f_stat <- summary(model_lm)$fstatistic
f_tabel<- qf(0.05, f_stat[2], f_stat[3], lower.tail = FALSE)
p_val <- pf(f_stat[1], f_stat[2], f_stat[3], lower.tail = FALSE)
cat("\nHasil Verifikasi Fungsi R:\n")
##
## Hasil Verifikasi Fungsi R:
cat("F-Hitung :", f_stat[1], "\n")
## F-Hitung : 23.82303
cat("F-Tabel :", f_tabel, "\n")
## F-Tabel : 4.737414
cat("p-value :", p_val, "\n")
## p-value : 0.0007522929
Uji F dilakukan untuk mengetahui apakah variabel bebas secara bersama-sama memiliki pengaruh terhadap variabel terikat. Berdasarkan hasil perhitungan, diperoleh hasil pengujian sebagai berikut:
Karena F-Hitung 23.823 > F-Tabel 4.737 dan \(p\)-value 0.000752 < 0.05, maka Hipotesis Nol (\(H_0\)) ditolak. Ini menunjukkan bahwa variabel Tingkat Kehadiran (\(X_1\)) dan IQ (\(X_2\)) secara simultan (bersama-sama) berpengaruh signifikan terhadap Nilai UAS (\(Y\)). Dengan demikian, model regresi ini dinyatakan sangat layak untuk digunakan.
df <- n - k - 1
MSE <- sum((Y - (X %*% beta_manual))^2) / df
se_beta <- sqrt(diag(MSE * solve(t(X) %*% X)))
t_manual <- beta_manual / se_beta
t_tabel <- qt(0.05/2, df, lower.tail = FALSE) #
cat("\nHasil Uji t Manual:\n")
##
## Hasil Uji t Manual:
print(data.frame(beta_manual, se_beta, t_manual))
## beta_manual se_beta t_manual
## 23.0544545 25.5716101 0.9015644
## X1 0.7372330 0.1091797 6.7524718
## X2 -0.0343275 0.2205125 -0.1556715
cat("\nNilai t-Tabel (0.025; 7):", t_tabel, "\n")
##
## Nilai t-Tabel (0.025; 7): 2.364624
t_stat <- summary(model_lm)$coefficients
cat("\nHasil Uji t (Fungsi lm):\n")
##
## Hasil Uji t (Fungsi lm):
print(t_stat)
## 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
cat("\nNilai t-Tabel (0.025; 7):", t_tabel, "\n")
##
## Nilai t-Tabel (0.025; 7): 2.364624
Uji t dilakukan untuk mengetahui pengaruh masing-masing variabel bebas secara parsial terhadap variabel terikat. Berdasarkan hasil uji t dengan taraf signifikansi 5% (α = 0,05) dan t-tabel 2.3646, diperoleh bahwa nilai p-value untuk masing-masing variabel berbeda.
Variabel Tingkat Kehadiran (X₁): Memiliki nilai \(t\)-hitung 6.7525 > \(t\)-tabel 2.3646 dan \(p\)-value 0.000264 < 0.05. Artinya, Kehadiran berpengaruh signifikan terhadap Nilai UAS.
Variabel IQ (X₂): Memiliki nilai \(t\)-hitung -0.1549 < \(t\)-tabel 2.3646 dan \(p\)-value 0.8807 > 0.05. Artinya, IQ tidak berpengaruh signifikan terhadap Nilai UAS.
Meskipun secara simultan model regresi dinyatakan valid, hasil uji t menunjukkan bahwa tidak semua variabel bebas berpengaruh secara parsial. Dalam model ini, hanya variabel kehadiran yang berpengaruh signifikan terhadap nilai UAS, sedangkan variabel IQ tidak menunjukkan pengaruh yang signifikan. Hal ini mengindikasikan bahwa variasi nilai UAS dalam data lebih banyak dijelaskan oleh tingkat kehadiran dibandingkan IQ.
SST <- sum((Y - mean(Y))^2)
R2_manual <- SSR / SST
cat("Hasil R-Square (Manual):", R2_manual, "\n")
## Hasil R-Square (Manual): 0.8719029
summary_model <- summary(model_lm)
cat("R-Square (R) :", summary_model$r.squared, "\n")
## R-Square (R) : 0.8719029
cat("Adjusted R-Square :", summary_model$adj.r.squared, "\n")
## Adjusted R-Square : 0.8353038
Koefisien determinasi digunakan untuk mengukur seberapa besar kemampuan variabel bebas dalam menjelaskan variasi pada variabel terikat.Berdasarkan hasil perhitungan diperoleh nilai sebagai berikut:
Nilai \(R^2\) sebesar 0.8719 menunjukkan bahwa 87.19% variasi Nilai UAS (\(Y\)) dapat dijelaskan oleh variabel Tingkat Kehadiran (\(X_1\)) dan IQ (\(X_2\)). Sisanya sebesar 12.81% dipengaruhi oleh faktor-faktor lain di luar model penelitian ini.
Nilai Adjusted \(R^2\) yang tetap tinggi 0.8353 mengindikasikan bahwa model ini sangat kuat dan akurat karena tetap memberikan kontribusi penjelasan yang besar meskipun telah mempertimbangkan jumlah variabel independen yang digunakan.
# Uji Normalitas Residual
shapiro.test(residuals(model_lm))
##
## Shapiro-Wilk normality test
##
## data: residuals(model_lm)
## W = 0.95125, p-value = 0.6833
# Visualisasi Normalitas
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
qqPlot(model_lm,
main="Normal Q-Q Plot",
col="steelblue",
pch=16,
id=list(n=3))
## [1] 6 8 10
Uji ini dilakukan untuk mengetahui apakah residual model berdistribusi normal
# Uji Homoskedastisitas
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
bptest(model_lm)
##
## studentized Breusch-Pagan test
##
## data: model_lm
## BP = 5.905, df = 2, p-value = 0.05221
# Visualisasi Sebaran Residual
plot(model_lm,
main="Residuals vs Fitted Plot",
which=1,
col="steelblue",
pch=16)
Uji ini bertujuan untuk melihat apakah varians residual bersifat konstan (homoskedastis).
# Menghitung VIF dan Korelasi antar X
vif(model_lm)
## X1 X2
## 1.055571 1.055571
cor(X1, X2)
## [1] 0.229445
Uji ini dilakukan untuk mendeteksi adanya hubungan linier yang kuat antar variabel independen (\(X_1\) dan \(X_2\)).
Berdasarkan seluruh rangkaian analisis regresi linier berganda yang telah dilakukan, dapat disimpulkan bahwa:
Model Regresi: Hubungan antara variabel dinyatakan dalam persamaan \(Y = 23.054 + 0.737 X_1 - 0.034 X_2\). Persamaan ini menunjukkan arah pengaruh yang berbeda antara kedua variabel independen.
Kontribusi Variabel: Dari hasil uji t, ditemukan bahwa Tingkat Kehadiran (\(X_1\)) merupakan faktor dominan yang berpengaruh signifikan terhadap Nilai UAS, sedangkan IQ (\(X_2\)) tidak memiliki pengaruh yang signifikan secara statistik dalam model ini.
Kualitas Model: Model memiliki tingkat akurasi yang sangat baik dengan nilai \(R^2 = 87.19\%\). Hal ini berarti variasi pada Nilai UAS dapat dijelaskan dengan sangat baik oleh variabel Kehadiran dan IQ secara bersama-sama.
Kelayakan Model: Seluruh uji asumsi klasik (Normalitas, Homoskedastisitas, dan Multikolinieritas) telah terpenuhi, sehingga model ini dinyatakan valid, tidak bias (BLUE), dan layak digunakan untuk keperluan prediksi maupun pengambilan keputusan statistik.