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} \]