Membuat Program Untuk Menentukan Fungsi Regresi
MEMBUAT PROGRAM UNTUK MENENTUKAN FUNGSI REGRESI
Oleh:
R i s w a n
Universitas MH Thamrin Jakarta [email protected]
A. PENDAHULUAN
Dalam suatu data, sering terdapat hubungan antara dua variabel. Yang menjadi masalah adalah menentukan bagaimana bentuk matematis dari hubungan tersebut. Penentuan persamaan bisa dilakukan dengan metoda menyesuaikan kurva (curve fitting). Tetapi pada curve fitting masih terdapat unsur subyektif. Untuk itu dipakai metoda kuadrat minimum (method of least squares) untuk mendapatkan kurva yang paling sesuai (the best fitting curve). Metoda kuadrat minimum inilah yang akan menjadi dasar dalam penentuan fungsi regresi.
Pemrograman akan dilakukan dengan menggunakan bahasa Basic, dalam hal ini Quick Basic. Hal ini disebabkan karena sampai saat ini, baru bahasa Basic saja yang dikuasai oleh penulis.
B. METODA KUADRAT MINIMUM (METHOD of LEAST SQUARES)
Kuadrat minimum digunakan apabila ada lebih banyak data dari pada variabel yang harus dicari. Kuadrat minimum bisa dipandang sebagai menghaluskan (smoothing) data atau menghilangkan noise. Pada gambar tampak kurva yang digambarkan melewati titik-titik
Gambar 1.
(x1,y1), (x2,y2), …, (xn,yn). Disitu tampak
pula bahwa simpangan antara data dan kurva adalah e1, e2, e3, …, en. Misal fungsi dari kurva adalah f(x), maka untuk harga x1, x2,
…, xn, fungsi berharga f(x1), f(x2), …,
f(xn). Disini simpangan ei = f(xi) – yi. Untuk mendapatkan kurva yang paling sesuai (the best fitting curve), syaratnya adalah S = e1 + e2 + … + en
harus berharga minimum. Supaya S berharga mini mum, maka turunan parsial S terhadap koefisien dari fungsi harus sama
dengan nol.
Misal dalam kasus f(x) = ax + b (fungsi linear),
Jadi supaya simpangan minimum,
Membuat Program Untuk Menentukan Fungsi Regresi
dua buah persamaan normal. Karena masing - masing persamaan mengandung dua buah variabel (a dan b), maka kedua persamaan bisa diselesaikan dengan metoda persamaan linear simultan. Harga-harga a dan b yang akan didapat merupakan koefisien dari funsi regresi linear yang dicari.
C. REGRESI
Regresi adalah proses penentuan suatu fungsi dekatan yang menggambarkan kecenderungan data dengan simpangan minimum antara nilai fungsi dengan data (Amrinsyah dan Hasballah, 2001). Ada beberapa macam regresi antara lain regresi polinomial, regresi linear dan regresi linear dengan dua peubah. Yang akan dibicarakan dan dibuatkan programnya dalam tulisan ini adalah regresi polinomial dan regresi linear.
C.1. Regresi Polinomial
Seperti telah diketahui, fungsi polinomial derajat n adalah :
Simpangan kesalahan yang terjadi pada setiap data terhadap nilai fungsi adalah :
ei = Pn(xi) – yi , dengan i = 1, 2, 3,
...,m dan m adalah banyaknya data. Apabila ditetapkan fungsi S =
S adalah fungsi dari koefisien polinomial Pn(x), yaitu S = S(a0, a1,
a2, ..., an). Supaya nilai S minimum,
maka turunan parsial dari S terhadap setiap koefisien sama dengan nol, yaitu :
S/a0 = 0, S/a1 = 0, S/a2 = 0, ..., S/ak = 0, dengan k = 0, 1, 2, ..., n
dan n adalah derajat dari polinomial.
Untuk mendapatkan rumus regresi polinomial, kita ambil contoh fungsi polinomial derajat tiga (n = 3) sebagai fungsi pendekatan.
P3(x) = a0 + a1 x + a2 x2 + a3 x3
Fungsi simpangan S adalah :
Sekarang akan kita cari turunan parsial S terhadap a0, a1, a2 dan a3 .
Turunan parsial terhadap a0.
Turunan parsial terhadap a1.
S/a1 = 0 = 2 (a0 + a1 x1 + a2 x12 + a3 x13– y1)2
(x1) + 2 (a0 + a1 x2 + a2 x22 + a3 x23–
y2)2 (x2) + 2 (a0 + a1 x3 + a2 x32 + a3
x33– y3)2 (x3) + ... + 2 (a0 + a1 xm +
a2 xm2 + a3 xm3– ym)2 (xm)
Membuat Program Untuk Menentukan Fungsi Regresi
m m m m m
a0 xi2 + a1 xi3 + a2 xi4 + a3 xi5 = xi2 yi
i=1 i=1 i=1 i=1 i=1
(3)
Turunan parsial terhadap a3.
S/a3 = 0 = 2 (a0 + a1 x1 + a2 x12 + a3
x13– y1)2 (x13) + 2 (a0 + a1 x2 + a2 x22
+ a3 x23 – y2)2 (x23) + 2 (a0 + a1 x3 +
a2 x32 + a3 x33– y3)2 (x33) + ... + 2 (a0
+ a1 xm + a2 xm2 + a3 xm3– ym)2 (xm3)
dengan cara seperti diatas diperoleh :
m m m m m
a0 xi3 + a1 xi4 + a2 xi5 + a3 xi6 = xi3 yi
i=1 i=1 i=1 i=1 i=1
(4)
Dari turunan parsial fungsi S menghasilkan empat persamaan normal (persamaan 1, 2, 3 dan 4) dengan empat variabel yang tidak diketahui (a0, a1, a2 dan a3). Karena
jumlah persamaan sama dengan jumlah variabel, maka ini merupakan persamaan linear simultan. Keempat persamaan diatas bisa kita susun dalam matrik sebagai berikut :
Dengan prosedur seperti diatas, jika
fungsi dekatan dinyatakan dalam
polinomial derajat n, maka koefisien
polinomial diselesaikan dengan (n+1)
persamaan linear simultan.
C.2. Regresi Linear
Fungsi linear adalah fungi polinomial dengan derajat satu. Oleh karena itu regresi linear dapat dicari dengan menggunakan regresi polinomial derajat satu. Persamaan 5 menunjukkan persamaan umum untuk polinomial derajat n. Jika kita ambil n = 1, maka persamaan untuk regresi linear adalah :
Dari persamaan 6 diatas diperoleh :
Untuk mencari a1, persamaan 7 dikalikan
m
dengan xi dan persamaan 8 dengan m.
Membuat Program Untuk Menentukan Fungsi Regresi
Sehingga diperoleh :
Sedang untuk mencari a0, persamaan 7 diubah
menjadi :
D. PEMROGRAMAN
D.1. Algoritma dan Program Regresi Polinomial
Algoritma untuk regresi polinomial adalah :
a. Tentukan jumlah data serta masukkan data xi dan yi.
b. Lakukan perhitungan untuk mendapatkan koefisien dan konstanta persamaan linear simultan dan masukkan masing-masing kedalam matrik.
c. Gabungkan kedua matrik untuk mrndapatkan matrik gabungan G. d. Selesaikan persamaan simultan
untuk mendapatkan harga koefisien polinomial.
e. Tulis hasil perhitungan dan akhiri program.
Dari algoritma diatas dapat dibuat
program sebagai berikut :
CLS
DIM G(10, 11), sum(10, 10)
DIM x(10), y(10), sumx(20), sumb(10), b(10), a(10)
REM ---mengambil data--- INPUT "Jumlah data : ", n FOR i = 1 TO n
PRINT "Data ke : "; i INPUT "x = ", x(i) INPUT "y = ", y(i) NEXT i
REM ---memasang koefisien pada matriks (M+1 x M+1)---
INPUT "Orde Polinomial : ", M CLS
u = 0 w = M
FOR p = 1 TO M + 1 FOR i = u TO w sumx(j) = 0 FOR j = 1 TO n
sumx(j) = sumx(j - 1) + x(j) ^ i NEXT j
sum(p, i + 1) = sumx(n) NEXT i
u = u + 1 w = w + 1 NEXT p
c = 1 d = 1
FOR i = 1 TO M + 1 FOR j = i TO M + i sum(c, d) = sum(i, j) d = d + 1
NEXT j c = c + 1 d = 1 NEXT i
REM---memasang konstanta pada matriks (M+1 x 1)---
sumb(i) = 0
FOR i = 1 TO M + 1 FOR j = 1 TO n
sumb(j) = sumb(j - 1) + y(j) * x(j) ^ (i - 1)
Membuat Program Untuk Menentukan Fungsi Regresi
REM---dengan metoda eliminasi Gauss---
REM---mencari harga y untuk x baru---
INPUT "masukkan harga x = ", xp yp = 0
PRINT "Orde Polinomial : "; M PRINT "Matrik Hasil Eliminasi" FOR i = 1 TO M + 1
PRINT "Koefisien Fungsi Regresi Polinomial :" FOR i = 0 TO M
Algoritma untuk program regresi linear adalah :
e. Hitung koefisien persamaan regresi * a1 = (m * sumxy – sumx *
sumy) / (m * sumx2– (sumx)2)
* a0 = yrata – a1 * xrata
f. Tulis hasil perhitungan dan akhiri program.
Membuat Program Untuk Menentukan Fungsi Regresi
CLS
DIM x(10), y(10)
INPUT "Jumlah data : ", n
FOR i = 1 TO n
PRINT "Data ke : "; i
INPUT "x = ", x(i)
INPUT "y = ", y(i)
NEXT i
INPUT "Masukkan harga x yang akan dihitung :
", xp
sumx = 0: sumy = 0: sumx2 = 0: sumxy = 0
FOR i = 1 TO n
sumx = sumx + x(i)
sumy = sumy + y(i)
sumx2 = sumx2 + x(i) * x(i)
sumxy = sumxy + x(i) * y(i)
NEXT i
xrata = sumx / n
yrata = sumy / n
a1 = (n * sumxy - sumx * sumy) / (n * sumx2 -
sumx * sumx)
a0 = yrata - a1 * xrata
yp = a0 + a1 * xp
CLS
PRINT "Jumlah data = "; n
FOR i = 1 TO n
PRINT "x("; i; ") ,"; " y("; i; ") ="; x(i); ","; y(i)
NEXT i
PRINT "Fungsi Regresi Linear :"
PRINT "y = "; a0; "+"; a1; "x"
PRINT "Harga x baru : "; xp
PRINT "Nilai y = "; yp
END
E. RINGKASAN
Metoda kuadrat minimum adalah salah satu metoda untuk mendapatkan kurva yang paling sesuai dengan data (the best fitting curve). Metoda ini menjadi dasar dalam penentuan fungsi regresi. Regresi adalah proses penentuan suatu fungsi dekatan yang menggambarkan kecenderungan data dengan simpangan minimum antara nilai fungsi dengan data (Amrinsyah dan Hasballah, 2001). Macam regresi antara lain regresi polinomial dan regresi linear.
Program yang dibuat adalah untuk regresi linear dan regresi polinomial. Keduanya dibuat dalam bahasa Basic, tepatnya Quick Basic.
F. REFERENSI
Hamming, R.W., 1986, Numerical Methods
for Scientists and Engineers, Second
Edition,
Dover Publications, Inc., New York.
Nasution, A. & Zakaria, H, 2001, Metode
Numerik dalam Ilmu Rekayasa Sipil,
Penerbit ITB, Bandung.
Spiegel, M.R., 1992, Statistik (terjemahan), Penerbit Erlangga, Jakarta.
Stroud, K.A., 1992, Matematika untuk
Teknik, Edisi Ketiga, Penerbit