“Sudah beberapa bulan tidak menengok blog ini. Sampai-sampai beberapa komentar tidak saya jawab. Saya mohon maaaf. “
Akhir-akhir ini banyak tugas kuliah yang cukup memeras otak. Salah satunya tugas untuk membuat paper tentang imputasi data missing/incomplete plus membuat macro-nya di Minitab. Alhamdulillah, untuk kasus data univariate, macro-nya bisa diselesaikan. Namun pada kasus data multivariat (normal) , salah satu bagian dari algoritma metode imputasi data augmentation adalah dekomposisi matrik Cholesky. Sayangnya waktu googling saya tidak mendapatkan.
Mau tidak mau akhirnya harus dibuat sendiri macro Minitab untuk dekomposisi Cholesky. Dengan mencoba beberapa algoritma, alhamdulillah akhirnya macro dapat diselesaikan. Namun hasil dari macro-nya adalah matrik segitiga atas. Di bawah ini adalah codenya, simpan dengan nama cholesky.mac
MACRO
# Macro for computing the Cholesky factorization:
# Written by : Achmad Syahrul Choir
# Versi : 1.0
# Last modified : 1th December, 2009
# Input MAI : Matrix A, positive definite
# p : Constant Number of variable
#
# Output MAO : Upper Triangle Matrix /Cholesky Triangle
# SOURCE : G.H Golub and Charles F. Van Loan
# Matrix COmputation, Third Edition,1996
############################################Cholesky MAI MAO p
MCONSTANT i j k s p n
MCOLUMN v ColA.1-ColA.p ColTA.1-ColTA.p G.1-G.p w nma ntma
MMATRIX MAI MAO TMAI MA0 TMAO MAIC#ERROR MESSAGE
Diagonal MAI w.
let n=count(w)if p~=n
note *** ERROR *** Number of variables input differs from number of variables in matrix
exit
endif#ERROR MESSAGE
Transpose MAI TMAI
Copy MAI ColA.1-ColA.p
Copy TMAI ColTA.1-ColTA.p
Stack ColA.1-ColA.p nma
Stack ColTA.1-ColTA.p ntma
if nma~=ntma
note *** ERROR *** matrix must be symmetric.
exit
endifDefine 0 p p MA0
copy MA0 G.1-G.pdo j=1:p
do i=j:p
let v(i)=COLA.i(j)
let k=1
while k<j
let v(i)=v(i)-G.j(k)*G.i(k)
let k=k+1
endwhile
let G.i(j)=v(i)/(v(j))**0.5enddo
enddocopy G.1-G.p MAO
transpose MAO TMAO
multiply TMAO MAO MAIC
name MAO ‘G=Cholesky Triangular/Upper triangular’
name MAI ‘ A=Matrix Symmetric Positife Definite’
name MAIC ‘Multiply GT (G transpose) and G’
Note Checking……….
print MAO MAI MAICendmacro
Saran dikritik mohon disampaikan di sini. Terima kasih