Input Data

data <- data.frame(
  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_Nilai_UAS   = c(65, 70, 75, 75, 80, 80, 85, 95, 90, 98)
)

print(data)
##    Siswa X1_Kehadiran X2_IQ Y_Nilai_UAS
## 1      1           60   110          65
## 2      2           70   120          70
## 3      3           75   115          75
## 4      4           80   130          75
## 5      5           80   110          80
## 6      6           90   120          80
## 7      7           95   120          85
## 8      8           95   125          95
## 9      9          100   110          90
## 10    10          100   120          98

1. Persamaan Regresi Linier Berganda

Menghitung Beta Secara Manual

Model regresi linier berganda: Ŷ = β₀ + β₁X₁ + β₂X₂

Estimasi koefisien menggunakan rumus OLS: β̂ = (X’X)⁻¹ X’Y

Y <- as.matrix(data$Y_Nilai_UAS)
X <- cbind(1, data$X1_Kehadiran, data$X2_IQ)
colnames(X) <- c("Intercept", "X1_Kehadiran", "X2_IQ")

# Perhitungan manual
XtX      <- t(X) %*% X
XtY      <- t(X) %*% Y
beta_manual <- solve(XtX) %*% XtY

cat("Hasil beta duga (manual):\n")
## Hasil beta duga (manual):
print(beta_manual)
##                    [,1]
## Intercept    23.0544545
## X1_Kehadiran  0.7372330
## X2_IQ        -0.0343275

Perbandingan dengan Fungsi lm()

model <- lm(Y_Nilai_UAS ~ X1_Kehadiran + X2_IQ, data = data)
summary(model)
## 
## Call:
## lm(formula = Y_Nilai_UAS ~ X1_Kehadiran + X2_IQ, data = data)
## 
## 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

Hasil koefisien yang diperoleh secara manual identik dengan hasil fungsi lm(), yang artinya perhitungan manual sudah sesuai.

Persamaan Regresi

b <- coef(model)
cat(sprintf("Ŷ = %.4f + %.4f·X1 + %.4f·X2\n", b[1], b[2], b[3]))
## Ŷ = 23.0545 + 0.7372·X1 + -0.0343·X2

Interpretasi: - Setiap kenaikan 1% tingkat kehadiran, nilai UAS diprediksi naik sekitar 0.7372 poin, dengan asumsi IQ tetap. - Setiap kenaikan 1 poin IQ, nilai UAS diprediksi turun sekitar 0.0343 poin, dengan asumsi kehadiran tetap. - Nilai intercept sebesar 23.0545 adalah nilai teoritis saat X1 dan X2 bernilai nol.


2. Uji-F (Uji Simultan)

Hipotesis:

anova(model)
## Analysis of Variance Table
## 
## Response: Y_Nilai_UAS
##              Df Sum Sq Mean Sq F value    Pr(>F)    
## X1_Kehadiran  1 899.43  899.43 47.6218 0.0002312 ***
## X2_IQ         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

Interpretasi: Dari output diperoleh p-value = 0.0007523 < 0.05, sehingga H₀ ditolak. Artinya, secara simultan tingkat kehadiran (X1) dan IQ (X2) berpengaruh signifikan terhadap nilai UAS pada taraf nyata 5%.


3. Uji-t (Uji Parsial)

Hipotesis:

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

Interpretasi: X1 (Kehadiran): p-value = 0.000264 < 0.05, Tolak H₀. Tingkat kehadiran berpengaruh signifikan secara parsial terhadap nilai UAS. X2 (IQ): p-value = 0.8807 > 0.05, Gagal Tolak H₀. IQ tidak berpengaruh signifikan secara parsial terhadap nilai UAS. Kesimpulannya variabel yang paling dominan memengaruhi nilai UAS secara individual adalah tingkat kehadiran.


4. Koefisien Determinasi (R²)

r2     <- summary(model)$r.squared
r2_adj <- summary(model)$adj.r.squared
r2
## [1] 0.8719029
r2_adj
## [1] 0.8353038

Interpretasi: Nilai R² = 0.8719 menunjukkan bahwa model mampu menjelaskan 87.19% variasi nilai UAS melalui variabel kehadiran dan IQ. Sisanya sekitar 12.81% dipengaruhi oleh faktor lain yang tidak dimasukkan ke dalam model. Nilai Adjusted R² = 0.8353 menunjukkan model tetap baik walau mempertimbangkan jumlah variabel yang digunakan.


5. Uji Asumsi

Normalitas Residual (Shapiro-Wilk)

shapiro.test(residuals(model))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model)
## W = 0.95125, p-value = 0.6833
hist(residuals(model),
     main = "Histogram Residual",
     xlab = "Residual",
     col  = "pink",
     border = "white")

Interpretasi: Uji Shapiro-Wilk menghasilkan p-value = 0.6833 > 0.05, sehingga gagal tolak H₀. Artinya residual model berdistribusi normal. Karena jumlah data hanya 10 observasi, bentuk histogram belum terlalu terlihat jelas, namun hasil uji statistik sudah cukup untuk membuktikan asumsi normalitas terpenuhi.


Heteroskedastisitas

plot(fitted(model), residuals(model),
     xlab = "Nilai Fitted",
     ylab = "Residual",
     main = "Plot Residual vs Fitted",
     pch  = 19, col = "deeppink")
abline(h = 0, lty = 2, col = "steelblue")

Interpretasi: Dari plot terlihat titik-titik menyebar secara acak dan tidak membentuk pola tertentu, sehingga dapat disimpulkan tidak ada masalah heteroskedastisitas, ragam residual bersifat homogen.


Multikolinieritas (VIF)

library(car)
vif(model)
## X1_Kehadiran        X2_IQ 
##     1.055571     1.055571

Interpretasi: Nilai VIF untuk X1 dan X2 sama-sama sekitar 1.056, jauh di bawah batas 10. Menunjukkan bahwa tidak ada korelasi yang kuat antara kehadiran dan IQ, sehingga tidak terdapat multikolinieritas dalam model.


Autokorelasi (Durbin-Watson)

Meskipun data bukan runtun waktu, uji ini tetap dilakukan sebagai pelengkap analisis.

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

Interpretasi: Nilai DW = 2.594 mendekati angka 2, dan p-value = 0.8013 > 0.05, gagal tolak H₀. Artinya tidak terdapat autokorelasi pada residual.


Kesimpulan

Berdasarkan hasil analisis regresi linier berganda, diperoleh persamaan: Ŷ = 23.0545 + 0.7372·X1 - 0.0343·X2

Secara simultan, kehadiran dan IQ berpengaruh signifikan terhadap nilai UAS (karena p < 0.05). Namun secara parsial, hanya tingkat kehadiran yang berpengaruh signifikan pada α = 5%, sementara IQ tidak signifikan dalam model ini.

Model dapat menjelaskan 87.19% variasi nilai UAS (R² = 0.8719), dan seluruh asumsi klasik OLS terpenuhi seperti normalitas, homoskedastisitas, non-autokorelasi, dan non-multikolinieritas. Sehingga model ini valid dan layak digunakan.