Kajian Penerapan Jaringan Syaraf Tiruan dalam Metode Kuadrat Terkecil Parsial
KAJIAN PENERAPAN JARINGAN SYARAF TIRUAN
DALAM METODE KUADRAT TERKECIL PARSIAL
OLEH :
RUSLAN
PROGRAM PASCASARJANA
INSTITUT PERTANIAN BOGOR
2002
"Sesuqjyuhnyasetehh &&tan
ad2 ~mulibliaq
sesunaguhn. setehh &nrCitan ad2 ~m&han."
~endzsanini saya persem6ahkan untuk
Ayah Ticinta @p&P 6 a .
ABSTRAK
RUSLAN. Kajian Penerapan Jaringan Syaraf Tiruan dalam Metode Kuadrat Terkecil
Parsial. Dibimbing oleh AJI HAMIM WIGENA dan ASEP SAEFUDDIN.
Penelitian ini merupakan suatu kajian tentang penerapan Jaringan Syaraf
Tiruan (ArtiJicial Neural Network) dalam Metode Kuadrat Terkecil Parsial (MKTP)
yaitu metode Neural Network Partial Least Square (NNPLS). Metode NNPLS
mampu mengatasi data dengan kendala yaitu ada korelasi antar peubah penjelas,
jumlah pengarnatan yang terbatas, dan indikasi nonlinier. Metode NNPLS merupakan
integrasi MKTP dengan metode Jaringan Syaraf Tiruan dirnana hasil MKTP
merupakan input untuk Jaringan Syaraf Tiruan dalam memprediksi peubah tak bebas.
Tujuan penelitian ini adalah mengkaji penerapan metode Jaringan Syaraf Tiruan
dalam MKTP (metode NNPLS) dan membandingkan metode NNPLS dengan metode
MKTP berdasarkan akar Kuadrat Tengah Galat (Root Mean Square Error). Hasil
penelitian menunjukan bahwa metode NNPLS lebih baik dari MKTP.
SURAT PERNYATAAN
Dengan ini saya menyatakan bahwa tesis yang berjudul :
KAJIAN PENERAPAN JARINGAN SYARAF TIRUAN
DALAM METODE KUADRAT TERKECIL PARSIAL
adaiah benar merupakan hasil karya saya sendiri dan belum pernah dipublikasikan.
Semua sumber data dan informasi yang digunakan telah dinyatakan secara jelas dan
dapat diperiksa kebenarannya.
Bogor, 5 Juni 2002
Ruslan
Nrp. : 98 124lSTK
KAJIAN PENERAPAN JARINGAN SYARAF TIRUAN
DALAM METODE KUADRAT TERKECIL PARSIAL
OLEH :
RUSLAN
Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Sains pada
Program Studi Statistika
PROGRAM PASCASARJANA
INSTITUT PERTANIAN BOGOR
2002
Judul
: Kajian Penerapan Jaringan Syaraf Tiruan dalam
Metode Kuadrat Terkecil Parsiai
Nama Mahasiswa
: Ruslan
Nomor Poltok
: 98124
Program Studi
: Stat,istil 0.1. Hasil tersebut menunjukkan bahwa model yang dibentuk dapat dijelaskan
oleh persentase variasi dari 6 peubah laten. Hasil dari persentase variasi peubah yang
dihasilkan dari 6 peubah laten dapat dilihat pada Tabel 2.
Tabel 2. Porsentase variasi yang dihasilkan untuk menjelaskan variasi peubah
Banyak Peubah Laten
1
2
3
Pengaruh Model
Kumulatif
persentase
77.6789
20.6275
1.0013
77.6789
98.3064
99.3077
Peuball Tak Bebas
persentase Kumulatif
47.8023
38.9682
6.8932
47.8023
86.7705
93.6637
Enam komponen tersebut dapat menjelaskan variasi peubah dimana untuk
pengaruh model dijelaskan dengan total 99.8 % dan untuk peubah tak bebas dijelaskan
dengan total 97.8 %. Hasil ini menunjukkan kecukupan variasi dari model yang dapat
dijelaskan dengan 6 peubah laten.
Penentuan pendugaan dengan MKTP
Hasil perhitungan vektor skor u dan t (Lampiran 4) berdasarkan banyak
komponen hasil dari validasi silang. Plot antara vektor skor u dan t dengan menggunakan
metode MKTP dapat dilihat pada Gambar 5.
Pada Gambar 5 ditunjukkan bahwa plot antara vektor skor u dan t pada tiap
komponen yang dibentuk memiliki model internal yang linier. Hasil pendugaan Y untuk
ketiga peubah yang dihasilkan terdiri dari 3 peubah dan 33 pengamatan (Lampiran 5).
(a) Plot antara vektor t dan u pada h=l
(b) Plot antara vektor t dan u pada h=3
(d) Plot antara vektor t dan u pada h= 5
(b) Plot antara vektor t dan u pada h=2
(d) Plot antara vektor t dan u pada h= 4
(e) Plot antara vektor t dan u pada h=6
Gambar 5. Plot antara vektor skor u dan t pada tiap-tiap komponen dengan MKTP.
Penentuan pendugaan dengan NNPLS.
Hasil perhitungan vektor skor u dan t dengan metode NNPLS (Lampiran 6 )
berdasarkan banyaknya komponen hasil dari validasi silan dan hasil perhitungan vektor
lib dengan h
=1,2, ...,6 dan vektor t untuk model internal (Lampiran 7). Gambar 6
memperlihatkan bahwa plot antara vektor skor u dan t untuk model eksternal dan vektor
skor tih dan vektor skor t untuk model internal dengan metode NNPLS .
(a). plot antara u dan t pada h=l
t3
(c). plot antara u dan t pada h = 3
tS
(e). plot antara u dan t pada h = 5
@). plot antara u dan t pada h = 2
u
(d). plot antara u dan t pada h = 4
16
(f). plot antara u dm t pada 11 = 6
Keterangan :
Gambar 6. Plot antara vektor skor u dan t hasil dari metode NNPLS
Gambar 6 menunjukan bahwa plot yang dibentuk memiliki model internal yang
nonlinier. Hasil pendugaan Y untuk ketiga peubah yang diukur tersebut memperoleh hasil
seperti pada Lampiran 10. Pendugaan yang dihasilkan terdiri dari 3 peubah dan 33
pengamatan.
seperti pada Lampiran 10. Pendugaan yang dihasilkan terdiri dari 3 peubah dan 33
pengamatan.
Perbandingan RMSE antara MKTP dengan NNPLS
Untuk mengetahui metode yang terbaik, maka hasil pendugaan ketiga peubah
(Yl, Y2, dan Y3) dari metode MKTP (Lampiran 9) dan metode NNPLS (Lampiran 10)
akan dibandingkan berdasarkan nilai akar kuadrat tengah galat. Metode terbaik adalah
metode yang memiliki akar kuadrat tengah galat terkecil. Tabel 3 menunjukan bahwa
NNPLS memiliki nilai akar kuadrat tengah galat yang lebih kecil dibandingkan dengan
pendekatan metode MKTP. Hal ini terlihat pada h ke 6 dari hasil kedua metode yang
dibentuk dalam Tabel 3.
Tabel 3. Perbandingan RMSE MKTP dengan RMSE NNPLS
Metode Pendekatan
MKTP
NNPLS
RMSE Y 1 RMSE Y2
9.48 162
3.57697
0.75 1229 1.29870
RMSE Y3
4.07213
1.64413
Tabel 3 memperlihatkan bahwa metode NNPLS lebih baik dibandingkan dengan
metode MKTP. Hal tersebut diperlihatkan dengan lebih kecilnya RMSE NNPLS
dibandingkan RMSE MKTP pada tiap-tiap peubah.
KESIMPULAN
Penelitian ini merupakan suatu kajian untuk membandingkan dua metode yaitu
Metode Kuadrat Terkecil Parsial (MKTP) dengan Metode Neural Network Partial Least
Square (NNPLS). Metode pembelajaran yang digunakan dalam metode NNPLS adalah
metode pembelajaran propagasi balik Gradien Descent dengan satu input dan satu output.
Berdasarkan hasil dan pembahasan dari data yang digunakan, maka pada penelitian ini
dapat disimpulkan bahwa RMSE untuk pendekatan metode NNPLS
lebih kecil
dibandingkan dengan metode MKTP. Hal ini menunjukkan bahwa NNPLS lebih baik
dibandingkan dengan metode MKTP dalam kasus data yang bersifat nonlinier.
SARAN
Metode pembelajaran propagasi balik tidak hanya metode pembelajaran
Gradien Descent saja, tetapi terdapat metode pembelajaran lainnya yaitu Conjugate
Gradient dan lain-lain.
Untuk itu disarankan untuk meneliti lebih lanjut dengan
menerapkan jaringan syaraf tiruan dalam MKTP dengan menggunakan metode
pembelajaran propagasi balik lainnya, dengan tujuan untuk mengetahui apakah metode
yang sedang diteliti lebih baik dibandingkan dengan metode yang sudah ada.
DAFTAR PUSTAKA
Cheng B, Titterington DM. 1994, Neural Network: A Review fiom a Statistical
Prespective, Statistical Science, Vol9. No. 1,2-54.
Fauset L, 1994. Fundamental of Neural Network : Architecture, Algorithms and
Applications. New Jersey. Prentice Hall Inc.
Geladi P , Kowalski BR, 1986. Partial Least Square : A tutorial, Analitica Chiiica
Acta, 1985 : 1-17.
Martens H, Naes T, 1989. Multivariate Calibration, John Willey & Sons, Chichester,
England.
Patterson DW. 1996. Artificial Neural Network : Theory and Applications. Simon &
Schuster. Prentice Hall, New York.
Qin SJ, Mc Avoy TJ, 1992. Nonlinier PLS Modelling using Neural Networks,Computer
Chemical Engeneering, Vol 16, No.4,379-39 1.
Ripley BD, 1996. Pattern Recognition and Neural Network, Cambridge University
Press, University of Oxpord, Melbourne, Australia.
Sarle WS, 1994. Neural Network and Statistical Models. Proceddings of the Nineteenth
Annual SAS User Group International Conference.
Skapura MD, Freeman JA. 1992. Neural Network : Algorithms, Application and
Programming Techniques. Addison-Wesley Publishing Company Inc., California.
Tobias R, 1995. An Introduction to Partial Least Squares Regression, in Proccedding of
the Twentieth Annual SAS Users Group International Conferences, Carry,
NC:SAS Institute In., 1250-1257.
Umetrics 1995. http ://www.umetrics.com//data.
Lampiran
Lampiran 1. Tabel logaritma data Flourense
Lampiran
Lampiran 1. Lanjutan
Lampiran
Lampiran 1. Lanjutan
Lampiran
Lampiran 1. Lanjutan
Lampiran
Lampiranl. Lanjutan
Y1
-6.00000
-6.00000
-6.00000
-6.00000
-6.00000
-6.00000
-6.00000
-5.00000
-5.00000
-5.00000
-5.00000
-5.00000
-5.00000
Y2
-8.00000
-7.00000
-6.60206
-6.30103
-6.12494
-6.04576
-6.00000
-8.00000
-6.00000
-5.60206
-5.30103
-5.12494
-5.04576
Y3
-6.00000
-6.04576
-6.12494
-6.30103
-6.60206
-7.00000
-8.00000
-5.00000
-5.04576
-5.12494
-5.30103
-5.60206
-6.00000
Lampiran
Lampiran 2. Korelasi antar peubah data Flourense
Lampiran
Lampiran 2. Lanjutan
Lampiran
Lampiran 3. Makro Program Untuk Metode NNPLS
/* Prosedur menentukan model outer dengan metode MKTP*/
proc iml;
start pls;
u=Y [,2];print,'(u=Y [,2])=',u[format= 10.51;
u2=(u')*u;print,'(u2=(u')*u=',u2[format=l0.5];
w==((u')*X)#(l/u2);print, '(w-((u')*X)#((l/u2))=',w[format= 10.51;
(w*w')=',w2[format=l0.5];
w2=w*w' ;printYy(w2=
sw=SQRT(w2);print, '(sw=SQRT(w2))=',sw[format=10.51;
w=w#(l/sw);print,'(w=w#(l/sw))=',
w[format= 10.51;
w2-w*w';print,'(w2=w*w')='w2[format=10.5];
,
t=(X*w')#(l/w2);print, '(t=(X*w')#((l/w2))=',t[format=10.5];
t2=(t')*t;printyy(t2=(t')*t=',t2[f0rmat=l
0.51;
51;
q=(t' *Y)#(l/t2);print,'(q=(t' *Y)#((l/t2))=',q[format=lO.
q2=q*q';print,'(q2=q*q')=',q2[format=l0.5];
sq=SQRT(q2);printY'(sq=SQRT(q2))=',sq[format=l0.51;
q=q#( l/sq);print, '(q=q#( l/sq))=', q[format= 10.51;
q2=q*q';print, '(q2=q*q')=',q2[format= 10.51;
u=(Y*q')#(l/q2);print,'(u=(Y*q')#(l/q2))=',u[fo~at=lO.5];
p=(t' *X)#(ll(t' *t));print,'(p=(t' *X)#(ll(t'*t)))=',p[format=l0.5];
p2=p*p';printY'(p2=p*p')=',p2[format=
10.51;
sp= SQRT(p2);print,'(sp=SQRT(p2))=',sp[format=lO. 51;
p=p#(l /sp);print,'(p=p#(l/sp))=',
p[format=lO. 51;
t=t#(l/sp);print,'(t=t#(l/sp))=',
t[format=10.5];
w=w#(l/sp);print,'(w=w#(l/sp))=',
q[format=lO. 51;
xl=X-t*p;print,'(xl=X-t*p)=',xl [format=10.5];
/*mencetak hasil PLS outer*/
print,'pembobot w=', w[format=lO.51;
print,'laten X =', t[format=lO. 51;
print, 'laten Y =', u[format=10.5];
print, 'vektor loading X=',p[format= 10.51;
print, 'vektor loading Y=',q[format= 10.51;
print,'residu X=',xl [format=10.5];
finish;
/*data*/
/* Prosedur menentukan model inner dengan neural network *I
%macro tnn-nlp( /* Simple example of fitting a neural network
(multilayer perceptron) using PROC NLP */
data=DATA???, I* Data set containing inputs and training values */
Lampiran
Lampiran 3. Lanjutan
nx=NX???,
I* Number of inputs */
xvar=XVAR???, I* List of variables that are inputs.
Do not use abbreviated lists with -- or :. *I
ny=NY???, I* Number of outputs */
yvar=YVAR???, I* List of variables that have training values.
Do not use abbreviated lists with -- or :. */
hidden=2, I* Number of hidden nodes *I
bound=30, I* Bound on absolute values of weights *I
inest=,
I* Data set containing initial weight estimates.
If not specified, random initial estimates are
used. *I
random=O, I* Seed for random numbers for initial weights */
outest=-EST,
I* Data set containing estimated weights *I
nlpopt=SHORT HISTORY);
I* Additional options to be passed to PROC NLP,
such as MAXITER=, TECH=, ABSCONV=, etc. Do NOT
put commas between the NLP options! */
%* * * * * * names of internal variables for output and residuals;
%let predict=q 1-q&ny;
%let residual=-r 1--r&ny ;
%* * * * * * size of each parameter array;
%let na=&hidden;
%let nb=%eval(&nx*&hidden);
%let nc=&ny;
%let nd=%eval(&hidden*&ny);
%****** list of all parameters;
%let parrns=-a 1--a&na -b 1--b&nb -c 1-c&nc -d 1--d&nd;
%* * * * * * get default data set name;
%if %qupcase(&data)=-LAST %then %let data=&syslast;
%** * * * * random initial values. only the input-to-hidden weights
and hidden bias need to be nonzero;
%if %bquote(&inest)= %then %do;
%let inest=-INEST;
data &inest(type=est);
retain &parms 0;
retain -type- 'PARMS';
Lampiran
Lampiran 3. Lanjutan
array -ab -a1 --a&na -b 1--b&nb;
do over -ab;
ab=ranuni(&random)-. 5;
end;
output;
run;
%end;
%* * ** ** training;
proc nlp data=&data inest=&inest outest=&outest &nlpopt;
lsq &residual;
parms &parms;
bounds -&bound < &parms < &bound;
%tnn-arr
run;
%** *** * save number of hidden nodes and training data set name;
data &outest(type=est);
set &outest;
length -data- $17;
retain -hidden- &hidden
data- "&data";
label data ='Training Data'
of Hidden Nodes'
-
h:lddei- umber
7
run;
%mend tnn-nlp;
%macro tnn-run( I* Simple example of simulating a neural network
(multilayer perceptron) using a DATA step *I
data=DATA???, /* Data set containing inputs and training values *I
nx=NX???,
I* Number of inputs */
xvar=X???, I* List of variables that are inputs.
Do not use abbreviated lists with -- or :. *I
ny=NY???, I* Number of outputs */
yvar=,
I* List of variables that have training values.
may be omitted if you don't want residuals or
fit statistics.
Do not use abbreviated lists with -- or :. *I
est=-EST,
I* Data set containing weights *I
predict=, /* Names of variables to contain outputs *I
residual=, I* Names of variables to contain residuals *I
Lampiran
Lampiran 3. Lanjutan
outfit=-FIT,
I* Data set to contain fit statistics *I
I* Data set to contain outputs and residuals *I
out=-DATAJ;
%* ** * * * get number of hidden nodes and training data set name;
data -null-;
set &est;
call symput("hidden",trim(leR(put(-hidden,
call symput("tdata",-data_);
stop;
run;
12.))));
%* * * * * * names of variables for output and residuals;
%if %bquote(&predict)= %then
%let predict=g 1-q&ny;
%if %bquote(&yvar)"= %then %if %bquote(&residual)= %then
%let residual=-r 1--r&ny;
%* * * * * * size of each parameter array;
%let na=&hidden;
%let nb=%eval(&nx*&hidden);
%let nc=&ny;
%let nd=%eval(&hidden*&ny);
%* * * * * * number of parameters;
%let nparm=%eval(&na+&nb+&nc+&nd);
%* * * * * * list of all parameters;
%let parms-a 1--a&na -b 1--b&nb -c 1--c&nc -d 1--d&nd;
%**** ** variables to drop from both output data sets;
%let drop=&parms -ih -ix -iy -n -sum -type- -tech- -name- -rhs-data- -iter-;
data
&out(drop=&drop -np- -nabs- -sse- -df- -mse- -rmse- -hidden%if %qupcase(&data)=%qupcase(&tdata) %then -sbc- -rfpe-;
1
&outfit(drop=&drop &xvar &yvar &predict &residual -hl--h&hidden)
-
,
/
Lampiran
Lampiran 3. Lanjutan
* read estimated weights;
if -n-=l then do;
do untilctype-='PARMS1);
set &est;
end;
end;
* read input and training values;
set &data end=end;
* compute outputs and residuals;
%tnn-arr
output &out;
* compute fit statistics;
%if %bquote(&yvar)"= %then %do;
-n=n(of &residual);
if -n then do;
-nobs-+-n;
do -iy=l to &ny;
sse-+-r[-iyl* *2;
end;
end;
if end then do;
-np-=&nparm;
%* * * * * * training data;
%if %qupcase(&data)=%qupcase(&tdata) %then %do;
-df-=max(O,-nobs---npJ;
sbc-=-no bs-* log(sse-1-nobsJ+-np-*
log(nobsJ;
%end;
%****** test data;
%else %do;
df-=-nobs-;
%end;
if -df - then do;
Lampiran
Lampiran 3. Lanjutan
-mse-=-sse-1-df-;
rmse-=sqrt(mse_);
%if %qupcase(&data)=%qupcase(&tdata)%then %do;
sqrt(Cnobs-+-npJ1-nobsJ;
-@e-=-rmse-*
%end;
end;
output;
end;
label -np- ='Number of Parameters'
%if %qupcase(&data)=%qupcase(&tdata)%then %do;
-nobs-='Number of Training Values'
-rfpe-='Root Final Prediction Error'
sbc- ='Schwarzl's Bayesian Criterion'
%end;
%else %do;
nobs-='Number of Test Values'
%end;
-d f ='Degrees of Freedom for Error'
-sse- ='Sum of Squared Errors'
-mse- ='Mean Squared Error'
-rmse-='Root Mean Squared Error'
>
%end;
run;
%then %do;
%if %bq~ote(&yvar)~=
proc print label data=&outfit; run;
%end;
%mend tnn-run;
%macro tnn-act(out,in);
%* activation function;
if &in45 then &out=l ; * or underflow;
else &out=l/(l+exp(-&in)); * logistic function;
%mend tnn act;
%macro tnnLarr; I* code for 3-layer perceptron using arrays *I
array -x[&nx] &xvar;
I* input *I
array -a[&hidden] al--a&na;
/*.bias for hidden layer *I
array -b[&nx,&hidden] -bl--b&nb; I* weights from input to hidden
layer *I
array -h[&hidden] -hl-h&hidden; I* hidden layer *I
array -c[&ny] -c 1--c&nc;
I* bias for output *I
Lampiran
Lampiran 3. Lanjutan
array -d[&hidden,&ny] -dl-d&nd; I* weights fiom hidden layer to
output *I
array j [ & n y ] &predict;
I* output (predicted values) *I
%if %bq~ote(&yvar)~=
%then %do;
I* training values *I
array y[&ny] &yvar;
array -r[&ny] &residual; I* residuals *I
%end;
* compute hidden layer;
do -ih=l to &hidden;
-sum=-a[-ih] ;
do -ix=l to &nx;
-sum=~sum+~x[~ix]*~b[~ix,~ih];
end;
* apply activation function to hidden nodes;
%tnn-act(-hLih],-sum)
end;
* compute output;
do -iy= 1 to &ny;
-sum=-c[-iy] ;
do -ih=l to &hidden;
sum=-sum+-h[-ih] *-d[ih,-iy] ;
end;
* apply activation function to output;
%ttnn_actCp[iy],-sum)
end;
%if %bquote(&yvar)/'= %then %do;
* compute residuals;
end;
%end;
%mend tnn-arr;
title 'Data florense';
data flour;
input t u @ @;
cards;
%tnn-nlp(data=flour, nx= 1, xvar=t, ny= 1, y v w , hidden=l ,
random= 12, nlpopt=short history maxiter-125);
%tnn-run(data=flour, nx=l, xvar=t, ny= 1, yvar-u,
out=outy, predict=output);
Lampiran
Lampiran 3. Lanjutan
run;
proc print data=outy;
run;
Lampiran
Lampiran 4. Tabel vektor u dan t hasil metode MKTP linier.
Lampiran
Lampiran 4. Lanjutan
Lampiran
Lampiran 5. Tabel hasil Y prediksi untuk metode MKTP.
Lampiran
Lampiran 6. Tabel vektor u dan t hasil dari NNPLS
Lampiran
Lampiran 6. Lanjutan
Lampiran
Lampiran 7. Tabel vektor u dan t untuk model internal Neural Network.
Lampiran 7. Lanjutan
Lampiran
Lampiran 8.Tabel hasil Y prediksi untuk metode NNPLS
Larnpiran
Lampiran 9. Antilogaritma hasil Y prediksi MKTP
Lampiran
Lampiran 10.Tabel Antilogaritma hasil Y prediksi NNPLS
DALAM METODE KUADRAT TERKECIL PARSIAL
OLEH :
RUSLAN
PROGRAM PASCASARJANA
INSTITUT PERTANIAN BOGOR
2002
"Sesuqjyuhnyasetehh &&tan
ad2 ~mulibliaq
sesunaguhn. setehh &nrCitan ad2 ~m&han."
~endzsanini saya persem6ahkan untuk
Ayah Ticinta @p&P 6 a .
ABSTRAK
RUSLAN. Kajian Penerapan Jaringan Syaraf Tiruan dalam Metode Kuadrat Terkecil
Parsial. Dibimbing oleh AJI HAMIM WIGENA dan ASEP SAEFUDDIN.
Penelitian ini merupakan suatu kajian tentang penerapan Jaringan Syaraf
Tiruan (ArtiJicial Neural Network) dalam Metode Kuadrat Terkecil Parsial (MKTP)
yaitu metode Neural Network Partial Least Square (NNPLS). Metode NNPLS
mampu mengatasi data dengan kendala yaitu ada korelasi antar peubah penjelas,
jumlah pengarnatan yang terbatas, dan indikasi nonlinier. Metode NNPLS merupakan
integrasi MKTP dengan metode Jaringan Syaraf Tiruan dirnana hasil MKTP
merupakan input untuk Jaringan Syaraf Tiruan dalam memprediksi peubah tak bebas.
Tujuan penelitian ini adalah mengkaji penerapan metode Jaringan Syaraf Tiruan
dalam MKTP (metode NNPLS) dan membandingkan metode NNPLS dengan metode
MKTP berdasarkan akar Kuadrat Tengah Galat (Root Mean Square Error). Hasil
penelitian menunjukan bahwa metode NNPLS lebih baik dari MKTP.
SURAT PERNYATAAN
Dengan ini saya menyatakan bahwa tesis yang berjudul :
KAJIAN PENERAPAN JARINGAN SYARAF TIRUAN
DALAM METODE KUADRAT TERKECIL PARSIAL
adaiah benar merupakan hasil karya saya sendiri dan belum pernah dipublikasikan.
Semua sumber data dan informasi yang digunakan telah dinyatakan secara jelas dan
dapat diperiksa kebenarannya.
Bogor, 5 Juni 2002
Ruslan
Nrp. : 98 124lSTK
KAJIAN PENERAPAN JARINGAN SYARAF TIRUAN
DALAM METODE KUADRAT TERKECIL PARSIAL
OLEH :
RUSLAN
Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Sains pada
Program Studi Statistika
PROGRAM PASCASARJANA
INSTITUT PERTANIAN BOGOR
2002
Judul
: Kajian Penerapan Jaringan Syaraf Tiruan dalam
Metode Kuadrat Terkecil Parsiai
Nama Mahasiswa
: Ruslan
Nomor Poltok
: 98124
Program Studi
: Stat,istil 0.1. Hasil tersebut menunjukkan bahwa model yang dibentuk dapat dijelaskan
oleh persentase variasi dari 6 peubah laten. Hasil dari persentase variasi peubah yang
dihasilkan dari 6 peubah laten dapat dilihat pada Tabel 2.
Tabel 2. Porsentase variasi yang dihasilkan untuk menjelaskan variasi peubah
Banyak Peubah Laten
1
2
3
Pengaruh Model
Kumulatif
persentase
77.6789
20.6275
1.0013
77.6789
98.3064
99.3077
Peuball Tak Bebas
persentase Kumulatif
47.8023
38.9682
6.8932
47.8023
86.7705
93.6637
Enam komponen tersebut dapat menjelaskan variasi peubah dimana untuk
pengaruh model dijelaskan dengan total 99.8 % dan untuk peubah tak bebas dijelaskan
dengan total 97.8 %. Hasil ini menunjukkan kecukupan variasi dari model yang dapat
dijelaskan dengan 6 peubah laten.
Penentuan pendugaan dengan MKTP
Hasil perhitungan vektor skor u dan t (Lampiran 4) berdasarkan banyak
komponen hasil dari validasi silang. Plot antara vektor skor u dan t dengan menggunakan
metode MKTP dapat dilihat pada Gambar 5.
Pada Gambar 5 ditunjukkan bahwa plot antara vektor skor u dan t pada tiap
komponen yang dibentuk memiliki model internal yang linier. Hasil pendugaan Y untuk
ketiga peubah yang dihasilkan terdiri dari 3 peubah dan 33 pengamatan (Lampiran 5).
(a) Plot antara vektor t dan u pada h=l
(b) Plot antara vektor t dan u pada h=3
(d) Plot antara vektor t dan u pada h= 5
(b) Plot antara vektor t dan u pada h=2
(d) Plot antara vektor t dan u pada h= 4
(e) Plot antara vektor t dan u pada h=6
Gambar 5. Plot antara vektor skor u dan t pada tiap-tiap komponen dengan MKTP.
Penentuan pendugaan dengan NNPLS.
Hasil perhitungan vektor skor u dan t dengan metode NNPLS (Lampiran 6 )
berdasarkan banyaknya komponen hasil dari validasi silan dan hasil perhitungan vektor
lib dengan h
=1,2, ...,6 dan vektor t untuk model internal (Lampiran 7). Gambar 6
memperlihatkan bahwa plot antara vektor skor u dan t untuk model eksternal dan vektor
skor tih dan vektor skor t untuk model internal dengan metode NNPLS .
(a). plot antara u dan t pada h=l
t3
(c). plot antara u dan t pada h = 3
tS
(e). plot antara u dan t pada h = 5
@). plot antara u dan t pada h = 2
u
(d). plot antara u dan t pada h = 4
16
(f). plot antara u dm t pada 11 = 6
Keterangan :
Gambar 6. Plot antara vektor skor u dan t hasil dari metode NNPLS
Gambar 6 menunjukan bahwa plot yang dibentuk memiliki model internal yang
nonlinier. Hasil pendugaan Y untuk ketiga peubah yang diukur tersebut memperoleh hasil
seperti pada Lampiran 10. Pendugaan yang dihasilkan terdiri dari 3 peubah dan 33
pengamatan.
seperti pada Lampiran 10. Pendugaan yang dihasilkan terdiri dari 3 peubah dan 33
pengamatan.
Perbandingan RMSE antara MKTP dengan NNPLS
Untuk mengetahui metode yang terbaik, maka hasil pendugaan ketiga peubah
(Yl, Y2, dan Y3) dari metode MKTP (Lampiran 9) dan metode NNPLS (Lampiran 10)
akan dibandingkan berdasarkan nilai akar kuadrat tengah galat. Metode terbaik adalah
metode yang memiliki akar kuadrat tengah galat terkecil. Tabel 3 menunjukan bahwa
NNPLS memiliki nilai akar kuadrat tengah galat yang lebih kecil dibandingkan dengan
pendekatan metode MKTP. Hal ini terlihat pada h ke 6 dari hasil kedua metode yang
dibentuk dalam Tabel 3.
Tabel 3. Perbandingan RMSE MKTP dengan RMSE NNPLS
Metode Pendekatan
MKTP
NNPLS
RMSE Y 1 RMSE Y2
9.48 162
3.57697
0.75 1229 1.29870
RMSE Y3
4.07213
1.64413
Tabel 3 memperlihatkan bahwa metode NNPLS lebih baik dibandingkan dengan
metode MKTP. Hal tersebut diperlihatkan dengan lebih kecilnya RMSE NNPLS
dibandingkan RMSE MKTP pada tiap-tiap peubah.
KESIMPULAN
Penelitian ini merupakan suatu kajian untuk membandingkan dua metode yaitu
Metode Kuadrat Terkecil Parsial (MKTP) dengan Metode Neural Network Partial Least
Square (NNPLS). Metode pembelajaran yang digunakan dalam metode NNPLS adalah
metode pembelajaran propagasi balik Gradien Descent dengan satu input dan satu output.
Berdasarkan hasil dan pembahasan dari data yang digunakan, maka pada penelitian ini
dapat disimpulkan bahwa RMSE untuk pendekatan metode NNPLS
lebih kecil
dibandingkan dengan metode MKTP. Hal ini menunjukkan bahwa NNPLS lebih baik
dibandingkan dengan metode MKTP dalam kasus data yang bersifat nonlinier.
SARAN
Metode pembelajaran propagasi balik tidak hanya metode pembelajaran
Gradien Descent saja, tetapi terdapat metode pembelajaran lainnya yaitu Conjugate
Gradient dan lain-lain.
Untuk itu disarankan untuk meneliti lebih lanjut dengan
menerapkan jaringan syaraf tiruan dalam MKTP dengan menggunakan metode
pembelajaran propagasi balik lainnya, dengan tujuan untuk mengetahui apakah metode
yang sedang diteliti lebih baik dibandingkan dengan metode yang sudah ada.
DAFTAR PUSTAKA
Cheng B, Titterington DM. 1994, Neural Network: A Review fiom a Statistical
Prespective, Statistical Science, Vol9. No. 1,2-54.
Fauset L, 1994. Fundamental of Neural Network : Architecture, Algorithms and
Applications. New Jersey. Prentice Hall Inc.
Geladi P , Kowalski BR, 1986. Partial Least Square : A tutorial, Analitica Chiiica
Acta, 1985 : 1-17.
Martens H, Naes T, 1989. Multivariate Calibration, John Willey & Sons, Chichester,
England.
Patterson DW. 1996. Artificial Neural Network : Theory and Applications. Simon &
Schuster. Prentice Hall, New York.
Qin SJ, Mc Avoy TJ, 1992. Nonlinier PLS Modelling using Neural Networks,Computer
Chemical Engeneering, Vol 16, No.4,379-39 1.
Ripley BD, 1996. Pattern Recognition and Neural Network, Cambridge University
Press, University of Oxpord, Melbourne, Australia.
Sarle WS, 1994. Neural Network and Statistical Models. Proceddings of the Nineteenth
Annual SAS User Group International Conference.
Skapura MD, Freeman JA. 1992. Neural Network : Algorithms, Application and
Programming Techniques. Addison-Wesley Publishing Company Inc., California.
Tobias R, 1995. An Introduction to Partial Least Squares Regression, in Proccedding of
the Twentieth Annual SAS Users Group International Conferences, Carry,
NC:SAS Institute In., 1250-1257.
Umetrics 1995. http ://www.umetrics.com//data.
Lampiran
Lampiran 1. Tabel logaritma data Flourense
Lampiran
Lampiran 1. Lanjutan
Lampiran
Lampiran 1. Lanjutan
Lampiran
Lampiran 1. Lanjutan
Lampiran
Lampiranl. Lanjutan
Y1
-6.00000
-6.00000
-6.00000
-6.00000
-6.00000
-6.00000
-6.00000
-5.00000
-5.00000
-5.00000
-5.00000
-5.00000
-5.00000
Y2
-8.00000
-7.00000
-6.60206
-6.30103
-6.12494
-6.04576
-6.00000
-8.00000
-6.00000
-5.60206
-5.30103
-5.12494
-5.04576
Y3
-6.00000
-6.04576
-6.12494
-6.30103
-6.60206
-7.00000
-8.00000
-5.00000
-5.04576
-5.12494
-5.30103
-5.60206
-6.00000
Lampiran
Lampiran 2. Korelasi antar peubah data Flourense
Lampiran
Lampiran 2. Lanjutan
Lampiran
Lampiran 3. Makro Program Untuk Metode NNPLS
/* Prosedur menentukan model outer dengan metode MKTP*/
proc iml;
start pls;
u=Y [,2];print,'(u=Y [,2])=',u[format= 10.51;
u2=(u')*u;print,'(u2=(u')*u=',u2[format=l0.5];
w==((u')*X)#(l/u2);print, '(w-((u')*X)#((l/u2))=',w[format= 10.51;
(w*w')=',w2[format=l0.5];
w2=w*w' ;printYy(w2=
sw=SQRT(w2);print, '(sw=SQRT(w2))=',sw[format=10.51;
w=w#(l/sw);print,'(w=w#(l/sw))=',
w[format= 10.51;
w2-w*w';print,'(w2=w*w')='w2[format=10.5];
,
t=(X*w')#(l/w2);print, '(t=(X*w')#((l/w2))=',t[format=10.5];
t2=(t')*t;printyy(t2=(t')*t=',t2[f0rmat=l
0.51;
51;
q=(t' *Y)#(l/t2);print,'(q=(t' *Y)#((l/t2))=',q[format=lO.
q2=q*q';print,'(q2=q*q')=',q2[format=l0.5];
sq=SQRT(q2);printY'(sq=SQRT(q2))=',sq[format=l0.51;
q=q#( l/sq);print, '(q=q#( l/sq))=', q[format= 10.51;
q2=q*q';print, '(q2=q*q')=',q2[format= 10.51;
u=(Y*q')#(l/q2);print,'(u=(Y*q')#(l/q2))=',u[fo~at=lO.5];
p=(t' *X)#(ll(t' *t));print,'(p=(t' *X)#(ll(t'*t)))=',p[format=l0.5];
p2=p*p';printY'(p2=p*p')=',p2[format=
10.51;
sp= SQRT(p2);print,'(sp=SQRT(p2))=',sp[format=lO. 51;
p=p#(l /sp);print,'(p=p#(l/sp))=',
p[format=lO. 51;
t=t#(l/sp);print,'(t=t#(l/sp))=',
t[format=10.5];
w=w#(l/sp);print,'(w=w#(l/sp))=',
q[format=lO. 51;
xl=X-t*p;print,'(xl=X-t*p)=',xl [format=10.5];
/*mencetak hasil PLS outer*/
print,'pembobot w=', w[format=lO.51;
print,'laten X =', t[format=lO. 51;
print, 'laten Y =', u[format=10.5];
print, 'vektor loading X=',p[format= 10.51;
print, 'vektor loading Y=',q[format= 10.51;
print,'residu X=',xl [format=10.5];
finish;
/*data*/
/* Prosedur menentukan model inner dengan neural network *I
%macro tnn-nlp( /* Simple example of fitting a neural network
(multilayer perceptron) using PROC NLP */
data=DATA???, I* Data set containing inputs and training values */
Lampiran
Lampiran 3. Lanjutan
nx=NX???,
I* Number of inputs */
xvar=XVAR???, I* List of variables that are inputs.
Do not use abbreviated lists with -- or :. *I
ny=NY???, I* Number of outputs */
yvar=YVAR???, I* List of variables that have training values.
Do not use abbreviated lists with -- or :. */
hidden=2, I* Number of hidden nodes *I
bound=30, I* Bound on absolute values of weights *I
inest=,
I* Data set containing initial weight estimates.
If not specified, random initial estimates are
used. *I
random=O, I* Seed for random numbers for initial weights */
outest=-EST,
I* Data set containing estimated weights *I
nlpopt=SHORT HISTORY);
I* Additional options to be passed to PROC NLP,
such as MAXITER=, TECH=, ABSCONV=, etc. Do NOT
put commas between the NLP options! */
%* * * * * * names of internal variables for output and residuals;
%let predict=q 1-q&ny;
%let residual=-r 1--r&ny ;
%* * * * * * size of each parameter array;
%let na=&hidden;
%let nb=%eval(&nx*&hidden);
%let nc=&ny;
%let nd=%eval(&hidden*&ny);
%****** list of all parameters;
%let parrns=-a 1--a&na -b 1--b&nb -c 1-c&nc -d 1--d&nd;
%* * * * * * get default data set name;
%if %qupcase(&data)=-LAST %then %let data=&syslast;
%** * * * * random initial values. only the input-to-hidden weights
and hidden bias need to be nonzero;
%if %bquote(&inest)= %then %do;
%let inest=-INEST;
data &inest(type=est);
retain &parms 0;
retain -type- 'PARMS';
Lampiran
Lampiran 3. Lanjutan
array -ab -a1 --a&na -b 1--b&nb;
do over -ab;
ab=ranuni(&random)-. 5;
end;
output;
run;
%end;
%* * ** ** training;
proc nlp data=&data inest=&inest outest=&outest &nlpopt;
lsq &residual;
parms &parms;
bounds -&bound < &parms < &bound;
%tnn-arr
run;
%** *** * save number of hidden nodes and training data set name;
data &outest(type=est);
set &outest;
length -data- $17;
retain -hidden- &hidden
data- "&data";
label data ='Training Data'
of Hidden Nodes'
-
h:lddei- umber
7
run;
%mend tnn-nlp;
%macro tnn-run( I* Simple example of simulating a neural network
(multilayer perceptron) using a DATA step *I
data=DATA???, /* Data set containing inputs and training values *I
nx=NX???,
I* Number of inputs */
xvar=X???, I* List of variables that are inputs.
Do not use abbreviated lists with -- or :. *I
ny=NY???, I* Number of outputs */
yvar=,
I* List of variables that have training values.
may be omitted if you don't want residuals or
fit statistics.
Do not use abbreviated lists with -- or :. *I
est=-EST,
I* Data set containing weights *I
predict=, /* Names of variables to contain outputs *I
residual=, I* Names of variables to contain residuals *I
Lampiran
Lampiran 3. Lanjutan
outfit=-FIT,
I* Data set to contain fit statistics *I
I* Data set to contain outputs and residuals *I
out=-DATAJ;
%* ** * * * get number of hidden nodes and training data set name;
data -null-;
set &est;
call symput("hidden",trim(leR(put(-hidden,
call symput("tdata",-data_);
stop;
run;
12.))));
%* * * * * * names of variables for output and residuals;
%if %bquote(&predict)= %then
%let predict=g 1-q&ny;
%if %bquote(&yvar)"= %then %if %bquote(&residual)= %then
%let residual=-r 1--r&ny;
%* * * * * * size of each parameter array;
%let na=&hidden;
%let nb=%eval(&nx*&hidden);
%let nc=&ny;
%let nd=%eval(&hidden*&ny);
%* * * * * * number of parameters;
%let nparm=%eval(&na+&nb+&nc+&nd);
%* * * * * * list of all parameters;
%let parms-a 1--a&na -b 1--b&nb -c 1--c&nc -d 1--d&nd;
%**** ** variables to drop from both output data sets;
%let drop=&parms -ih -ix -iy -n -sum -type- -tech- -name- -rhs-data- -iter-;
data
&out(drop=&drop -np- -nabs- -sse- -df- -mse- -rmse- -hidden%if %qupcase(&data)=%qupcase(&tdata) %then -sbc- -rfpe-;
1
&outfit(drop=&drop &xvar &yvar &predict &residual -hl--h&hidden)
-
,
/
Lampiran
Lampiran 3. Lanjutan
* read estimated weights;
if -n-=l then do;
do untilctype-='PARMS1);
set &est;
end;
end;
* read input and training values;
set &data end=end;
* compute outputs and residuals;
%tnn-arr
output &out;
* compute fit statistics;
%if %bquote(&yvar)"= %then %do;
-n=n(of &residual);
if -n then do;
-nobs-+-n;
do -iy=l to &ny;
sse-+-r[-iyl* *2;
end;
end;
if end then do;
-np-=&nparm;
%* * * * * * training data;
%if %qupcase(&data)=%qupcase(&tdata) %then %do;
-df-=max(O,-nobs---npJ;
sbc-=-no bs-* log(sse-1-nobsJ+-np-*
log(nobsJ;
%end;
%****** test data;
%else %do;
df-=-nobs-;
%end;
if -df - then do;
Lampiran
Lampiran 3. Lanjutan
-mse-=-sse-1-df-;
rmse-=sqrt(mse_);
%if %qupcase(&data)=%qupcase(&tdata)%then %do;
sqrt(Cnobs-+-npJ1-nobsJ;
-@e-=-rmse-*
%end;
end;
output;
end;
label -np- ='Number of Parameters'
%if %qupcase(&data)=%qupcase(&tdata)%then %do;
-nobs-='Number of Training Values'
-rfpe-='Root Final Prediction Error'
sbc- ='Schwarzl's Bayesian Criterion'
%end;
%else %do;
nobs-='Number of Test Values'
%end;
-d f ='Degrees of Freedom for Error'
-sse- ='Sum of Squared Errors'
-mse- ='Mean Squared Error'
-rmse-='Root Mean Squared Error'
>
%end;
run;
%then %do;
%if %bq~ote(&yvar)~=
proc print label data=&outfit; run;
%end;
%mend tnn-run;
%macro tnn-act(out,in);
%* activation function;
if &in45 then &out=l ; * or underflow;
else &out=l/(l+exp(-&in)); * logistic function;
%mend tnn act;
%macro tnnLarr; I* code for 3-layer perceptron using arrays *I
array -x[&nx] &xvar;
I* input *I
array -a[&hidden] al--a&na;
/*.bias for hidden layer *I
array -b[&nx,&hidden] -bl--b&nb; I* weights from input to hidden
layer *I
array -h[&hidden] -hl-h&hidden; I* hidden layer *I
array -c[&ny] -c 1--c&nc;
I* bias for output *I
Lampiran
Lampiran 3. Lanjutan
array -d[&hidden,&ny] -dl-d&nd; I* weights fiom hidden layer to
output *I
array j [ & n y ] &predict;
I* output (predicted values) *I
%if %bq~ote(&yvar)~=
%then %do;
I* training values *I
array y[&ny] &yvar;
array -r[&ny] &residual; I* residuals *I
%end;
* compute hidden layer;
do -ih=l to &hidden;
-sum=-a[-ih] ;
do -ix=l to &nx;
-sum=~sum+~x[~ix]*~b[~ix,~ih];
end;
* apply activation function to hidden nodes;
%tnn-act(-hLih],-sum)
end;
* compute output;
do -iy= 1 to &ny;
-sum=-c[-iy] ;
do -ih=l to &hidden;
sum=-sum+-h[-ih] *-d[ih,-iy] ;
end;
* apply activation function to output;
%ttnn_actCp[iy],-sum)
end;
%if %bquote(&yvar)/'= %then %do;
* compute residuals;
end;
%end;
%mend tnn-arr;
title 'Data florense';
data flour;
input t u @ @;
cards;
%tnn-nlp(data=flour, nx= 1, xvar=t, ny= 1, y v w , hidden=l ,
random= 12, nlpopt=short history maxiter-125);
%tnn-run(data=flour, nx=l, xvar=t, ny= 1, yvar-u,
out=outy, predict=output);
Lampiran
Lampiran 3. Lanjutan
run;
proc print data=outy;
run;
Lampiran
Lampiran 4. Tabel vektor u dan t hasil metode MKTP linier.
Lampiran
Lampiran 4. Lanjutan
Lampiran
Lampiran 5. Tabel hasil Y prediksi untuk metode MKTP.
Lampiran
Lampiran 6. Tabel vektor u dan t hasil dari NNPLS
Lampiran
Lampiran 6. Lanjutan
Lampiran
Lampiran 7. Tabel vektor u dan t untuk model internal Neural Network.
Lampiran 7. Lanjutan
Lampiran
Lampiran 8.Tabel hasil Y prediksi untuk metode NNPLS
Larnpiran
Lampiran 9. Antilogaritma hasil Y prediksi MKTP
Lampiran
Lampiran 10.Tabel Antilogaritma hasil Y prediksi NNPLS