PML - Bentuk Kuadratik

Video Pembelajaran - P2

Video Pembelajaran dapat diakses melalui link berikut : https://ipb.link/materipml

Bentuk Kuadratik

  • Bentuk Kuadratik adalah suatu ekspresi matematika yang melibatkan vektor dan matriks. Bentuk kuadratik umum dinyatakan sebagai \(q = y^T A y\), di mana \(y\) adalah vektor kolom, \(A\) adalah matriks persegi, dan \(y^T\) adalah transpos dari vektor \(y\).

  • Dalam statistik, bentuk kuadratik sering digunakan untuk menghitung berbagai nilai seperti jarak Euclidean, variansi, dan lain-lain.

Contoh dalam R

# Misalkan kita memiliki matriks A dan vektor y
A <- matrix(c(2, -1, -1, 2), nrow = 2, byrow = TRUE)
y <- c(1, 1)

# Menghitung bentuk kuadratik q = y^T * A * y
q <- t(y) %*% A %*% y
print(q)  # Hasilnya adalah 2
##      [,1]
## [1,]    2

Penjelasan:

  • \(A\): Matriks simetri berukuran 2x2

  • \(y\): Vektor berukuran 2x1.

  • \(q\): Hasil dari bentuk kuadratik yang dihitung dengan mengalikan transpos dari \(y\) dengan matriks \(A\), kemudian dikalikan dengan \(y\).

Turunan Bentuk Kuadratik

  • Turunan dari bentuk kuadratik terhadap vektor adalah konsep penting dalam optimasi dan analisis. Misalkan bentuk kuadratik \(z = y^T A y\), maka turunan dari \(z\) terhadap \(y\) diberikan oleh: \[ \frac{\partial z}{\partial y} = A y + A^T y \]

  • Jika \(A\) adalah matriks simetri, maka \(A^T = A\), sehingga turunan menjadi \(2A y\).

Contoh dalam R

A <- matrix(c(2, -1, -1, 2), nrow = 2, byrow = TRUE)
y <- c(1, 1)

# Menghitung turunan dari z = y'Ay
gradient_z <- A %*% y + t(A) %*% y
print(gradient_z)
##      [,1]
## [1,]    2
## [2,]    2

Penjelasan:

  • \(gradient_z\): Vektor hasil turunan dari bentuk kuadratik.

  • Dalam kasus ini, karena \(A\) adalah simetri, turunan akan menghasilkan vektor yang merupakan hasil kali matriks \(A\) dengan vektor \(y\) ditambah hasil kali transpos dari \(A\) dengan \(y\).

Nilai Harapan Vektor Peubah Acak

  • Nilai Harapan (Mean) dari vektor peubah acak adalah rata-rata dari elemen-elemen dalam vektor tersebut. Nilai harapan memberikan ukuran pusat dari distribusi probabilitas.

  • Dalam kasus vektor \(y\), nilai harapan dihitung sebagai: \[ E[y] = \frac{1}{n} \sum_{i=1}^{n} y_i \]

Contoh dalam R

y <- c(2, 4, 6, 8, 10)

# Menghitung nilai harapan
E_y <- mean(y)
print(E_y)  # Hasilnya adalah 6
## [1] 6

Penjelasan:

  • \(E_y\): Nilai harapan dari vektor \(y\), yang dihitung sebagai rata-rata dari semua elemen dalam \(y\).

Ragam Vektor Peubah Acak

  • Ragam (Variance) adalah ukuran penyebaran data dalam sebuah dataset. Untuk vektor peubah acak \(y\), ragam dihitung sebagai rata-rata kuadrat dari deviasi masing-masing elemen terhadap nilai harapan.

  • Rumusnya adalah: \[ Var(y) = \frac{1}{n-1} \sum_{i=1}^{n} (y_i - \mu)^2 \] di mana \(\mu\) adalah nilai harapan dari \(y\).

Contoh dalam R

y <- c(2, 4, 6, 8, 10)

# Menghitung ragam
V <- var(y)
print(V)  # Hasilnya adalah 10
## [1] 10

Penjelasan:

  • \(V\): Ragam dari vektor \(y\), yang menunjukkan seberapa jauh nilai-nilai dalam vektor tersebar dari rata-rata.

Ragam Bentuk Kuadratik

  • Ragam Bentuk Kuadratik: Dalam kasus bentuk kuadratik \(y^T A y\), ragam dari bentuk ini dihitung menggunakan matriks varians dari \(y\) dan nilai harapan dari \(y\).

Contoh dalam R

# Definisikan matriks A dan vektor mu
A <- matrix(c(6, -6, 4, 1, 7, 0, -3, 8, 1), nrow = 3, ncol = 3, byrow = TRUE)
mu <- c(1, 3, 2)
sigma_squared <- 4
V <- diag(3) * sigma_squared

# Menghitung E[y'Ay]
trace_AV <- sum(diag(A %*% V))
mu_A_mu <- t(mu) %*% A %*% mu
E_y_A_y <- trace_AV + mu_A_mu
E_y_A_y
##      [,1]
## [1,]  164

Penjelasan:

  • \(var_quad\): Ragam dari bentuk kuadratik yang dihitung dengan menggunakan matriks kovarians dari \(y\) dan nilai harapan dari \(y\). Ini memberikan ukuran seberapa besar variasi dalam bentuk kuadratik tersebut.

Pembahasan Soal

Soal 1

# Definisikan matriks A dan vektor mu
A <- matrix(c(2, -3, 1, 1, 2, 0, -1, 6, 1), nrow = 3, ncol = 3, byrow = TRUE)
mu <- c(1, 3, 2)
sigma_squared <- 4
V <- diag(3) * sigma_squared

# Menghitung E[y'Ay]
trace_AV <- sum(diag(A %*% V))
mu_A_mu <- t(mu) %*% A %*% mu
E_y_A_y <- trace_AV + mu_A_mu
E_y_A_y
##      [,1]
## [1,]   74

Soal 2

# Definisikan vektor-vektor
x1 <- c(1, 1, -1, -1)
x2 <- c(1, -1, 1, -1)
x3 <- c(1, 1, 1, 1)

# Mengecek apakah x1 dan x2 ortogonal
ortogonal_x1_x2 <- sum(x1 * x2) == 0
ortogonal_x1_x3 <- sum(x1 * x3) == 0
ortogonal_x2_x3 <- sum(x2 * x3) == 0

# Mengecek apakah panjang vektor adalah 1 (ortonormal)
norm_x1 <- sqrt(sum(x1^2))
norm_x2 <- sqrt(sum(x2^2))
norm_x3 <- sqrt(sum(x3^2))

# Mengecek apakah himpunan {x1, x2, x3} ortonormal
is_ortonormal <- ortogonal_x1_x2 && ortogonal_x1_x3 && ortogonal_x2_x3 && 
  norm_x1 == 1 && norm_x2 == 1 && norm_x3 == 1
is_ortonormal
## [1] FALSE
# Jika tidak ortonormal, hitung nilai c agar {cx1, cx2, cx3} ortonormal
c_value <- 1 / norm_x1
c_value
## [1] 0.5

Soal 3

# Definisikan beberapa matriks A, B, C, D
A <- matrix(c(2, -1, -1, 2), nrow = 2, byrow = TRUE)
B <- matrix(c(1, 1, 1, 2), nrow = 2, byrow = TRUE)
C <- matrix(c(2, 2, 2, 2), nrow = 2, byrow = TRUE)
D <- matrix(c(0, -1, -1, 0), nrow = 2, byrow = TRUE)

# Fungsi untuk mengecek sifat definit dari suatu matriks
check_definit <- function(mat) {
  eigen_values <- eigen(mat)$values
  if (all(eigen_values > 0)) {
    return("Definit Positif")
  } else if (all(eigen_values >= 0)) {
    return("Semi-Definit Positif")
  } else {
    return("Bukan Keduanya")
  }
}

# Mengecek sifat definit dari masing-masing matriks
result_A <- check_definit(A)
result_B <- check_definit(B)
result_C <- check_definit(C)
result_D <- check_definit(D)

result_A
## [1] "Definit Positif"
result_B
## [1] "Definit Positif"
result_C
## [1] "Semi-Definit Positif"
result_D
## [1] "Bukan Keduanya"