Determinants, Inverse, & Rank
Apakah Matriks Ini Invertible?
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.
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 issue6 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}\):
Hitung \(\det(A)\) menggunakan cofactor expansion sepanjang kolom pertama.
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}})\).
Tunjukkan bahwa \(\hat{\boldsymbol{\beta}} = (X^TX)^{-1}X^T\mathbf{y}\).
Kalau \(\text{Var}(\boldsymbol{\varepsilon}) = \sigma^2 I\), tunjukkan bahwa \(\text{Var}(\hat{\boldsymbol{\beta}}) = \sigma^2(X^TX)^{-1}\).
Solusi:
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}\]
\(\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.