Anda di halaman 1dari 8

Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)

1-2 Desember 2011, Bandung, Indonesia


ISBN 978-602-19655-1-1 Halaman 198 dari 216
Program Sederhana untuk Regresi Polinomial Orde n
Berbasis C++
Adisetyo Panduwirawan*, Luman Haris, Gratianus Wesley Putra Data, Fourier
Dzar Eljabbar Latief, Sparisoma Viridi
Abstrak
Regresi adalah salah satu teknik analisis untuk mencari hubungan linear atau
nonlinear antara sejumlah variabel bebas dengan sebuah variabel terikat. Dalam
bidang fisika, sering ditemukan fenomena fisis yang hubungan antara variabelnya
bersifat nonlinear. Untuk itu, dalam analisisnya seringkali digunakan regresi polinomial
dengan metode kuadrat terkecil. Namun, pada umumnya, algoritma pada program di
pasaran hanya mencapai orde 6. Oleh karena itu, sebuah program sederhana yang
mampu melakukan regresi hingga orde n akan dikembangkan. Program yang dibuat
mampu menghasilkan keluaran berupa koefisien regresi, koefisien determinasi, dan
waktu komputasi. Hasil regresi dengan program C++ mampu bersaing dengan
algoritma standard Matlab.
Kata-kata kunci: regresi polinomial, kuadrat terkecil, koefisien regresi
Pendahuluan
Regresi adalah salah satu teknik analisis untuk mencari hubungan linear atau
nonlinear antara sejumlah variabel bebas dengan sebuah variabel terikat. Regresi
digunakan untuk memprediksi nilai data baik di dalam maupun di luar rentang [1].
Polinomial adalah model yang paling umum digunakan karena berbagai model
misalkan eksponensial dan logaritma natural dapat didekati dengan model ini [2].
Dalam bidang fisika, regresi digunakan untuk mendapatkan gambaran global tentang
perilaku data dalam suatu pengukuran atau observasi [3-7]. Aplikasi regresi polinomial
tidak hanya sebatas di bidang fisika, banyak bidang seperti medis dan psikiatri yang
menggunakan teknik ini dalam pengambilan keputusan [8-9].
Penjabaran di atas menunjukkan besarnya peran regresi polinomial dalam pemecahan
berbagai masalah. Selain itu, regresi polinomial orde tinggi tidak dapat dilakukan
secara default oleh software komersial seperti Microsoft Excel yang hanya mampu
melakukan regresi polinomial hingga orde 6. Oleh karena itu, diperlukan sebuah
program yang mampu melakukan regresi polinomial hingga orde tinggi yang mudah
digunakan dan multiplatform. Program ini menggunakan bahasa pemograman C++
sehingga dapat digunakan untuk berbagai platform. Metode numerik yang digunakan
dalam program ini akan dijelaskan pada bagian teori. Flowchart program yang dibuat
beserta hasil regresi untuk beberapa set data akan dipaparkan di bagian hasil dan
diskusi.
FK004
Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia
ISBN 978-602-19655-1-1 Halaman 199 dari 216
Teori
Metode regresi yang digunakan dalam program ini adalah metode kuadrat terkecil
dimana metode ini bertujuan meminimalisasi selisih kuadrat antara model dengan data.
Berikut adalah perhitungan galat berdasarkan selisih kuadrat,
, )
_
=
=
N
i
i i
y y
0
2
(1)
Berdasarkan persamaan (1) dan definisi bahwa
i
y adalah nilai hasil regresi, syarat
minimalisasi ditentukan dengan menghitung turunan pertama galat terhadap konstanta
regresi.
n
i n i i i i
x a x a x a x a a y + + + + + =
3
3
2
2 1 0
(2)
0 , , 0 , 0 , 0 , 0
3 2 1 0
=
c
c
=
c
c
=
c
c
=
c
c
=
c
c
n
a a a a a

(3)
Menggunakan persamaan (1), (2), dan (3) dapat disusun matriks minimalisasi galat
seperti di bawah ini.
(
(
(
(
(
(
(
(
(
(
]
1

=
(
(
(
(
(
(
]
1

(
(
(
(
(
(
(
(
(
(
]
1

=
_
_
_
_
_ _ _ _
_ _ _ _
_ _ _ _
_ _ _
=
=
=
=
= =
+
=
+
=
=
+
= = =
=
+
= = =
= = =
i
N
i
n
i
i
N
i
i
i
N
i
i
N
i
i
n N
i
n
i
N
i
n
i
N
i
n
i
N
i
n
i
N
i
n
i
N
i
i
N
i
i
N
i
i
N
i
n
i
N
i
i
N
i
i
N
i
i
N
i
n
i
N
i
i
N
i
i
y x
y x
y x
y
a
a
a
a
x x x x
x x x x
x x x x
x x x N
N MA
0
0
2
0
0
2
1
0
0
2
0
2
0
1
0
0
2
0
4
0
3
0
2
0
1
0
3
0
2
0
0 0
2
0

dimana matriks M dan N didapat dari persamaan (3) , dan A adalah matriks koefisien.
Hasil dari matriks ini adalah sistem persamaan linear yang dapat diselesaikan secara
numerik.
Penyelesaian sistem persamaan linear di dalam program menggunakan metode
dekomposisi LU. Matriks M didekomposisi menjadi dua matriks segitiga yaitu matriks L
dan matriks U
LU M = (4)
Matriks L dan matriks U disusun menggunakan rumus berikut,
Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia
ISBN 978-602-19655-1-1 Halaman 200 dari 216
jj
j
k
kj ik ij
ij
U
U L M
L
|
|
.
|

\
|

=
_

=
1
1
(5)
_

=
=
1
1
i
k
kj ik ij ij
U L M U (6)
Berikutnya, dengan mendefinisikan matriks perantara O, solusi sistem persamaan
linear yaitu berupa matriks A, didapat. Adapun persamaan yang digunakan adalah
sebagai berikut.
O UA
N LO
=
=
(7)
Langkah terakhir adalah menghitung koefisien determinasi (R
2
) yang digunakan
sebagai parameter kecocokan antara model dengan data [10]. Berikut adalah langkah
perhitungan koefisien determinasi.
, )
, )
_
_
=
=
=
=
=
N
i
i i
N
i
i i
y y SST
y y SSE
SST
SSE
R
0
2
0
2
2

1
(8)
dengan
i
y adalah nilai hasil regresi dan
i
y adalah nilai rata-rata data.
Hasil dan Diskusi
Hasil dari program regresi dibandingkan dengan software komersial seperti
Matlab dan disajikan dalam format Excel. Program dijalankan menggunakan
command line dengan format,
Regression[spasi]namaFileInput[spasi]orde[namaFileOutput]
dengan terlebih dahulu membuka direktori program. Sedangkan pada Matlab,
perintah standar yang digunakan pada adalah polyfit dan polyval dengan
keluaran koefisien polinom dan hasil evaluasi fungsi polinom dari koefisien yang
didapatkan. Centering dan scaling pada Matlab dilakukan dengan menambahkan
parameter keluaran dari perintah polyfit dan menggunakan parameter tersebut
untuk perintah polyval. Terdapat dua set data yang digunakan dalam perbandingan,
Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia
ISBN 978-602-19655-1-1 Halaman 201 dari 216
yaitu yang pertama adalah data acak dan yang kedua adalah data hasil pengukuran
indeks bias logam perak [3]. Adapun hasil regresi orde 9 dari pasangan data acak
ditunjukkan dalam grafik pada Gambar 1.
Gambar 6. Hasil regresi orde 9 dari pasangan data acak dengan menggunakan C++
dan Matlab. Dibuat menggunakan Microsoft Excel 2007.
Seperti teramati pada grafik pada Gambar 1, hasil regresi menggunakan Matlab dan
program mendekati data set acak. Sebagai bahan perbandingan, ditampilkan pula
koefisien regresi dan koefisien determinasi yang didapat menggunakan Matlab dan
C++ pada Tabel 1.
Tabel 1. Perbandingan koefisien regresi orde 9 dari pasangan data acak
menggunakan Matlab dan C++.
C++ Matlab
a
0
66.8783 66.46
a
1
-142.931 -142
a
2
117.953 117.3
a
3
-49.9787 -49.71
a
4
12.2392 12.18
a
5
-1.81996 -1.811
a
6
0.166608 0.1658
a
7
-0.00916483 -0.009124
a
8
0.000277613 0.0002764
a
9
-3.55608*10
-6
-3.541*10
-6
R
2
0.997601 0.9976
Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia
ISBN 978-602-19655-1-1 Halaman 202 dari 216
Namun, perbandingan hasil regresi menggunakan data hasil percobaan [3]
menunjukkan anomali. Hasil regresi dengan menggunakan Matlab menyimpang dari
data percobaan. Oleh karena itu, pada Matlab digunakan perintah tambahan untuk
centering and scaling agar hasil regresi dapat diperbaiki. Hasil regresi orde 40
menggunakan data percobaan dapat dilihat pada Gambar 2.
Gambar 7. Hasil regresi orde 40 dari data percobaan yang didapat dengan
menggunakan C++ dan Matlab, dan dibuat menggunakan Microsoft Excel 2007.
Dari gambar 2 dapat diamati bahwa Matlab mampu mereduksi error antara data
dengan hasil regresi dengan menggunakan centering dan scaling. Di sisi lain, dapat
diamati bahwa program C++ yang dibuat mampu meregresi dengan kualitas yang lebih
baik dibandingkan dengan algoritma standard Matlab. Berikut diberikan pula
koefisien determinasi untuk masing-masing grafik pada Tabel 2.
Tabel 2. Nilai koefisien determinasi untuk masing-masing hasil regresi yang dihitung
menggunakan persamaan (8). Dihitung menggunakan Microsoft Excel 2007.
C++
Matlab dengan
centering, scaling
Matlab tanpa
centering, scaling
R
2
0.946823 0.99144827 -0.05599995
Sebagai upaya verifikasi, dilakukan crosscheck antara program yang telah dibuat
dengan Matlab. Nilai fungsi polinom dengan koefisien regresi yang dihasilkan
Matlab akan dihitung menggunakan program C++. Sebaliknya, nilai fungsi polinom
dengan koefisien regresi yang dihasilkan program C++ akan dihitung menggunakan
Matlab. Dari hasil perhitungan program C++, nilai fungsi polinom dari hasil Matlab
menunjukkan hasil yang sama dengan perhitungan Matlab itu sendiri. Di sisi lain,
evaluasi koefisien regresi program C++ menggunakan Matlab menunjukkan hasil
yang berbeda dengan hasil evaluasi menggunakan program C++. Evaluasi koefisien
hasil data menunjukkan kekacauan saat dievaluasi menggunakan Matlab. Upaya ini
menunjukkan adanya keterbatasan Matlab dalam melakukan regresi jika hanya
mengandalkan algoritma standard.
Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia
ISBN 978-602-19655-1-1 Halaman 203 dari 216
Waktu komputasi dicatat saat program melakukan regresi terhadap 49 pasang data
dengan orde regresi yang berbeda-beda. Waktu komputasi program C++ berada
dalam skala milidetik sehingga dapat digolongkan cepat. Waktu komputasi tak dapat
dibandingkan secara langsung oleh Matlab karena perhitungan pada Matlab
langsung dilakukan pada command window tanpa adanya built-in timer. Waktu
komputasi ini bertambah seiring dengan meningkatnya orde regresi dan banyaknya
data yang ada. Grafik yang menujukkan waktu komputasi sebagai fungsi dari orde
regresi dapat dilihat pada Gambar 3. Adapun proses yang dilakukan program yang
memperngaruhi lama waktu komputasi, dapat dilihat pada Gambar 4.
Gambar 8. Waktu komputasi yang diperlukan program untuk melakukan regresi.
Gambar 9. Flowchart program yang menjelaskan proses apa saja yang dilakukan
dalam melakukan regresi.
Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia
ISBN 978-602-19655-1-1 Halaman 204 dari 216
Kesimpulan
Penggunaan metode kuadrat terkecil terhadap fungsi polinomial akan
menghasilkan sistem persamaan linear yang dapat diselesaikan menggunakan
dekomposisi LU. Prinsip ini diterapkan untuk melakukan regresi hingga orde tinggi
dengan menggunakan bahasa pemrograman C++. Selain itu, tanpa menggunakan
centering dan scaling, koefisien determinasi hasil regresi program kami mengungguli
Matlab dalam melakukan regresi orde 40. Terakhir, waktu komputasi yang
dibutuhkan oleh program berada dalam orde milidetik.
Ucapan Terima Kasih
Penulis mengucapkan terima kasih kepada Dr. Sparisoma Viridi selaku pembimbing
yang telah memberikan arahan sehingga program dapat dibuat, dan juga kepada Dr.
Fourier D. Eljabbar Latief yang telah memberikan masukan yang bermanfaat dalam
penulisan karya tulis ini.Terakhir, penulis juga mengucapkan terima kasih kepada
Himpunan Fisika Indonesia cabang Jawa Barat selaku penyelenggara Seminar
Kontribusi Fisika atas kesempatan yang diberikan untuk menyampaikan karya tulis ini.
Referensi
[1] Agus Setiawan, Pengantar Metode Numerik, Penerbit Andi, Yogyakarta, 2006.
[2] Mary L. Boas, Mathematical Methods in the Physical Sciences 3
rd
edition, John
Wiley and Sons Inc, Canada, 1983.
[3] Johnson, P.B., and R.W. Christy," Optical Constants of the Noble Metals",
Physical Review B Vol. 6, No. 12, 1972, pp. 4370-4379
[4] De Beer, T.R.M., W.R.G. Baeyens, A. Vermeire, D. Broes, J.P. Remon, and C.
Vervaet, "Raman spectroscopic method for the determination of
medroxyprogesterone acetate in a pharmaceutical suspension: validation of
quantifying abilities, uncertainty assessment and comparison with the high
performance liquid chromatography reference method", Analytica Chimica Acta
Vol. 589, No. 2, 2007, pp. 192-199.
[5] Lieber, C.A., and A. Mahadevan-Jansen," Automated Method for Subtraction of
Fluorescence from Biological Raman Spectra", Applied Spectroscopy Vol. 57, No.
11, 2003, pp. 1363-1367.
[6] Zemansky, M. W. and R. H. Dittman, Heat and Thermodynamics 7
th
edition,
McGraw-Hill, 1997.
[7] He, L., X. Wang, W. Shi, and J. Hu, "Method for measuring the granite surface
topography of wafer stage with laser interferometer", Zian, 2006.
[8] Johnston, J.A., and M.H. Eckman," Use of regression modeling to simulate
patient-specific decision analysis for patients with nonvalvular atrial fibrillation",
Medical Decision Making Vol. 23, No. 5, 2003, pp. 361-368.
[9] Gibbons, R.D., and J.V. Lavigne," Emergence of childhood psychiatric disorders:
A multivariate probit analysis", Statistics in Medicine Vol. 17, No. 21, 1998, pp.
2487-2499.
[10] Pang, T., An Introduction to Computational Physics, Cambridge University Press,
2006.
Prosiding Seminar Kontribusi Fisika 2011 (SKF 2011)
1-2 Desember 2011, Bandung, Indonesia
ISBN 978-602-19655-1-1 Halaman 205 dari 216
Adisetyo Panduwirawan
*
Physics of Magnetism and Photonics
Institut Teknologi Bandung
rhizopoda.of.70@gmail.com
Luman Haris
Nuclear Physics and Biophysis Research Division
Institut Teknologi Bandung
ignlumen@gmail.com
Gratianus Wesley Putra Data
Physics of Magnetism and Photonics
Institut Teknologi Bandung
wesley_counter@hotmail.com
Dr. Fourier Dzar Eljabbar Latief
Physics of Complex System
Institut Teknologi Bandung
fourier@fi.itb.ac.id
Dr. Sparisoma Viridi
Nuclear Physics and Biophysis Research Division
Institut Teknologi Bandung
dudung@fi.itb.ac.id
* Corresponding author