Determinants, Inverse, & Rank

Apakah Matriks Ini Invertible?

NoteWhy This Matters for Your Work

OLS estimator adalah \(\hat{\boldsymbol{\beta}} = (X^TX)^{-1}X^T\mathbf{y}\). Ada satu kata kecil yang membawa implikasi besar: inverse \((X^TX)^{-1}\).

Matriks \(X^TX\) harus invertible (non-singular) untuk OLS bisa menghasilkan unique solution. Kapan dia tidak invertible? Ketika ada multicollinearity — satu atau lebih predictor bisa ditulis sebagai kombinasi linear predictor lain.

Determinant adalah cara cepat cek invertibility: \(\det(A) = 0 \iff A\) singular. Tapi di praktik, kita pakai condition number (rasio eigenvalues) untuk mendeteksi near-singularity yang juga berbahaya.

Topics ini juga fundamental untuk: - Memahami mengapa certain matrix operations fail - Gauss-Markov theorem (efficiently computing BLUE) - Transformation Jacobians di probability theory - Likelihood functions di MLE


1 1. Determinant

1.1 Kasus 2x2

Untuk matriks \(2 \times 2\): \[\det\begin{bmatrix}a & b \\ c & d\end{bmatrix} = ad - bc\]

Sederhana tapi powerful. Interpretasi geometris: determinant adalah faktor skala area. Jika kita bayangkan dua kolom matriks sebagai vektor yang membentuk parallelogram, \(|\det(A)|\) adalah luas parallelogram tersebut.

  • \(\det(A) > 0\): transformasi preserve orientation
  • \(\det(A) < 0\): transformasi flip orientation
  • \(\det(A) = 0\): kolom-kolom linearly dependent → parallelogram “collapsed” → area = 0

1.2 Interpretasi Geometris

Transformasi linear \(T(\mathbf{x}) = A\mathbf{x}\) mengubah volume benda di \(\mathbb{R}^n\) dengan faktor \(|\det(A)|\). Ini berarti:

  • \(|\det(A)| > 1\): matriks “mengembangkan” ruang
  • \(|\det(A)| < 1\): matriks “menyusutkan” ruang
  • \(|\det(A)| = 0\): matriks “meratakan” ruang ke dimensi yang lebih rendah — informasi hilang, tidak bisa di-invert

1.3 Properties Determinant

\[\det(AB) = \det(A)\det(B)\] \[\det(A^T) = \det(A)\] \[\det(cA) = c^n\det(A) \quad \text{untuk } A \in \mathbb{R}^{n \times n}\] \[\det(A^{-1}) = \frac{1}{\det(A)}\] \[\det(A) = 0 \iff A \text{ singular (non-invertible)}\]

Row operation effects: - Row swap: det berubah tanda - Row scaling (\(R_i \leftarrow cR_i\)): det dikali \(c\) - Row addition (\(R_i \leftarrow R_i + cR_j\)): det tidak berubah

1.4 Cofactor Expansion

Untuk matriks \(n \times n\), det bisa dihitung dengan cofactor expansion sepanjang baris ke-\(i\):

\[\det(A) = \sum_{j=1}^n a_{ij} C_{ij}\]

di mana \(C_{ij} = (-1)^{i+j} M_{ij}\) adalah cofactor, dan \(M_{ij}\) adalah minor (determinant dari matriks yang diperoleh dengan menghapus baris \(i\) dan kolom \(j\)).

Tanda cofactor: pola papan catur \(\begin{bmatrix}+&-&+\\-&+&-\\+&-&+\end{bmatrix}\)


2 2. Worked Example: Determinant 3x3

Hitung \(\det(A)\) untuk: \[A = \begin{bmatrix}1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 10\end{bmatrix}\]

Ekspansi sepanjang baris pertama (\(i = 1\)):

\[\det(A) = a_{11}C_{11} + a_{12}C_{12} + a_{13}C_{13}\]

\(C_{11}\): hapus baris 1, kolom 1; tanda \((+)\): \[C_{11} = (+1)\det\begin{bmatrix}5 & 6 \\ 8 & 10\end{bmatrix} = (5)(10) - (6)(8) = 50 - 48 = 2\]

\(C_{12}\): hapus baris 1, kolom 2; tanda \((-)\): \[C_{12} = (-1)\det\begin{bmatrix}4 & 6 \\ 7 & 10\end{bmatrix} = (-1)[(4)(10) - (6)(7)] = (-1)[40-42] = 2\]

\(C_{13}\): hapus baris 1, kolom 3; tanda \((+)\): \[C_{13} = (+1)\det\begin{bmatrix}4 & 5 \\ 7 & 8\end{bmatrix} = (4)(8) - (5)(7) = 32 - 35 = -3\]

Jadi: \[\det(A) = (1)(2) + (2)(2) + (3)(-3) = 2 + 4 - 9 = -3\]

Verifikasi di R:

A <- matrix(c(1,2,3,4,5,6,7,8,10), nrow=3, byrow=TRUE)
det(A)  # -3 ✓

Apa artinya det = -3? Transformasi \(A\) mengubah volume dengan faktor \(|-3| = 3\) dan membalik orientasi. Karena \(\det \neq 0\), matriks ini invertible.


3 3. Matrix Inverse

3.1 Definisi dan Syarat Eksistensi

Untuk matriks persegi \(A \in \mathbb{R}^{n \times n}\), inverse \(A^{-1}\) (jika ada) adalah matriks unik sedemikian sehingga: \[A^{-1}A = AA^{-1} = I\]

Matriks \(A\) invertible (atau non-singular) \(\iff\): - \(\det(A) \neq 0\) - \(\text{rank}(A) = n\) - Kolom-kolom \(A\) linearly independent - \(A\mathbf{x} = \mathbf{0}\) hanya punya solusi \(\mathbf{x} = \mathbf{0}\) - Semua eigenvalues nonzero (akan dibahas di topik berikutnya)

Semua kondisi ini ekuivalen satu sama lain.

3.2 Formula Inverse untuk 2x2

\[\begin{bmatrix}a & b \\ c & d\end{bmatrix}^{-1} = \frac{1}{ad-bc}\begin{bmatrix}d & -b \\ -c & a\end{bmatrix}\]

Jadi: swap diagonal, negate off-diagonal, bagi dengan det. Mudah diingat!

3.3 Properties Inverse

\[(AB)^{-1} = B^{-1}A^{-1} \quad \leftarrow \text{urutan terbalik!}\] \[(A^T)^{-1} = (A^{-1})^T\] \[(A^{-1})^{-1} = A\] \[(cA)^{-1} = \frac{1}{c}A^{-1}\]

Properti pertama sangat penting. Ingat: \((AB)^{-1}\) bukan \(A^{-1}B^{-1}\). Analoginya: untuk melepas sepatu dan kaus kaki (\(B\) dulu baru \(A\)), urutannya dibalik: kaus kaki dulu baru sepatu.

3.4 Metode Komputasi: Augmented Matrix

Untuk menemukan \(A^{-1}\), kita lakukan row reduction pada \([A|I]\): \[[A|I] \xrightarrow{\text{row operations}} [I|A^{-1}]\]

Ide: row operations yang mentransformasi \(A\) ke \(I\) adalah operasi-operasi yang sama yang mentransformasi \(I\) ke \(A^{-1}\).


4 4. Worked Example: Inverse Matrix

Temukan inverse dari \(A = \begin{bmatrix}3 & 1 \\ 5 & 2\end{bmatrix}\) dan verifikasi.

Step 1: Hitung det: \[\det(A) = (3)(2) - (1)(5) = 6 - 5 = 1\]

\(\det \neq 0\) → invertible.

Step 2: Gunakan formula 2x2: \[A^{-1} = \frac{1}{1}\begin{bmatrix}2 & -1 \\ -5 & 3\end{bmatrix} = \begin{bmatrix}2 & -1 \\ -5 & 3\end{bmatrix}\]

Step 3: Verifikasi \(AA^{-1} = I\): \[AA^{-1} = \begin{bmatrix}3 & 1 \\ 5 & 2\end{bmatrix}\begin{bmatrix}2 & -1 \\ -5 & 3\end{bmatrix}\] \[= \begin{bmatrix}(3)(2)+(1)(-5) & (3)(-1)+(1)(3) \\ (5)(2)+(2)(-5) & (5)(-1)+(2)(3)\end{bmatrix}\] \[= \begin{bmatrix}6-5 & -3+3 \\ 10-10 & -5+6\end{bmatrix} = \begin{bmatrix}1 & 0 \\ 0 & 1\end{bmatrix} = I \checkmark\]

Verifikasi di R:

A <- matrix(c(3,1,5,2), nrow=2, byrow=TRUE)
A_inv <- solve(A)
cat("A inverse:\n"); print(A_inv)

# Verify AA^{-1} = I
cat("AA^{-1}:\n"); print(round(A %*% A_inv, 10))
cat("A^{-1}A:\n"); print(round(A_inv %*% A, 10))

Metode augmented matrix (lebih umum, untuk n > 2):

# install.packages("pracma")
library(pracma)

A <- matrix(c(3,1,5,2), nrow=2, byrow=TRUE)
I2 <- diag(2)
augmented <- cbind(A, I2)
cat("Augmented [A|I]:\n"); print(augmented)

rref_result <- rref(augmented)
cat("After RREF [I|A^{-1}]:\n"); print(rref_result)
# Kolom 3-4 adalah A^{-1}

5 5. Singular Matrices dan Condition Number

5.1 Singular Matrices

Matriks singular (\(\det(A) = 0\)) tidak punya inverse. Ini terjadi ketika: - Satu baris/kolom adalah kelipatan baris/kolom lain - Ada kombinasi linear nontrivial dari baris/kolom yang menghasilkan vektor nol - Transformasi “meratakan” ruang ke dimensi lebih rendah

Contoh klasik: \[A = \begin{bmatrix}1 & 2 \\ 2 & 4\end{bmatrix}, \quad \det(A) = 4 - 4 = 0\]

Kolom kedua = 2 × kolom pertama. Kolom-kolom linearly dependent.

5.2 Near-Singular: Condition Number

Dalam praktik, determinant yang kecil tidak selalu berarti masalah numerik. Yang lebih penting adalah condition number:

\[\kappa(A) = \frac{\sigma_{\max}(A)}{\sigma_{\min}(A)} = \|A\| \cdot \|A^{-1}\|\]

di mana \(\sigma_{\max}\) dan \(\sigma_{\min}\) adalah singular values terbesar dan terkecil.

Interpretasi: kalau \(\kappa(A) = 10^k\), maka solusi kehilangan sekitar \(k\) digit presisi. Komputer 64-bit punya sekitar 16 digit presisi, jadi \(\kappa > 10^{12}\) praktis berarti singular.

CautionConnection: Multicollinearity dan Condition Number

Ketika \(X\) mengalami multicollinearity: - \(\text{rank}(X) < p\)\(\det(X^TX) = 0\) (perfect multicollinearity) - Atau \(\det(X^TX) \approx 0\) (near multicollinearity) → \(\kappa(X^TX)\) sangat besar

Konsekuensinya: - \((X^TX)^{-1}\) tidak stabil: perubahan kecil di data → perubahan besar di \(\hat{\boldsymbol{\beta}}\) - Standard errors membengkak: \(\text{Var}(\hat{\boldsymbol{\beta}}) = \sigma^2(X^TX)^{-1}\), kalau \((X^TX)^{-1}\) besar, variansi juga besar - Koefisien sulit diinterpretasikan: nilai bisa berubah drastis ketika satu predictor di-drop

Deteksi dalam R:

# VIF (Variance Inflation Factor)
# install.packages("car")
library(car)
fit <- lm(y ~ x1 + x2 + x3, data=mydata)
vif(fit)  # VIF > 10 menandakan masalah serius

# Condition number dari X^TX
X <- model.matrix(fit)
kappa(t(X) %*% X)  # > 1000 biasanya bermasalah

# Eigenvalues dari X^TX (diagnosis lebih detail)
ev <- eigen(t(X) %*% X)$values
cat("Eigenvalues:", ev, "\n")
cat("Condition index:", sqrt(max(ev)/ev), "\n")
# Condition index > 30 untuk suatu eigenvalue → collinearity issue

6 6. Determinants dan Inverse di R

# === 2x2 example ===
A <- matrix(c(3, 1, 5, 2), nrow=2, byrow=TRUE)

det(A)       # 1
solve(A)     # inverse
solve(A, c(1,0))  # solve Ax = b (more efficient than solve(A) %*% b)

# === 3x3 example ===
B <- matrix(c(1,2,3,4,5,6,7,8,10), nrow=3, byrow=TRUE)
det(B)       # -3
solve(B)     # inverse

# === Verify properties ===
C <- matrix(c(2,1,0,3,1,2,1,0,4), nrow=3, byrow=TRUE)
D <- matrix(c(1,2,3,1,0,1,2,1,0), nrow=3, byrow=TRUE)

# det(CD) = det(C) * det(D)
cat(det(C %*% D), "\n")
cat(det(C) * det(D), "\n")

# det(C^T) = det(C)
cat(det(t(C)), "\n")

# (CD)^{-1} = D^{-1} C^{-1}
max(abs(solve(C %*% D) - solve(D) %*% solve(C)))  # ≈ 0

# === Condition number ===
X <- matrix(c(1,2,3,2,4.01,6,3,6,9.01), nrow=3, byrow=TRUE)  # near singular
cat("Condition number:", kappa(X), "\n")  # very large!
cat("det(X):", det(X), "\n")

# === Checking near-singular (for OLS) ===
n <- 100; p <- 5
X_data <- cbind(1, matrix(rnorm(n*(p-1)), n, p-1))
XtX <- t(X_data) %*% X_data

cat("Rank:", qr(XtX)$rank, "\n")
cat("Condition number of X^TX:", kappa(XtX), "\n")
cat("Determinant:", det(XtX), "\n")

7 7. Rumus Penting: Invers Matriks Block dan Sherman-Morrison

Dalam econometrics dan ML yang lebih advanced, sering muncul situasi di mana kita perlu invers matriks yang besar atau update matriks secara efisien. Dua formula berguna:

7.1 Woodbury Matrix Identity

\[(A + UCV)^{-1} = A^{-1} - A^{-1}U(C^{-1} + VA^{-1}U)^{-1}VA^{-1}\]

Berguna ketika \(A\) besar tapi mudah di-invert, dan \(U, C, V\) kecil. Contoh: update inverse ketika menambah observasi baru (rolling OLS).

7.2 Sherman-Morrison Formula

\[(A + \mathbf{u}\mathbf{v}^T)^{-1} = A^{-1} - \frac{A^{-1}\mathbf{u}\mathbf{v}^TA^{-1}}{1 + \mathbf{v}^TA^{-1}\mathbf{u}}\]

Rank-1 update dari inverse. Useful di kalman filter, recursive least squares.


8 8. Practice Problems

Problem 1: Hitung determinant

Untuk \(A = \begin{bmatrix}2 & -1 & 0 \\ 1 & 3 & -2 \\ 0 & 1 & 4\end{bmatrix}\):

  1. Hitung \(\det(A)\) menggunakan cofactor expansion sepanjang kolom pertama.

  2. Apakah \(A\) invertible?

Solusi:

Ekspansi sepanjang kolom 1: \[\det(A) = 2 \cdot (+1)\det\begin{bmatrix}3&-2\\1&4\end{bmatrix} + 1 \cdot (-1)\det\begin{bmatrix}-1&0\\1&4\end{bmatrix} + 0 \cdot \ldots\]

\[= 2(12+2) - 1(-4-0) = 2(14) - (-4) = 28 + 4 = 32\]

\(\det(A) = 32 \neq 0\)\(A\) invertible.


Problem 2: Inverse 2x2

Temukan inverse dari \(B = \begin{bmatrix}4 & 7 \\ 2 & 6\end{bmatrix}\) dan verifikasi.

Solusi: \(\det(B) = 24 - 14 = 10\)

\[B^{-1} = \frac{1}{10}\begin{bmatrix}6 & -7 \\ -2 & 4\end{bmatrix} = \begin{bmatrix}0.6 & -0.7 \\ -0.2 & 0.4\end{bmatrix}\]

Verifikasi: \[BB^{-1} = \begin{bmatrix}4&7\\2&6\end{bmatrix}\begin{bmatrix}0.6&-0.7\\-0.2&0.4\end{bmatrix} = \begin{bmatrix}2.4-1.4 & -2.8+2.8 \\ 1.2-1.2 & -1.4+2.4\end{bmatrix} = \begin{bmatrix}1&0\\0&1\end{bmatrix} \checkmark\]


Problem 3 (Konseptual): Buktikan bahwa \((AB)^{-1} = B^{-1}A^{-1}\).

Bukti: \[(AB)(B^{-1}A^{-1}) = A(BB^{-1})A^{-1} = A \cdot I \cdot A^{-1} = AA^{-1} = I\] \[(B^{-1}A^{-1})(AB) = B^{-1}(A^{-1}A)B = B^{-1} \cdot I \cdot B = B^{-1}B = I\]

Karena \((AB)(B^{-1}A^{-1}) = I\) dan \((B^{-1}A^{-1})(AB) = I\), maka \((AB)^{-1} = B^{-1}A^{-1}\). \(\square\)


Problem 4: OLS Context

Misalkan kita punya model \(\mathbf{y} = X\boldsymbol{\beta} + \boldsymbol{\varepsilon}\) dan ingin compute \(\text{Var}(\hat{\boldsymbol{\beta}})\).

  1. Tunjukkan bahwa \(\hat{\boldsymbol{\beta}} = (X^TX)^{-1}X^T\mathbf{y}\).

  2. Kalau \(\text{Var}(\boldsymbol{\varepsilon}) = \sigma^2 I\), tunjukkan bahwa \(\text{Var}(\hat{\boldsymbol{\beta}}) = \sigma^2(X^TX)^{-1}\).

Solusi:

  1. Minimize \(\|\mathbf{y} - X\boldsymbol{\beta}\|^2\). First-order condition: \[-2X^T(\mathbf{y} - X\hat{\boldsymbol{\beta}}) = \mathbf{0} \Rightarrow X^TX\hat{\boldsymbol{\beta}} = X^T\mathbf{y} \Rightarrow \hat{\boldsymbol{\beta}} = (X^TX)^{-1}X^T\mathbf{y}\]

  2. \(\hat{\boldsymbol{\beta}} = (X^TX)^{-1}X^T\mathbf{y}\). Karena \(\mathbf{y} = X\boldsymbol{\beta} + \boldsymbol{\varepsilon}\): \[\text{Var}(\hat{\boldsymbol{\beta}}) = [(X^TX)^{-1}X^T]\text{Var}(\mathbf{y})[X(X^TX)^{-1}]^T\] \[= (X^TX)^{-1}X^T \cdot \sigma^2 I \cdot X(X^TX)^{-1}\] \[= \sigma^2(X^TX)^{-1}(X^TX)(X^TX)^{-1} = \sigma^2(X^TX)^{-1}\]

Ini adalah formula untuk variance-covariance matrix of OLS estimator. Semakin “besar” \((X^TX)^{-1}\) (dalam arti eigenvalues), semakin besar variansi koefisien → multicollinearity menyebabkan estimasi yang tidak presisi.