Pendahuluan

Analisis ini bertujuan untuk mengetahui pengaruh jumlah jam belajar (\(X_1\)) dan tingkat kehadiran (\(X_2\)) terhadap nilai ujian (\(Y\)) menggunakan regresi linier berganda dengan pendekatan Ordinary Least Squares (OLS) secara manual, kemudian divalidasi menggunakan fungsi lm().

Data

Y  <- c(65,70,75,80,85,78,72,90,88,95)
X1 <- c(2,3,4,5,6,5,3,7,6,8)
X2 <- c(60,65,70,75,80,72,68,85,83,90)

data <- data.frame(Y, X1, X2)
data
##     Y X1 X2
## 1  65  2 60
## 2  70  3 65
## 3  75  4 70
## 4  80  5 75
## 5  85  6 80
## 6  78  5 72
## 7  72  3 68
## 8  90  7 85
## 9  88  6 83
## 10 95  8 90
n <- length(Y)
k <- 2

X <- cbind(1, X1, X2)
Y_mat <- matrix(Y, ncol = 1)

1. Estimasi Model (OLS Manual)

Model regresi linier berganda:

\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \varepsilon \]

Estimasi parameter menggunakan:

\[ \hat{\beta} = (X^T X)^{-1} X^T Y \]

XtX <- t(X) %*% X
XtX_inv <- solve(XtX)
XtY <- t(X) %*% Y_mat

beta_hat <- XtX_inv %*% XtY
beta_hat
##          [,1]
##    16.1360113
## X1  1.1698379
## X2  0.7744891

Model yang diperoleh:

\[ \hat{Y} = 16.136 + 1.170 X_1 + 0.774 X_2 \]

Interpretasi

  • \(\beta_0 = 16.136\) merupakan konstanta model.
  • \(\beta_1 = 1.170\) menunjukkan bahwa setiap kenaikan 1 jam belajar meningkatkan nilai ujian sebesar 1.17 poin.
  • \(\beta_2 = 0.774\) menunjukkan bahwa setiap kenaikan 1% kehadiran meningkatkan nilai ujian sebesar 0.77 poin.

Kedua variabel memiliki pengaruh positif terhadap nilai ujian.

Prediksi dan Residual

Y_hat <- X %*% beta_hat
residual <- Y_mat - Y_hat

Y_hat
##           [,1]
##  [1,] 64.94503
##  [2,] 69.98732
##  [3,] 75.02960
##  [4,] 80.07188
##  [5,] 85.11416
##  [6,] 77.74841
##  [7,] 72.31078
##  [8,] 90.15645
##  [9,] 87.43763
## [10,] 95.19873
residual
##              [,1]
##  [1,]  0.05496829
##  [2,]  0.01268499
##  [3,] -0.02959831
##  [4,] -0.07188161
##  [5,] -0.11416490
##  [6,]  0.25158562
##  [7,] -0.31078224
##  [8,] -0.15644820
##  [9,]  0.56236786
## [10,] -0.19873150

Nilai prediksi sangat mendekati nilai aktual, dan residual relatif kecil, menunjukkan model memiliki akurasi tinggi.

2. Uji F dan Uji t (Manual)

Komponen Variansi

\[ SST = \sum (Y_i - \bar{Y})^2 \]

\[ SSR = \sum (\hat{Y}_i - \bar{Y})^2 \]

\[ SSE = \sum (Y_i - \hat{Y}_i)^2 \]

Y_mean <- mean(Y)

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

SST
## [1] 831.6
SSR
## [1] 831.0376
SSE
## [1] 0.5623679

Uji F

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

F_hit <- (SSR/k) / (SSE/(n-k-1))
F_hit
## [1] 5172.116
df1 <- k
df2 <- n - k - 1
alpha <- 0.05

p_value_F <- pf(F_hit, df1, df2, lower.tail = FALSE)
F_tabel <- qf(1 - alpha, df1, df2)

p_value_F
## [1] 8.042129e-12
F_tabel
## [1] 4.737414

Interpretasi Uji F

Karena \(F_{hitung} > F_{tabel}\) dan \(p\)-value < 0.05, maka \(H_0\) ditolak. Artinya, variabel \(X_1\) dan \(X_2\) secara simultan berpengaruh signifikan terhadap \(Y\).

Uji t

Varians error:

\[ \sigma^2 = \frac{SSE}{n-k-1} \]

Varians koefisien:

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

sigma2 <- SSE/(n-k-1)
var_beta <- sigma2 * XtX_inv
se_beta <- sqrt(diag(var_beta))

se_beta
##                    X1         X2 
## 2.83677490 0.27843551 0.05571759
t_hit <- beta_hat / se_beta
t_hit
##         [,1]
##     5.688154
## X1  4.201468
## X2 13.900261
df_t <- n - k - 1

p_value_t <- 2 * pt(-abs(t_hit), df_t)
t_tabel <- qt(1 - alpha/2, df_t)

p_value_t
##            [,1]
##    7.444177e-04
## X1 4.028204e-03
## X2 2.357834e-06
t_tabel
## [1] 2.364624

Interpretasi Uji t

  • Variabel \(X_1\) signifikan karena \(p\)-value < 0.05
  • Variabel \(X_2\) sangat signifikan dan memiliki nilai \(t\) terbesar

Dengan demikian, kehadiran merupakan variabel yang paling dominan.

3. Koefisien Determinasi

\[ R^2 = \frac{SSR}{SST} \]

\[ \text{Adjusted } R^2 = 1 - \frac{SSE/(n-k-1)}{SST/(n-1)} \]

R2 <- SSR / SST
Adj_R2 <- 1 - (SSE/(n-k-1)) / (SST/(n-1))

R2
## [1] 0.9993238
Adj_R2
## [1] 0.9991305

Interpretasi

Nilai \(R^2 = 0.9993\) menunjukkan bahwa 99.93% variasi nilai ujian dapat dijelaskan oleh model. Nilai Adjusted \(R^2\) yang mendekati 1 menunjukkan model sangat baik.

4. Perbandingan dengan Fungsi lm()

model <- lm(Y ~ X1 + X2)
summary(model)
## 
## Call:
## lm(formula = Y ~ X1 + X2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.31078 -0.14588 -0.05074  0.04440  0.56237 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 16.13601    2.83677   5.688 0.000744 ***
## X1           1.16984    0.27844   4.201 0.004028 ** 
## X2           0.77449    0.05572  13.900 2.36e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2834 on 7 degrees of freedom
## Multiple R-squared:  0.9993, Adjusted R-squared:  0.9991 
## F-statistic:  5172 on 2 and 7 DF,  p-value: 8.042e-12

Interpretasi

Hasil dari fungsi lm() konsisten dengan hasil perhitungan manual, sehingga model telah tervalidasi dengan baik.

5. Prediksi Nilai Ujian

Untuk \(X_1 = 1\) dan \(X_2 = 100\):

new_X <- matrix(c(1,1,100), nrow = 1)
Y_pred <- new_X %*% beta_hat
Y_pred
##          [,1]
## [1,] 94.75476

Interpretasi

Nilai prediksi sebesar 94.75 menunjukkan bahwa tingkat kehadiran yang tinggi memberikan kontribusi besar terhadap nilai ujian, meskipun jam belajar rendah.

Kesimpulan

  1. Model regresi berhasil dibentuk menggunakan metode OLS manual.
  2. Variabel jam belajar dan kehadiran berpengaruh signifikan terhadap nilai ujian.
  3. Kehadiran merupakan variabel yang paling dominan.
  4. Model memiliki kemampuan penjelasan yang sangat tinggi.
  5. Hasil manual konsisten dengan fungsi lm().