packages <- c("car", "lmtest", "ggplot2", "corrplot", "scatterplot3d", "effects")
installed <- packages %in% installed.packages()
if(any(!installed)){
install.packages(packages[!installed])
}
library(car)
library(lmtest)
library(ggplot2)
library(corrplot)
library(scatterplot3d)
library(effects)
Siswa <- 1:10
X1_Kehadiran <- c(60, 70, 75, 80, 80, 90, 95, 95, 100, 100)
X2_IQ <- c(110, 120, 115, 130, 110, 120, 120, 125, 110, 120)
Y_UAS <- c(65, 70, 75, 75, 80, 80, 85, 95, 90, 98)
data_latihan <- data.frame(Siswa, X1_Kehadiran, X2_IQ, Y_UAS)
korelasi <- cor(data_latihan[, c("Y_UAS", "X1_Kehadiran", "X2_IQ")])
corrplot(korelasi, method = "number", type = "upper",
tl.col = "black", tl.srt = 45)
Insight:
Insight awal menunjukkan bahwa hubungan antara kehadiran dan nilai UAS bersifat kuat dan cenderung linear. Artinya, peningkatan kehadiran hampir selalu diikuti peningkatan nilai.
Sebaliknya, hubungan IQ terhadap nilai terlihat tidak konsisten. Hal ini mengindikasikan bahwa IQ bukan faktor utama dalam menjelaskan variasi nilai pada dataset ini.
X <- cbind(1, X1_Kehadiran, X2_IQ)
Y <- matrix(Y_UAS, ncol = 1)
beta_manual <- solve(t(X) %*% X) %*% t(X) %*% Y
beta_manual
## [,1]
## 23.0544545
## X1_Kehadiran 0.7372330
## X2_IQ -0.0343275
model <- lm(Y_UAS ~ X1_Kehadiran + X2_IQ, data = data_latihan)
summary(model)
##
## Call:
## lm(formula = Y_UAS ~ X1_Kehadiran + X2_IQ, data = data_latihan)
##
## 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_Kehadiran 0.73723 0.10918 6.752 0.000264 ***
## X2_IQ -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
Insight:
Hasil koefisien yang diperoleh dari perhitungan manual menggunakan metode matriks identik dengan hasil dari fungsi lm().
Hal ini menunjukkan bahwa fungsi lm() pada R menggunakan pendekatan yang sama, yaitu metode Ordinary Least Squares (OLS) dalam mengestimasi parameter model.
Dengan demikian, perhitungan manual yang dilakukan telah tervalidasi kebenarannya, dan penggunaan lm() dapat dipercaya untuk analisis yang lebih kompleks dan efisien.
\[ \hat{Y} = 23.054 + 0.737X_1 + -0.034X_2 \]
Intercept sebesar 23.05 menunjukkan nilai dasar UAS ketika kehadiran dan IQ bernilai nol, meskipun secara konteks nilai ini tidak memiliki makna praktis karena kondisi tersebut tidak realistis.
Koefisien kehadiran sebesar 0.7372 menunjukkan bahwa setiap peningkatan 1 satuan kehadiran akan meningkatkan nilai UAS sebesar sekitar 0.74 poin.
Koefisien IQ sebesar -0.0343 menunjukkan bahwa setiap peningkatan 1 poin IQ justru menurunkan nilai sekitar 0.03 poin, dan pengaruh ini tidak signifikan secara statistik.
Ini menunjukkan bahwa kehadiran memiliki pengaruh yang jauh lebih kuat dibandingkan IQ dalam model ini.
f_stat <- summary(model)$fstatistic
p_value_f <- pf(f_stat[1], f_stat[2], f_stat[3], lower.tail = FALSE)
p_value_f
## value
## 0.0007522929
Insight:
Model regresi secara keseluruhan signifikan dengan p-value sebesar 0.0007523 (< 0.05) dan F-statistic sebesar 23.82.
Artinya, kombinasi variabel kehadiran dan IQ secara bersama-sama mampu menjelaskan variasi nilai UAS secara signifikan, sehingga model layak digunakan.
summary(model)$coefficients
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 23.0544545 25.5716101 0.9015644 0.3972467061
## X1_Kehadiran 0.7372330 0.1091797 6.7524718 0.0002644133
## X2_IQ -0.0343275 0.2205125 -0.1556715 0.8806860631
Insight:
Kehadiran memiliki pengaruh signifikan terhadap nilai UAS dengan koefisien sebesar 0.73723, t-value sebesar 6.752, dan p-value sebesar 0.000264.
Artinya, setiap peningkatan 1 satuan kehadiran akan meningkatkan nilai UAS sekitar 0.74 poin.
Sementara itu, IQ memiliki koefisien sebesar -0.03433 dengan t-value sebesar -0.156 dan p-value sebesar 0.8807 (> 0.05), sehingga tidak signifikan.
Hal ini menunjukkan bahwa kehadiran merupakan variabel utama yang mempengaruhi nilai, sedangkan IQ tidak memberikan kontribusi berarti dalam model.
summary(model)$r.squared
## [1] 0.8719029
summary(model)$adj.r.squared
## [1] 0.8353038
Insight:
Nilai R-squared sebesar 0.8719 menunjukkan bahwa 87.19% variasi nilai UAS dapat dijelaskan oleh model.
Adjusted R-squared sebesar 0.8353 menunjukkan bahwa model tetap stabil setelah mempertimbangkan jumlah variabel.
Hal ini menandakan bahwa model memiliki kemampuan yang sangat baik dalam menjelaskan data.
pred <- predict(model)
data_latihan$Prediksi <- pred
rmse <- sqrt(mean((Y_UAS - pred)^2))
rmse
## [1] 3.636055
Insight:
Residual standard error sebesar 4.346 menunjukkan bahwa rata-rata penyimpangan prediksi terhadap nilai aktual berada di sekitar ±4.35 poin.
Hal ini konsisten dengan nilai RMSE sebesar 3.64, yang menunjukkan bahwa model memiliki tingkat error yang relatif rendah.
ggplot(data_latihan, aes(x = Y_UAS, y = Prediksi)) +
geom_point() +
geom_abline(slope = 1, intercept = 0, color = "red") +
ggtitle("Actual vs Predicted")
Insight:
Visualisasi menunjukkan bahwa sebagian besar titik berada dekat dengan garis diagonal, yang menandakan bahwa hasil prediksi model cukup mendekati nilai aktual.
Hal ini diperkuat dengan nilai RMSE sebesar 3.64, yang menunjukkan bahwa rata-rata kesalahan prediksi relatif kecil.
Namun, masih terdapat beberapa titik yang menyimpang, yang mengindikasikan bahwa model belum sepenuhnya menangkap seluruh variasi dalam data.
shapiro.test(residuals(model))
##
## Shapiro-Wilk normality test
##
## data: residuals(model)
## W = 0.95125, p-value = 0.6833
plot(model, 2)
Insight:
Hasil uji Shapiro-Wilk menghasilkan p-value sebesar 0.6833 (> 0.05), yang menunjukkan bahwa residual berdistribusi normal.
Dengan demikian, asumsi normalitas terpenuhi dan hasil inferensi statistik seperti uji t dan uji F dapat dianggap valid.
bptest(model)
##
## studentized Breusch-Pagan test
##
## data: model
## BP = 5.905, df = 2, p-value = 0.05221
plot(model, 1)
Insight:
Hasil uji Breusch-Pagan menunjukkan p-value sebesar 0.05221 (> 0.05), yang berarti tidak terdapat indikasi heteroskedastisitas, meskipun nilainya cukup dekat dengan batas signifikansi.
Hal ini menunjukkan bahwa varians error bersifat konstan dan model tidak mengalami bias pada tingkat variabilitas tertentu.
vif(model)
## X1_Kehadiran X2_IQ
## 1.055571 1.055571
Insight:
Nilai VIF untuk kedua variabel independen sebesar 1.0556, yang sangat dekat dengan 1.
Ini menunjukkan bahwa tidak terdapat multikolinearitas antar variabel independen, sehingga model stabil dan interpretasi koefisien dapat dipercaya.
dwtest(model)
##
## Durbin-Watson test
##
## data: model
## DW = 2.594, p-value = 0.8013
## alternative hypothesis: true autocorrelation is greater than 0
Insight:
Nilai Durbin-Watson sebesar 2.594 dengan p-value sebesar 0.8013 (> 0.05), yang menunjukkan tidak adanya autokorelasi pada residual.
Hal ini berarti error bersifat independen dan model tidak bias akibat pola berurutan dalam data.
Insight Utama
Kehadiran muncul sebagai faktor paling dominan dalam menentukan nilai UAS, konsisten di seluruh analisis mulai dari korelasi hingga regresi.
IQ tidak menunjukkan pengaruh signifikan setelah kehadiran diperhitungkan, yang menunjukkan bahwa dalam dataset ini, kedisiplinan lebih berperan dibandingkan kemampuan kognitif.
Model cukup baik dalam menjelaskan variasi nilai, namun masih terdapat faktor lain yang belum dimodelkan.
Model regresi menunjukkan bahwa meningkatkan kehadiran siswa memiliki dampak yang nyata terhadap peningkatan nilai UAS.
Dalam konteks data ini, faktor perilaku seperti konsistensi hadir lebih berpengaruh dibandingkan faktor kognitif seperti IQ.
Artinya, strategi peningkatan performa akademik dapat difokuskan terlebih dahulu pada aspek kedisiplinan sebelum mempertimbangkan faktor lainnya.