1 Kasus

Diberikan data tentang IQ (\(X_2\)) dan tingkat kehadiran (\(X_1\)) sepuluh siswa di kelas yang diperkirakan mempengaruhi nilai UAS (\(Y\)).

Siswa 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

Pertanyaan :

  • Buatlah persamaan regresi linier berganda! (hitung beta duga secara manual di R dan bandingkan dengan fungsi lm)

  • Lakukan Uji-F! (interpretasikan hasilnya)

  • Lakukan Uji-t! (interpretasikan hasilnya)

  • Berapa koefisien determinasinya? Interpretasi hasil ini!

  • Lakukan uji asumsi dan jelaskan hasilnya

2 Penyelesaian

2.1 Pemodelan Regresi Berganda

Proses analisis berikut mencakup estimasi koefisien regresi secara manual/pendekatan aljabar matriks serta membandingkan hasilnya dengan fungsi lm dalam R.

2.1.1 Estimasi Parameter (Metode Matriks)

Untuk mendapatkan nilai koefisien secara manual, kita menggunakan pendekatan aljabar matriks. Model yang digunakan adalah: \[Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \epsilon\]

Di mana estimator parameter \(\beta\) dihitung dengan rumus: \[\hat{\beta} = (X^T X)^{-1} X^T Y\]

# Membentuk matriks X dengan kolom Intercept (angka 1)
X <- cbind(Intercept = 1, Kehadiran = df$Kehadiran, IQ = df$IQ)

# Membentuk matriks Y (Nilai UAS)
Y <- matrix(df$Nilai, ncol = 1)

# Menghitung koefisien Beta menggunakan rumus (XtX)^-1 XtY
beta_manual <- solve(t(X) %*% X) %*% t(X) %*% Y

# Menampilkan hasil
print(beta_manual)
##                 [,1]
## Intercept 23.0544545
## Kehadiran  0.7372330
## IQ        -0.0343275

Secara perhitungan manual model yang di dapatkan yaitu:

Y = 23.0544545 + 0.7372330 (Kehadiran) - 0.0343275 (IQ)

Intersep sebesar 23.05 merupakan nilai prediksi UAS ketika variabel kehadiran dan IQ bernilai nol.Setiap peningkatan 1% pada tingkat kehadiran diprediksi akan meningkatkan nilai UAS sebesar 0.737 poin, dengan asumsi IQ tetap. Lalu Koefisien IQ bernilai negatif sebesar -0.034, yang menunjukkan arah hubungan negatif, di mana setiap kenaikan satu satuan IQ diprediksi menurunkan nilai UAS sebesar 0.034 poin jika tingkat kehadiran tetap.

2.1.2 Bandingkan dengan Fungsi lm()

# Estimasi menggunakan fungsi bawaan R
model_regresi <- lm(Nilai ~ Kehadiran + IQ, data = df)

# Tabel perbandingan
perbandingan_koefisien <- data.frame(
  Variabel = c("Intercept", "Kehadiran", "IQ"),
  Manual = as.numeric(beta_manual),
  Fungsi_lm = as.numeric(coef(model_regresi)),
  Selisih = as.numeric(beta_manual) - as.numeric(coef(model_regresi))
)

# Menampilkan tabel perbandingan
perbandingan_koefisien %>%
  kable(digits = 6, caption = "Perbandingan Estimasi Parameter: Manual vs lm()") %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = F)
Perbandingan Estimasi Parameter: Manual vs lm()
Variabel Manual Fungsi_lm Selisih
Intercept 23.054454 23.054454 0
Kehadiran 0.737233 0.737233 0
IQ -0.034327 -0.034327 0

Metode matriks manual dan fungsi lm() menghasilkan nilai koefisien yang identik hingga beberapa angka di belakang desimal, ini membuktikan perhitungan manual valid dan fungsi lm() bekerja dengan baik.

2.2 Uji F

Uji F dilakukan untuk mengetahui apakah variabel bebas (Kehadiran dan IQ) secara bersama-sama memiliki pengaruh signifikan terhadap variabel terikat (Nilai UAS). Hipotesis yang diuji adalah:

\[H_0: \beta_1 = \beta_2 = 0 \text{ (Variabel independen tidak berpengaruh secara simultan)}\]

\[H_1: \text{Minimal ada satu } \beta_j \neq 0 \text{ (Variabel independen berpengaruh secara simultan)}\]

2.2.1 Perhitungan Manual uji F dihitung dengan rumus:

\[F = \frac{SSR / k}{SSE / (n - k - 1)}\]

# Prediksi
Y_hat <- X %*% beta_manual

# Total Sum of Squares
SST <- sum((Y - mean(Y))^2)

# Regression Sum of Squares
SSR <- sum((Y_hat - mean(Y))^2)

# Error Sum of Squares
SSE <- sum((Y - Y_hat)^2)

# Jumlah variabel & sampel
k <- 2
n <- 10

# Hitung F
F_hit <- (SSR/k) / (SSE/(n - k - 1))
F_hit
## [1] 23.82303

2.2.2 Gunakan model lm

summary(model_regresi)
## 
## Call:
## lm(formula = Nilai ~ Kehadiran + IQ, data = df)
## 
## 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    
## Kehadiran    0.73723    0.10918   6.752 0.000264 ***
## 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

2.2.3 Keputusan

Dari setiap perhitungan yang dilakukan didapatkan

  • F hitung (manual) = 23.82303

  • Dari lm():

    1. F-statistic = 23.82
    2. p-value = 0.0007523
    3. df = (2, 7)

Nilai p-value sebesar 0.0007523 lebih kecil dari taraf nyata \(\alpha = 0.05\). Selain itu, nilai F-hitung (23.82) jauh lebih besar dibandingkan F-tabel (4.74), sehingga keputusan yang diambil adalah Tolak \(H_0\).

Hal ini menunjukkan bahwa secara simultan variabel kehadiran dan IQ berpengaruh signifikan terhadap nilai UAS. Dengan demikian, model regresi yang digunakan layak untuk menjelaskan hubungan antara variabel independen dan dependen.

2.3 Uji T

Uji t bertujuan untuk mengetahui pengaruh masing-masing variabel independen secara individu terhadap variabel dependen.

  1. Pengaruh Kehadiran (\(X_1\)):

\(H_0: \beta_1 = 0\) (Tingkat kehadiran secara parsial tidak berpengaruh signifikan terhadap nilai UAS).

\(H_1: \beta_1 \neq 0\) (Tingkat kehadiran secara parsial berpengaruh signifikan terhadap nilai UAS).

  1. Pengaruh IQ (\(X_2\)):

\(H_0: \beta_2 = 0\) (IQ secara parsial tidak berpengaruh signifikan terhadap nilai UAS).

\(H_1: \beta_2 \neq 0\) (IQ secara parsial berpengaruh signifikan terhadap nilai UAS).

2.3.1 Cara Manual

Standard Error (\(\text{SE}\)) dan nilai t-hitung diperoleh melalui akar diagonal matriks varians-kovarians:

\[\text{Var}(\hat{\beta}) = \sigma^2 (X^T X)^{-1}\] \[t = \frac{\hat{\beta}}{\text{SE}(\hat{\beta})}\]

# Varians error
sigma2 <- SSE / (n - k - 1)

# Varians beta
var_beta <- sigma2 * solve(t(X) %*% X)

# Standard error
se_beta <- sqrt(diag(var_beta))

# t hitung
t_hit <- beta_manual / se_beta
t_hit
##                 [,1]
## Intercept  0.9015644
## Kehadiran  6.7524718
## IQ        -0.1556715

2.3.2 Ambil dari summary(model_regresi)

summary(model_regresi)
## 
## Call:
## lm(formula = Nilai ~ Kehadiran + IQ, data = df)
## 
## 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    
## Kehadiran    0.73723    0.10918   6.752 0.000264 ***
## 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

2.3.3 Derajat Bebas

Penentuan nilai kritis pada tabel distribusi t didasarkan pada derajat bebas sisaan (residual). Berdasarkan jumlah sampel (\(n = 10\)) dan jumlah variabel independen (\(k = 2\)), maka derajat bebas dihitung sebagai berikut:

\[df = n - k - 1\] \[df = 10 - 2 - 1 = 7\]

2.3.4 Keputusan Uji

Jika \(|t_{hitung}| > t_{tabel}\), maka pengaruh bersifat signifikan.

Jika \(|t_{hitung}| < t_{tabel}\), maka pengaruh bersifat tidak signifikan.

p-value < alpha -> Tolak H0

p-value > alpha -> Gagal Tolak H0

Diketahui nilai alpha sebesar 0.05 (dua arah) dan df sebesar 7, maka nilai T tabel t(0.025; 7) sebesar 2.365.

# Ambil hasil summary
hasil <- summary(model_regresi)$coefficients

# Ambil hanya variabel X1 dan X2
hasil_var <- hasil[c("Kehadiran", "IQ"), ]

# Parameter
alpha <- 0.05
df <- n - k - 1
t_tabel <- qt(1 - alpha/2, df)

# Buat tabel gabungan
uji_t_gabungan <- data.frame(
  Variabel = rownames(hasil_var),
  t_hitung = round(hasil_var[, "t value"], 3),
  t_tabel = round(t_tabel, 3),
  p_value = round(hasil_var[, "Pr(>|t|)"], 6),
  Keputusan_t = ifelse(abs(hasil_var[, "t value"]) > t_tabel,
               "Tolak H0",
               "Gagal Tolak H0"),
  Keputusan_p = ifelse(hasil_var[, "Pr(>|t|)"] < alpha,
               "Tolak H0",
               "Gagal Tolak H0")
)

# Tampilkan
uji_t_gabungan
  • Variabel Kehadiran (\(X_1\)): Diperoleh nilai \(|t_{hitung}| > t_{tabel}\) (\(6.752 > 2.365\)), sehingga keputusan adalah Tolak \(H_0\). Hal ini menunjukkan bahwa tingkat kehadiran berpengaruh signifikan terhadap Nilai UAS.

  • Variabel IQ (\(X_2\)): Diperoleh nilai \(|t_{hitung}| < t_{tabel}\) (\(-0.156 < 2.365\)), sehingga keputusan adalah Gagal Tolak \(H_0\). Hal ini menunjukkan bahwa IQ tidak memiliki pengaruh signifikan terhadap Nilai UAS dalam model ini.

2.4 Koefisien determinasi (R²)

Gunakan rumus:

\[R^2 = \frac{SSR}{SST}\] Dimana \(SSR\) adalah Regression Sum of Squares dan \(SST\) adalah Total Sum of Squares.

R2 <- SSR / SST
R2
## [1] 0.8719029
summary(model_regresi)$r.squared
## [1] 0.8719029

Nilai koefisien determinasi (\(R^2\)) sebesar 0.8719 menunjukkan bahwa variabel tingkat kehadiran dan IQ secara bersama-sama mampu menjelaskan 87.19% variasi dari nilai UAS siswa. Sementara itu, sisa variasi sebesar 12.81% dipengaruhi oleh faktor-faktor di luar model.

2.5 Uji Asumsi Klasik

2.5.1 Uji Normalitas Residual

res <- residuals(model_regresi)

shapiro.test(res)
## 
##  Shapiro-Wilk normality test
## 
## data:  res
## W = 0.95125, p-value = 0.6833
# Visualisasi
qqnorm(res)
qqline(res, col="blue")

Nilai p-value yang dihasilkan dari uji Shapiro-Wilk sebesar 0.6833 dimana lebih besar dari nilai alpha 0.05 dari hasil ini maka residual berdistribusi normal.

Untuk Q-Q plot, grafik menghasilkan titik-titik yang mengikuti garis diagonal, dan tidak terlihat adanya pola aneh maka distribusi residual mendekati normal.

2.5.2 Uji Homoskedastisitas

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
bptest(model_regresi)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_regresi
## BP = 5.905, df = 2, p-value = 0.05221
 # Plot
plot(fitted(model_regresi), res)
abline(h=0, col="red")

Berdasarkan uji Breusch-Pagan diperoleh p-value sebesar 0.05221 (> 0.05), sehingga tidak terdapat cukup bukti adanya heteroskedastisitas. Hal ini didukung oleh grafik scatterplot antara residual dan nilai prediksi yang menunjukkan penyebaran acak tanpa pola tertentu. Dengan demikian, asumsi homoskedastisitas dapat dianggap terpenuhi. Namun nilai p-value yang mendekati batas signifikansi menunjukkan bahwa meskipun tidak terdapat bukti kuat adanya heteroskedastisitas, indikasi awal tetap perlu diperhatikan

2.5.3 Uji Multikolinearitas

library(car)
## Loading required package: carData
vif(model_regresi)
## Kehadiran        IQ 
##  1.055571  1.055571

Berdasarkan hasil uji multikolinearitas menggunakan Variance Inflation Factor (VIF), diperoleh nilai VIF untuk variabel kehadiran dan IQ masing-masing sebesar 1.055571 (< 10). Hal ini menunjukkan bahwa tidak terdapat multikolinearitas antar variabel independen dalam model regresi.

2.5.4 Uji Autokorelasi

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

Berdasarkan uji Durbin-Watson diperoleh nilai DW sebesar 2.594 dengan p-value sebesar 0.8013 (> 0.05), sehingga tidak terdapat autokorelasi dalam model regresi. Dengan demikian, asumsi independensi residual terpenuhi.