Tugas Pertemuan 2
STA1373 Optimisasi
Statistika
Pra-processing Data
Guna melaksanakan algoritma iterasi Jacobi pada data yang hendak
dimodelkan, library Rlinsolve digunakan dengan
menuliskan argumen library(Rlinsolve) sebagai berikut,
library(Rlinsolve)Data yang digunakan pada pemodelan kali ini adalah data bawaan pada software R, yaitu data trees yang dimunculkan dengan sintaks sebagai berikut.
head(trees)## Girth Height Volume
## 1 8.3 70 10.3
## 2 8.6 65 10.3
## 3 8.8 63 10.2
## 4 10.5 72 16.4
## 5 10.7 81 18.8
## 6 10.8 83 19.7
Eksplorasi Data
Langkah awal mengenal data yang digunakan adalah dengan melakukan eksplorasi data. Eksplorasi data sederhana yang tepat digunakan adalah scatterplot yang mampu menjelaskan pola sebaran data dataset trees dengan sintaks sebagai berikut,
plot(trees)Analisis Data
Langkah analisis pertama yang dilakukan adalah membentuk matriks \(X\), yaitu matriks berisi nilai intersep dan peubah \(x\). Selain itu, perlu didefinisikan pula vektor \(y\) sebagai vektor berisi nilai peubah respon dengan rangkaian sintaks sebagai berikut,
X = cbind(intercept = 1, Girth = trees$Girth,
Height = trees$Height)
head(X)## intercept Girth Height
## [1,] 1 8.3 70
## [2,] 1 8.6 65
## [3,] 1 8.8 63
## [4,] 1 10.5 72
## [5,] 1 10.7 81
## [6,] 1 10.8 83
y <- trees$Volume
head(y)## [1] 10.3 10.3 10.2 16.4 18.8 19.7
Untuk mempermudah perkalian matriks yang dilakukan, perlu didefinisikan matriks \(A\) sebagai hasil perkalian matriks \((X'X)\) dan \(b\) sebagai hasil perkalian matriks \((X'y)\).
# Matriks A didefinisikan sebagai (X'X)
A <- t(X) %*% X
A## intercept Girth Height
## intercept 31.0 410.70 2356.0
## Girth 410.7 5736.55 31524.7
## Height 2356.0 31524.70 180274.0
# Matriks B didefinisikan sebagai (X'y)
b <- t(X) %*% y
b## [,1]
## intercept 935.30
## Girth 13887.86
## Height 72962.60
Penentuan nilai koefisien \(b_i\) pada data yang dimodelkan menggunakan metode iterasi Jacobi dapat dihasilkan menggunakan function lsolve.jacobi() dengan rangkaian sintaks sebagai berikut,
result <- lsolve.jacobi(A, b, xinit = rep(0,3),
reltol = 1e-07, maxiter = 10000)
result$x## [,1]
## [1,] -57.9867256
## [2,] 4.7081726
## [3,] 0.3392369
result$iter## [1] 5460
Berdasarkan proses iterasi Jacobian yang dilakukan, dihasilkan nilai \(b_0\), \(b_1\), dan \(b_2\) sebesar -57.987, 4.708, dan 0.339 setelah dilakukan 5460 iterasi. Dengan demikian, model persamaan yang terbentuk adalah sebagai berikut,
\[ \begin{aligned} y=-57.987+4.709x_1+0.339x_2 \end{aligned} \]
Sebagai perbandingan, dilakukan penentuan nilai koefisien \(b_i\) menggunakan function pada software R, yaitu solve() sebagai berikut,
solve(A, b)## [,1]
## intercept -57.9876589
## Girth 4.7081605
## Height 0.3392512
Berdasarkan function solve() di atas, model persamaan yang dihasilkan adalah sebagai berikut,
\[ \begin{aligned} y=-57.988+4.708x_1+0.339x_2 \end{aligned} \]
Kesimpulan
Mengacu pada kedua ouput yang dihasilkan, tidak terdapat perbedaan yang signifikan antara koefisien yang dihasilkan dari function lsolve.jacobi() dan solve(). Dengan demikian, iterasi Jacobi yang dilakukan berhasil menghasilkan koefisien yang tepat untuk model persamaan yang dimodelkan, yaitu
\[ \begin{aligned} (b_0, b_1, b_2) = (-57.987, 4.709, 0.339) \end{aligned} \]