Melalui HTML ini, saya akan mengimplementasikan materi Komputasi Statistika mengenai ANALISIS REGRESI DENGAN PENDEKATAN MATRIKS


PENDAHULUAN

Dalam analisis regresi, pendekatan matriks memberikan cara yang efisien dan elegan untuk mengestimasi parameter model. Metode ini sangat berguna ketika bekerja dengan regresi linear berganda yang melibatkan banyak variabel prediktor. Pendekatan matriks memungkinkan kita untuk menuliskan persamaan regresi dalam bentuk yang kompak dan memudahkan perhitungan komputasi.

ANALISIS REGRESI DENGAN PENDEKATAN MATRIKS

Analisis regresi dengan pendekatan matriks adalah metode yang digunakan dalam statistik untuk memodelkan hubungan antara variabel dependen (respons) dan satu atau lebih variabel independen (prediktor) menggunakan aljabar linear. Pendekatan matriks sangat efisien dan elegan, terutama untuk regresi linear berganda, karena memungkinkan representasi kompak dari persamaan regresi dan memudahkan perhitungan estimasi parameter.

Model Regresi Linier Berganda

Bentuk umum model regresi linear berganda dengan n observasi dan p variabel prediktor dapat ditulis sebagai: \[ \mathbf{Y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon} \] di mana:
Y adalah vektor variabel respons berukuran (n × 1)
X adalah matriks desain berukuran (n × (p+1)) yang berisi nilai-nilai variabel prediktor
β adalah vektor parameter (koefisien regresi) berukuran ((p+1) × 1)
ε adalah vektor error berukuran (n × 1)

Representasi Matriks

Secara eksplisit, model dapat dituliskan sebagai: \[ \begin{bmatrix} y_1 \\ y_2 \\ y_3 \\ \vdots \\ y_n \end{bmatrix} = \begin{bmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1p} \\ 1 & x_{21} & x_{22} & \cdots & x_{2p} \\ 1 & x_{31} & x_{32} & \cdots & x_{3p} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{np} \end{bmatrix} \times \begin{bmatrix} \beta_0 \\ \beta_1 \\ \beta_2 \\ \vdots \\ \beta_p \end{bmatrix} + \begin{bmatrix} \varepsilon_1 \\ \varepsilon_2 \\ \varepsilon_3 \\ \vdots \\ \varepsilon_n \end{bmatrix} \]

Estimasi Parameter: Metode Kuadrat Terkecil (Ordinary Least Squares)

Estimator kuadrat terkecil untuk β diperoleh dengan meminimalkan jumlah kuadrat error. Solusinya diberikan oleh: \[ \hat{\boldsymbol{\beta}} = (\mathbf{X}'\mathbf{X})^{-1}\mathbf{X}'\mathbf{Y} \] di mana:
X’ adalah transpose dari matriks X
(X’X)⁻¹ adalah invers dari matriks X’X

Nilai Prediksi dan Residual

Nilai prediksi (fitted values): \[ \hat{\mathbf{Y}} = \mathbf{X}\hat{\boldsymbol{\beta}} = \mathbf{X}(\mathbf{X}'\mathbf{X})^{-1}\mathbf{X}'\mathbf{Y} = \mathbf{H}\mathbf{Y} \] di mana:
H = X(X’X)⁻¹X’ disebut hat matrix atau matriks proyeksi

Residual: \[ \mathbf{e} = \mathbf{Y} - \hat{\mathbf{Y}} = \mathbf{Y} - \mathbf{H}\mathbf{Y} = (\mathbf{I} - \mathbf{H})\mathbf{Y} \] Estimasi Varians Error

Estimator tak bias untuk σ² adalah: \[ s^2 = \frac{\mathbf{e}'\mathbf{e}}{n - p - 1} \] di mana:
e’e merupakan jumlah kuadrat residual (Montgomery, Peck, & Vining, 2012).

SOURCE CODE DAN OUTPUT

DATA

Berikut ini merupakan data yang akan diolah:

library(readxl)
data <- read.delim("clipboard")
data
##                 Kabupaten     Y    X1    X2
## 1       Kabupaten Cilacap 70.99 10904  7.18
## 2      Kabupaten Banyumas 73.17 11905  7.78
## 3   Kabupaten Purbalingga 69.54 10277  7.33
## 4  Kabupaten Banjarnegara 68.61  9776  6.84
## 5       Kabupaten Kebumen 70.79  9282  7.85
## 6     Kabupaten Purworejo 73.60 10671  8.32
## 7      Kabupaten Wonosobo 68.69 11108  6.88
## 8      Kabupaten Magelang 70.85 10011  7.81
## 9      Kabupaten Boyolali 74.97 13250  8.08
## 10       Kabupaten Klaten 76.95 12522  9.09
## 11    Kabupaten Sukoharjo 77.94 11841  9.62
## 12     Kabupaten Wonogiri 71.04  9780  7.42
## 13  Kabupaten Karanganyar 76.58 11798  8.79
## 14       Kabupaten Sragen 74.65 13052  7.79
## 15     Kabupaten Grobogan 70.97 10610  7.26
## 16        Kabupaten Blora 69.95 10067  7.01
## 17      Kabupaten Rembang 71.00 10937  7.41
## 18         Kabupaten Pati 73.14 10948  7.79
## 19        Kabupaten Kudus 75.89 11609  9.06
## 20       Kabupaten Jepara 73.15 10913  8.09
## 21        Kabupaten Demak 73.36 10698  8.10
## 22     Kabupaten Semarang 74.67 12448  8.05
## 23   Kabupaten Temanggung 70.77  9773  7.41
## 24       Kabupaten Kendal 73.19 11999  7.71
## 25       Kabupaten Batang 69.45  9972  6.90
## 26   Kabupaten Pekalongan 70.81 10707  7.46
## 27     Kabupaten Pemalang 67.19  8994  6.50
## 28        Kabupaten Tegal 69.53 10020  7.25
## 29       Kabupaten Brebes 67.03 10514  6.35
## 30          Kota Magelang 80.39 12816 10.94
## 31         Kota Surakarta 83.08 15463 10.92
## 32          Kota Salatiga 84.35 16351 10.95
## 33          Kota Semarang 84.08 16047 10.80
## 34        Kota Pekalongan 75.90 13158  9.20
## 35             Kota Tegal 76.15 13455  9.00
summary(data)
##   Kabupaten               Y               X1              X2        
##  Length:35          Min.   :67.03   Min.   : 8994   Min.   : 6.350  
##  Class :character   1st Qu.:70.78   1st Qu.:10172   1st Qu.: 7.295  
##  Mode  :character   Median :73.15   Median :10937   Median : 7.790  
##                     Mean   :73.50   Mean   :11534   Mean   : 8.141  
##                     3rd Qu.:75.89   3rd Qu.:12485   3rd Qu.: 8.895  
##                     Max.   :84.35   Max.   :16351   Max.   :10.950

MEMBUAT FUNGSI ANALISIS REGRESI LINIER BERGANDA

Selanjutnya kita mencari model regresi linier berganda untuk data dengan pendekatan matriks.

reg.lin.berganda <- function(Y, X_vars) {
  n <- length(Y)
  k <- ncol(as.matrix(X_vars))
  Xmat <- matrix(1, n, k + 1)
  Xmat[, 2:(k + 1)] <- as.matrix(X_vars)
  bhat <- solve(t(Xmat) %*% Xmat) %*% t(Xmat) %*% Y
  se <- sqrt(as.numeric(t(Y - Xmat %*% bhat) %*% (Y - Xmat %*% bhat) / (n - k - 1)))
  vse <- se^2 * solve(t(Xmat) %*% Xmat)
  bse <- sqrt(diag(vse))
  t0 <- bhat / bse
  pv <- 2 * pt(-abs(t0), df = n - k - 1)
  sol <- cbind(bhat, bse, t0, pv)
  cat("\nKoef \t\t Se\t\t t0 \t\t Nilai-p\n")
  for(i in 1:(k + 1)) {
    cat(sol[i, 1], "\t", sol[i, 2], "\t", sol[i, 3], "\t", sol[i, 4], "\n") 
  }
  return(sol)
}
X_vars <- data[, c("X1", "X2")]
Y <- data$Y
reg.lin.berganda(Y, X_vars)
## 
## Koef          Se      t0          Nilai-p
## 44.20605      0.82393     53.65268    6.410436e-33 
## 0.000787653   0.0001210129    6.508833    2.508841e-07 
## 2.482108      0.1729563   14.35107    1.71359e-15
##                            bse                       
## [1,] 44.206047050 0.8239299539 53.652676 6.410436e-33
## [2,]  0.000787653 0.0001210129  6.508833 2.508841e-07
## [3,]  2.482107575 0.1729563008 14.351068 1.713590e-15

Anda dapat memverifikasi dengan fungsi yang tersedia di R, seperti dibawah ini:

data1 <- lm(Y ~ X1 + X2, data = data)
summary(data1)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5054 -0.3781  0.2681  0.4214  1.2635 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 4.421e+01  8.239e-01  53.653  < 2e-16 ***
## X1          7.877e-04  1.210e-04   6.509 2.51e-07 ***
## X2          2.482e+00  1.730e-01  14.351 1.71e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7118 on 32 degrees of freedom
## Multiple R-squared:  0.9761, Adjusted R-squared:  0.9746 
## F-statistic: 652.1 on 2 and 32 DF,  p-value: < 2.2e-16

DAFTAR PUSTAKA

Montgomery, D. C., Peck, E. A., & Vining, G. G. (2012). Introduction to Linear Regression Analysis (5th ed.). John Wiley & Sons.