Input Data

Diberikan data tentang IQ dan tingkat kehadiran sepuluh siswa di kelas yang diperkirakan mempengaruhi nilai UAS. Dengan Nilai UAS sebagai variabel dependen (Y), Tingkat Kehadiran (%) sebagai variabel independen (X1), serta IQ sebagai variabel independen (X2).

# Input data
Y  <- c(65,70,75,75,80,80,85,95,90,98)
X1 <- c(60,70,75,80,80,90,95,95,100,100)
X2 <- c(110,120,115,130,110,120,120,125,110,120)
n  <- length(Y)

Persamaan Regresi Berganda

Berikut persamaan regresi linier berganda dengan menghitung beta duga secara manual.

# Susun matriks
X_mat <- cbind(1, X1, X2)
colnames(X_mat) <- c("Intercept", "X1", "X2")

# Hitung X'X dan X'Y
XtX <- t(X_mat) %*% X_mat
XtY <- t(X_mat) %*% Y

# Invers (X'X)^{-1}
XtX_inv <- solve(XtX)

# Koefisien beta manual
beta_manual <- XtX_inv %*% XtY
cat("Persamaan Regresi manual\n")
## Persamaan Regresi manual
print(beta_manual)
##                 [,1]
## Intercept 23.0544545
## X1         0.7372330
## X2        -0.0343275

Selanjutnya berikut persamaan regresi linier berganda dengan menggunakan fungsi lm.

# Dengan fungsi lm
data <- data.frame(Y, X1, X2)
model <- lm(Y ~ X1 + X2, data = data)
cat("Persamaan regresi dengan fungsi\n")
## Persamaan regresi dengan fungsi
summary(model)
## 
## Call:
## lm(formula = Y ~ X1 + X2, 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           0.73723    0.10918   6.752 0.000264 ***
## 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

Berikut perbandingan koefisien persamaan regresi dengan cara manual dan menggunakan fungsi lm.

# Bandingkan manual dan lm
perbandingan <- data.frame(
  Manual = round(beta_manual, 4),
  lm_coef = round(coef(model), 4)
)
cat("Perbandingan persamaan regresi manual vs dengan fungsi\n")
## Perbandingan persamaan regresi manual vs dengan fungsi
print(perbandingan)
##            Manual lm_coef
## Intercept 23.0545 23.0545
## X1         0.7372  0.7372
## X2        -0.0343 -0.0343

Hasil perhitungan beta duga manual menggunakan rumus matriks (X’X)^-1 X’Y dan fungsi lm di R menghasilkan nilai yang identik. Tidak ada perbedaan antara keduanya karena fungsi lm di R memang menggunakan metode yang sama secara internal, yaitu dekomposisi matriks (QR decomposition) yang secara matematis ekuivalen dengan (X’X)^-1 X’Y. Hal ini menunjukkan bahwa prosedur perhitungan manual telah dilakukan dengan benar dan konsisten dengan metode Ordinary Least Squares yang digunakan oleh R. Sehingga, model regresi yang dihasilkan dapat dinyatakan valid dan dapat digunakan untuk analisis lebih lanjut. Dengan persamaan regresi yang didapat adalah:

\(\hat{Y} = 23.0545 + 0.7372X_1 - 0.0343X_2\)

Dengan interpretasi bahwa nilai intersep sebesar 23.0545 menunjukkan bahwa ketika tingkat kehadiran (X₁) dan IQ (X₂) diasumsikan bernilai nol, maka nilai UAS yang diprediksi adalah sebesar 23.0545. Lalu Koefisien variabel kehadiran (X₁) sebesar 0.7372 berarti bahwa setiap peningkatan kehadiran sebesar 1% akan meningkatkan nilai UAS sebesar 0.7372 poin, dengan asumsi IQ tetap. Hal ini menunjukkan bahwa kehadiran memiliki pengaruh positif terhadap nilai UAS, sehingga semakin tinggi tingkat kehadiran siswa, semakin tinggi pula nilai yang cenderung diperoleh. Sementara itu, koefisien variabel IQ (X₂) sebesar -0.0343 menunjukkan bahwa setiap peningkatan 1 poin IQ justru diikuti penurunan nilai UAS sebesar 0.0343 poin, dengan asumsi kehadiran tetap. Tanda negatif ini mengindikasikan adanya hubungan yang berlawanan arah antara IQ dan nilai UAS dalam model ini, yang bisa disebabkan oleh karakteristik data atau adanya faktor lain yang lebih dominan, sehingga pengaruh IQ tidak terlihat positif dalam model yang terbentuk.

Uji-F

Setelah didapatkan persamaan regresi, selanjutnya dilakukan prosedur uji simultan sebagai berikut.

Hipotesis:

\(H_0: \beta_1 = \beta_2 = 0\) (Tidak ada pengaruh tingkat kehadiran dan IQ secara simultan terhadap nilai UAS)

\(H_1: \text{minimal ada satu } \beta_i \neq 0\) (Terdapat pengaruh tingkat kehadiran dan IQ secara simultan terhadap nilai UAS)

Taraf Nyata:

α = 0.05

Statistik Uji:

# Uji-F manual
Y_hat <- fitted(model)       
Y_bar <- mean(Y)             
p <- 2                   

SSR <- sum((Y_hat - Y_bar)^2)  
SSE <- sum((Y - Y_hat)^2)      
SST <- sum((Y - Y_bar)^2)     

MSR <- SSR / p              
MSE <- SSE / (n - p - 1) 

F_hitung <- MSR / MSE
F_tabel  <- qf(0.95, df1 = p, df2 = n - p - 1)
p_value_F <- pf(F_hitung, df1 = p, df2 = n - p - 1, lower.tail = FALSE)
cat("Uji-F manual\n")
## Uji-F manual
print(F_hitung)
## [1] 23.82303
print(F_tabel)
## [1] 4.737414
print(p_value_F)
## [1] 0.0007522929
# Uji-F dengan fungsi
cat("Uji-F dengan fungsi\n")
## Uji-F dengan fungsi
summary(model)$fstatistic
##    value    numdf    dendf 
## 23.82303  2.00000  7.00000

Kriteria Penolakan:

Tolak H0 jika:

F hitung > F tabel, atau

p-value < α

Keputusan:

F hitung (23.82303) > F tabel (4.737414) -> Tolak H0

p-value (0.0007522929) < α (0.05) -> Tolak H0

Kesimpulan:

Berdasarkan hasil uji F pada taraf nyata 5%, diperoleh bahwa model regresi secara keseluruhan signifikan. Hal ini menunjukkan bahwa variabel tingkat kehadiran dan IQ secara bersama-sama memiliki pengaruh yang nyata terhadap nilai UAS siswa. Dengan demikian, perubahan pada kedua variabel tersebut secara simultan akan berdampak terhadap perubahan nilai UAS. Artinya, model regresi yang dibangun mampu menjelaskan hubungan antara kehadiran dan IQ dengan nilai UAS secara kolektif, sehingga model layak digunakan untuk analisis dan penarikan kesimpulan lebih lanjut.

Uji-T

Setelah dilakukan uji simultan dan didapatkan hasil yang signifikan, selanjutnya dilakukan prosedur uji parsial sebagai berikut.

Hipotesis:

  • Kehadiran (X1)

\(H_0: \beta_1 = 0\) (Tidak terdapat pengaruh tingkat kehadiran terhadap nilai UAS)

\(H_1: \beta_1 \neq 0\) (Terdapat pengaruh tingkat kehadiran terhadap nilai UAS)

  • IQ (X2)

\(H_0: \beta_2 = 0\) (Tidak terdapat pengaruh IQ terhadap nilai UAS)

\(H_1: \beta_2 \neq 0\) (Terdapat pengaruh IQ terhadap nilai UAS)

Taraf Nyata:

α = 0.05

Statistik Uji:

# Uji-T manual
SE_beta <- sqrt(diag(XtX_inv) * MSE)
t_hitung <- beta_manual / SE_beta
t_tabel  <- qt(0.975, df = n - p - 1) 
p_vals_t <- 2 * pt(abs(t_hitung), df = n - p - 1, lower.tail = FALSE)

tbl_t <- data.frame(
  Beta   = round(beta_manual, 4),
  SE     = round(SE_beta, 4),
  t_hit  = round(t_hitung, 4),
  p_val  = round(p_vals_t, 4),
  Signif = ifelse(p_vals_t < 0.05, "Signifikan", "Tidak Signifikan")
)
cat("Uji-T manual\n")
## Uji-T manual
print(tbl_t)
##              Beta      SE   t_hit  p_val           Signif
## Intercept 23.0545 25.5716  0.9016 0.3972 Tidak Signifikan
## X1         0.7372  0.1092  6.7525 0.0003       Signifikan
## X2        -0.0343  0.2205 -0.1557 0.8807 Tidak Signifikan
print(round(t_tabel,4))
## [1] 2.3646
# Uji-T dengan fungsi
cat("Uji-T dengan fungsi\n")
## Uji-T dengan fungsi
summary(model)$coefficients
##               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

Kriteria Penolakan:

Tolak H0 jika:

|t hitung| > t tabel, atau

p-value < 0.05

Keputusan:

  • Kehadiran (X1)

    t hitung (|6.7525|) > t tabel (2.3646) -> Tolak H0

    p-value (0.0003) < α (0.05) -> Tolak H0

  • IQ (X2)

    t hitung (|-0.1557|) < t tabel (2.3646) -> Gagal tolak H0

    p-value (0.8807) > α (0.05) -> Gagal tolak H0

Kesimpulan:

Berdasarkan hasil uji t pada taraf nyata 5%, diperoleh bahwa variabel tingkat kehadiran memiliki pengaruh yang signifikan terhadap nilai UAS siswa, sedangkan variabel IQ tidak menunjukkan pengaruh yang signifikan. Hal ini berarti bahwa secara parsial, hanya kehadiran yang terbukti berkontribusi secara nyata dalam meningkatkan nilai UAS, di mana semakin tinggi tingkat kehadiran siswa maka nilai yang diperoleh cenderung meningkat. Sementara itu, meskipun IQ secara teoritis berhubungan dengan kemampuan akademik, dalam data ini pengaruhnya tidak signifikan, sehingga perubahan nilai UAS tidak dapat dijelaskan secara nyata oleh variasi IQ ketika kehadiran sudah diperhitungkan dalam model.

Koefisien Determinasi

Setelah dilakukan uji simultan dan uji parsial, selanjutnya dilakukan analisis koefisien determinasi untuk mengetahui seberapa besar kemampuan variabel independen dalam menjelaskan variasi pada variabel dependen.

# Koefisien determinasi manual
R2 <- SSR / SST
R2_adj <- 1 - (SSE/(n-p-1)) / (SST/(n-1))
cat("Koefisien determinasi manual\n")
## Koefisien determinasi manual
print(R2)
## [1] 0.8719029
print(R2_adj)
## [1] 0.8353038
# Koefisien determinasi dengan fungsi
cat("KKoefisien determinasi dengan fungsi\n")
## KKoefisien determinasi dengan fungsi
summary(model)$r.squared
## [1] 0.8719029
summary(model)$adj.r.squared
## [1] 0.8353038

Nilai koefisien determinasi R^2 sebesar 0.8719029 menunjukkan bahwa sekitar 87.19% variasi nilai UAS dapat dijelaskan oleh variabel tingkat kehadiran dan IQ dalam model regresi yang dibangun. Hal ini berarti model memiliki kemampuan yang sangat baik dalam menjelaskan hubungan antara variabel independen dengan variabel dependen. Sementara itu, sisanya sebesar 12.81% variasi nilai UAS dipengaruhi oleh faktor lain di luar model yang tidak diteliti, seperti motivasi belajar, metode pengajaran, faktor lingkungan, atau lainnya. Nilai Adjusted R^2 sebesar 0.8353038 menunjukkan bahwa setelah dilakukan penyesuaian terhadap jumlah variabel independen dan ukuran sampel, model masih mampu menjelaskan sebesar 83.53% variasi nilai UAS. Nilai ini sedikit lebih rendah dibandingkan R^2, yang merupakan hal wajar karena Adjusted R^2 memberikan penalti terhadap penambahan variabel dalam model. Selisih yang relatif kecil antara R^2 dan Adjusted R^2 menunjukkan bahwa variabel yang digunakan dalam model, yaitu tingkat kehadiran dan IQ, cukup relevan dan tidak menimbulkan bias berlebih. Dengan demikian, model regresi yang terbentuk dapat dikatakan memiliki kemampuan yang baik dan cukup andal dalam menjelaskan variasi nilai UAS siswa.

Uji Asumsi

Pengujian asumsi klasik dilakukan untuk memastikan bahwa model regresi linier berganda yang digunakan telah memenuhi kriteria sebagai estimator yang baik (BLUE), sehingga hasil analisis yang diperoleh dapat dipercaya dan valid untuk interpretasi lebih lanjut.

Uji Linearitas

Uji linearitas dilakukan untuk mengetahui apakah hubungan antara variabel independen, yaitu tingkat kehadiran dan IQ, dengan variabel dependen, yaitu nilai UAS, bersifat linier. Model regresi yang baik mensyaratkan adanya hubungan linier antara variabel-variabel tersebut. Pengujian ini dilakukan menggunakan uji Ramsey RESET.

library(lmtest)
resettest(model)
## 
##  RESET test
## 
## data:  model
## RESET = 0.25213, df1 = 2, df2 = 5, p-value = 0.7865

Berdasarkan hasil uji linearitas menggunakan metode Ramsey RESET, diperoleh nilai p-value sebesar 0.7865 yang lebih besar dari taraf nyata 0.05. Hal ini menunjukkan bahwa hipotesis nol gagal ditolak, sehingga tidak terdapat bukti adanya kesalahan spesifikasi model. Dengan demikian, model regresi yang digunakan telah memenuhi asumsi linearitas, yang berarti hubungan antara variabel tingkat kehadiran dan IQ dengan nilai UAS dapat dinyatakan linier. Oleh karena itu, model regresi yang dibangun layak digunakan untuk analisis lebih lanjut karena telah mampu merepresentasikan hubungan antar variabel secara memadai.

Uji Normalitas

Uji normalitas bertujuan untuk mengetahui apakah residual dari model regresi berdistribusi normal. Asumsi normalitas penting untuk validitas pengujian statistik dalam regresi. Pengujian dilakukan secara visual menggunakan Q-Q Plot dan secara formal menggunakan uji Shapiro-Wilk.

# Q-Q Plot
qqnorm(residuals(model), col = "blue", pch = 19, main = "Q-Q Plot Residual")
qqline(residuals(model), col = "red")

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

Berdasarkan hasil uji normalitas, secara visual melalui Q-Q Plot terlihat bahwa titik-titik residual cenderung menyebar di sekitar garis diagonal dan mengikuti arah garis tersebut, meskipun terdapat sedikit penyimpangan pada beberapa titik. Hal ini mengindikasikan bahwa secara visual distribusi residual mendekati distribusi normal. Selain itu, berdasarkan uji formal menggunakan Shapiro-Wilk diperoleh nilai p-value sebesar 0.6833 yang lebih besar dari taraf nyata 0.05, sehingga hipotesis nol gagal ditolak.

Dengan demikian, dapat disimpulkan bahwa residual dari model regresi berdistribusi normal, sehingga asumsi normalitas telah terpenuhi dan hasil pengujian statistik dalam model dapat dianggap valid.

Uji Heteroskedastisitas

Uji heteroskedastisitas dilakukan untuk mengetahui apakah terjadi ketidaksamaan varians residual pada model regresi. Model yang baik adalah model yang memiliki varians residual yang konstan (homoskedastisitas). Pengujian dilakukan menggunakan uji Breusch-Pagan.

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

Berdasarkan hasil uji heteroskedastisitas menggunakan metode Breusch-Pagan, diperoleh nilai p-value sebesar 0.05221 yang lebih besar dari taraf nyata 0.05. Hal ini menunjukkan bahwa hipotesis nol tidak ditolak, sehingga tidak terdapat bukti yang cukup untuk menyatakan adanya heteroskedastisitas dalam model regresi. Dengan kata lain, varians residual dapat dianggap konstan (homoskedastisitas).

Dengan demikian, dapat disimpulkan bahwa model regresi yang digunakan telah memenuhi asumsi homoskedastisitas, sehingga tidak terdapat masalah ketidaksamaan varians residual. Hal ini menunjukkan bahwa model yang dibangun cukup baik dan layak digunakan untuk analisis lebih lanjut.

Uji Autokorelasi

Uji autokorelasi bertujuan untuk mengetahui apakah terdapat korelasi antara residual pada satu pengamatan dengan pengamatan lainnya. Model regresi yang baik seharusnya tidak mengandung autokorelasi. Pengujian ini dilakukan menggunakan uji Durbin-Watson.

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

Berdasarkan hasil uji autokorelasi menggunakan metode Durbin-Watson, diperoleh nilai statistik DW sebesar 2.594 dengan p-value sebesar 0.8013 yang lebih besar dari taraf nyata 0.05. Hal ini menunjukkan bahwa hipotesis nol gagal ditolak, sehingga tidak terdapat bukti yang cukup untuk menyatakan adanya autokorelasi pada residual model. Selain itu, nilai DW yang mendekati angka 2 juga mengindikasikan bahwa tidak terjadi autokorelasi, baik positif maupun negatif.

Dengan demikian, dapat disimpulkan bahwa residual pada model regresi bersifat independen dan tidak saling berkorelasi antar pengamatan. Hal ini menunjukkan bahwa model telah memenuhi asumsi independensi residual, sehingga model regresi yang digunakan layak untuk analisis lebih lanjut dan hasil estimasi yang diperoleh dapat dipercaya.

Uji Multikolinearitas

Uji multikolinearitas dilakukan untuk mengetahui apakah terdapat hubungan yang kuat antar variabel independen dalam model regresi. Multikolinearitas yang tinggi dapat menyebabkan ketidakstabilan dalam estimasi parameter. Pengujian dilakukan menggunakan nilai Variance Inflation Factor (VIF) dan nilai tolerance.

library(car)
vif(model)
##       X1       X2 
## 1.055571 1.055571
1/vif(model)
##       X1       X2 
## 0.947355 0.947355

Berdasarkan uji multikolinearitas pada model regresi yang melibatkan variabel tingkat kehadiran (X1) dan IQ (X2) terhadap nilai UAS (Y), diperoleh nilai VIF untuk kedua variabel sebesar 1.055571 dan nilai tolerance sebesar 0.947355. Nilai VIF yang sangat dekat dengan 1 menunjukkan bahwa tidak terdapat korelasi yang kuat antar variabel independen, sehingga masing-masing variabel memberikan informasi yang unik dalam menjelaskan variasi nilai UAS. Hal ini diperkuat oleh nilai tolerance yang jauh di atas batas minimum 0.1, yang mengindikasikan tidak adanya masalah multikolinearitas dalam model.

Dengan demikian, dapat disimpulkan bahwa variabel IQ dan tingkat kehadiran tidak saling mengganggu dalam model regresi, sehingga keduanya layak digunakan secara simultan untuk memprediksi nilai UAS. Model regresi yang dibangun memenuhi asumsi bebas multikolinearitas dan dapat diinterpretasikan lebih lanjut tanpa bias akibat hubungan linear yang tinggi antar variabel bebas.