MEMBUAT PROGRAM UNTUK MENENTUKAN FUNGSI REGRESI

MEMBUAT PROGRAM UNTUK MENENTUKAN FUNGSI REGRESI

  Oleh:

R i s w a n Universitas MH Thamrin Jakarta riswan@umht.ac.id

  A. PENDAHULUAN

  Dalam suatu data, sering terdapat hubungan antara dua variabel. Yang menjadi masalah adalah menentukan bagaimana bentuk matematis dari hubungan tersebut.

  Gambar 1 .

  Penentuan persamaan bisa dilakukan dengan metoda menyesuaikan kurva (curve fitting).

  (x1,y1), (x2,y2), …, (xn,yn). Disitu tampak Tetapi pada curve fitting masih terdapat pula bahwa simpangan antara data dan kurva unsur subyektif. Untuk itu dipakai metoda adalah e1, e2, e

  3, …, en. Misal fungsi dari kuadrat minimum (method of least squares) kurva adalah f(x), maka untuk harga x1, x2, untuk mendapatkan kurva yang paling sesuai …, xn, fungsi berharga f(x1), f(x2), …,

  (the best fitting curve). Metoda kuadrat f(xn). Disini simpangan ei = f(xi) – yi. minimum inilah yang akan menjadi dasar

  Untuk mendapatkan kurva yang paling dalam penentuan fungsi regresi. sesuai (the best fitting curve), syaratnya adalah S = e1 + e2 +

  … + en 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

  harus berharga minimum. Supaya S

  (METHOD of LEAST SQUARES)

  berharga mini mum, maka turunan parsial S terhadap koefisien dari fungsi harus sama Kuadrat minimum digunakan apabila ada dengan nol. lebih banyak data dari pada variabel yang harus dicari. Kuadrat minimum bisa

  Misal dalam kasus f(x) = ax + b (fungsi dipandang sebagai menghaluskan linear), (smoothing) data atau menghilangkan noise.

  Pada gambar tampak kurva yang digambarkan melewati titik-titik Jadi supaya simpangan minimum, Dari sini akan didapatkan apa yang disebut dengan persamaan normal (Stroud, 1992).

  Dalam hal regresi linear, maka akan terdapat

  Volume 2 No. 1, Maret 2015

  • 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.
    • a
      • – y i

    • a
    • a

  2

  2

  (x

  2

  )

  2

  3

  2

  3 x

  2

  1

  1 ) + 2 (a + a 1 x 2 + a 2 x

  (x

  2

  )

  1

  3

  1

  x

  ) + 2 (a + a

  x

  2

  2

  2

  3

  3 x m

  2

  2 x m

  a

  3 ) + ... + 2 (a + a 1 x m +

  (x

  3 )

  3

  3

  3

  x

  3

  2

  3

  x

  2

  3

  1

  2 , ..., a n ). Supaya nilai S minimum,

  (x

  , a

  1

  (x), yaitu S = S(a , a

  n

  , dengan i = 1, 2, 3, ...,m dan m adalah banyaknya data. Apabila ditetapkan fungsi S = S adalah fungsi dari koefisien polinomial P

  )

  i

  n

  maka turunan parsial dari S terhadap setiap koefisien sama dengan nol, yaitu : S/a = 0, S/a

  = P

  i

  Seperti telah diketahui, fungsi polinomial derajat n adalah : Simpangan kesalahan yang terjadi pada setiap data terhadap nilai fungsi adalah : e

  C.1. Regresi Polinomial

  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. REGRESI

  dua buah persamaan normal. Karena masing

  • – y
    • a

  • – y
    • a
    • a

  • – y

  Volume 2 No. 1, Maret 2015

  1 = 0, S/a 2 = 0, ...,

  x

  S/a k = 0, dengan k = 0, 1, 2, ..., n dan n adalah derajat dari polinomial.

  2

  1

  x

  1

  = 0 = 2 (a + a

  1

  S/a

  1 .

  Turunan parsial terhadap a

  Turunan parsial terhadap a .

  1 , a 2 dan a 3 .

  Sekarang akan kita cari turunan parsial S terhadap a , a

  3 Fungsi simpangan S adalah :

  3 x

  2

  3 (x) = a + a 1 x + a 2 x

  P

  Untuk mendapatkan rumus regresi polinomial, kita ambil contoh fungsi polinomial derajat tiga (n = 3) sebagai fungsi pendekatan.

  • a
    • – y m )

  (x m ) dengan cara seperti diatas diperoleh :

  • a
  • a
  • a
  • a
    • – y

  • a

  • – y
    • a

  • – y
    • a
    • a
    • a

  • – y m
    • a
    • a
    • a

  x

  m

  (x

  2

  )

  3

  m

  x

  3

  2

  m

  2

  3

  3

  x

  1

  ) + ... + 2 (a

  3

  3

  (x

  2

  )

  3

  3

  m

  3

  ) dengan cara seperti diatas diperoleh : m m m m m a  x i

  dan a

  i dan persamaan 8 dengan m.

  m dengan  x

  1 , persamaan 7 dikalikan

  Untuk mencari a

  5 menunjukkan persamaan umum untuk polinomial derajat n. Jika kita ambil n = 1, maka persamaan untuk regresi linear adalah : Dari persamaan 6 diatas diperoleh :

  Fungsi linear adalah fungi polinomial dengan derajat satu. Oleh karena itu regresi linear dapat dicari dengan menggunakan regresi polinomial derajat satu. Persamaan

  C.2. Regresi Linear

  Dengan prosedur seperti diatas, jika fungsi dekatan dinyatakan dalam polinomial derajat n, maka koefisien polinomial diselesaikan dengan (n+1) persamaan linear simultan.

  ). Karena jumlah persamaan sama dengan jumlah variabel, maka ini merupakan persamaan linear simultan. Keempat persamaan diatas bisa kita susun dalam matrik sebagai berikut :

  3

  2

  1  x i

  , a

  1

  Dari turunan parsial fungsi S menghasilkan empat persamaan normal (persamaan 1, 2, 3 dan 4) dengan empat variabel yang tidak diketahui (a , a

  y i i=1 i=1 i=1 i=1 i=1 (4)

  3

  =  x i

  6

  3  x i

  5

  2  x i

  4

  x

  2

  3

  3

  3 = 0 = 2 (a + a 1 x 1 + a 2 x

  S/a

  Turunan parsial terhadap a 3 .

  y i i=1 i=1 i=1 i=1 i=1 (3)

  2

  i

  =  x

  5

  i

   x

  4

  2

  i

   x

  2

  3

  i

   x

  1

  2

  i

  m m m m m a  x

  Volume 2 No. 1, Maret 2015

  1

  3

  3

  2

  x

  2

  a

  1 x 3 +

  ) + 2 (a + a

  3

  2

  (x

  2

  2 )

  3

  3 x

  x

  2

  2

  1 x 2 + a 2 x

  ) + 2 (a + a

  3

  1

  (x

  2

  1 )

  3

  1

  i=1

  Sehingga diperoleh : 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 PRINT "Data ke : "; i

  INPUT "x = ", x(i)

  INPUT "y = ", y(i) NEXT i

  Sedang untuk mencari a , persamaan 7 diubah REM -------memasang koefisien pada menjadi : matriks (M+1 x M+1)------------- PRINT

  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

  D. PEMROGRAMAN D.1. Algoritma dan Program Regresi NEXT j Polinomial sum(p, i + 1) = sumx(n)

  Algoritma untuk regresi polinomial NEXT i adalah : u = u + 1 a. Tentukan jumlah data serta w = w + 1 masukkan data x i dan y i . NEXT p b. Lakukan perhitungan untuk mendapatkan koefisien dan c = 1 konstanta persamaan linear d = 1 simultan dan masukkan masing- FOR i = 1 TO M + 1 masing kedalam matrik. FOR j = i TO M + i

  c. Gabungkan kedua matrik untuk sum(c, d) = sum(i, j) mrndapatkan matrik gabungan G. d = d + 1 d. Selesaikan persamaan simultan NEXT j untuk mendapatkan harga koefisien c = c + 1 polinomial. d = 1

  e. Tulis hasil perhitungan dan akhiri NEXT i program.

  REM---------memasang konstanta pada Dari algoritma diatas dapat dibuat matriks (M+1 x 1)--------- sumb(i) = 0 program sebagai berikut :

  FOR i = 1 TO M + 1 FOR j = 1 TO n

  CLS sumb(j) = sumb(j - 1) + y(j) * x(j) ^ (i

  • 1) DIM G(10, 11), sum(10, 10)

  NEXT j

  Volume 2 No. 1, Maret 2015

  • sumx = sumx + x
  • sumy = sumy + y i
  • sumx
    • x i

  • sumxy = sumxy + x
    • INPUT "masukkan harga x = ", xp yp = 0 FOR i = 0 TO M yp = yp + a(i) * xp ^ i NEXT i REM------------------hasil------------------------ CLS

  • xrata = sumx / m
  • yrata = sumy / m
  • a
    • – sumx * sumy) / (m * sumx
    • – (sumx)

  • a = yrata – a

  = sumx

  1 * xrata

  )

  2

  2

  = (m * sumxy

  1

  e. Hitung koefisien persamaan regresi

  d. Hitung nilai rata-rata x dan y

  i

  y

  i

  2

  2

  2

  Volume 2 No. 1, Maret 2015

  1

  c. Untuk i = 1 sampai m, lakukan perhitungan :

  = 0

  2

  b. Inisialisasi : sumx = 0, sumy = 0, sumxy = 0, sumx

  Algoritma untuk program regresi linear adalah : a. Tentukan jumlah data m serta data x i dan y i .

  D.2. Algoritma dan Program Regresi Linear

  PRINT PRINT "Harga x : "; xp PRINT "Harga y : "; yp END

  PRINT "x("; i; "), y("; i; ") = "; x(i); ","; y(i) NEXT i PRINT PRINT "Orde Polinomial : "; M PRINT "Matrik Hasil Eliminasi" FOR i = 1 TO M + 1 FOR j = 1 TO M + 2 PRINT G(i, j), NEXT j PRINT NEXT i PRINT PRINT "Koefisien Fungsi Regresi Polinomial :" FOR i = 0 TO M PRINT "a("; i; ") = "; a(i) NEXT i

  PRINT "Jumlah Data : "; n PRINT FOR i = 1 TO n

  NEXT i a(M) = G(M + 1, M + 2) / G(M + 1, M + 1) FOR k = 0 TO M - 1 i = M - k z = G(i, M + 2) FOR j = i + 1 TO M + 1 z = z - G(i, j) * a(j - 1) NEXT j a(i - 1) = z / G(i, i) NEXT k REM----------mencari harga y untuk x baru--------

  IF G(j, k) < 10 ^ -5 THEN G(j, k) = 0 NEXT k NEXT j

  b(i) = sumb(n) NEXT i REM--------menggabungkan kedua matriks------------- FOR i = 1 TO M + 1 FOR j = 1 TO M + 1 G(i, j) = sum(i, j) NEXT j G(i, M + 2) = b(i) NEXT i REM--------menyelesaikan persamaan linear simultan------- REM--------dengan metoda eliminasi Gauss----------------- FOR i = 1 TO M + 1 FOR j = i + 1 TO M + 1 faktor = G(j, i) / G(i, i) FOR k = 1 TO M + 2 G(j, k) = G(j, k) - faktor * G(i, k)

  f. Tulis hasil perhitungan dan akhiri program. Dari algoritma diatas dapat dibuat program sebagai berikut :

  CLS DIM x(10), y(10)

  E. RINGKASAN

  Metoda kuadrat minimum adalah salah satu

  INPUT "Jumlah data : ", n metoda untuk mendapatkan kurva yang FOR i = 1 TO n paling sesuai dengan data (the best fitting PRINT curve). Metoda ini menjadi dasar dalam penentuan fungsi regresi. Regresi adalah

  PRINT "Data ke : "; i proses penentuan suatu fungsi dekatan yang

  INPUT "x = ", x(i) menggambarkan kecenderungan data dengan

  INPUT "y = ", y(i) simpangan minimum antara nilai fungsi dengan data (Amrinsyah dan Hasballah,

  NEXT i 2001). Macam regresi antara lain regresi

  PRINT polinomial dan regresi linear.

  INPUT "Masukkan harga x yang akan dihitung : Program yang dibuat adalah untuk regresi

  ", xp linear dan regresi polinomial. Keduanya sumx = 0: sumy = 0: sumx2 = 0: sumxy = 0 dibuat dalam bahasa Basic, tepatnya Quick Basic. FOR i = 1 TO n sumx = sumx + x(i)

  F. REFERENSI

  sumy = sumy + y(i) Hamming, R.W., 1986, Numerical Methods sumx2 = sumx2 + x(i) * x(i)

  for Scientists and Engineers , Second

  Edition, sumxy = sumxy + x(i) * y(i) Dover Publications, Inc., New York. NEXT i

  Nasution, A. & Zakaria, H, 2001, Metode xrata = sumx / n

  Numerik dalam Ilmu Rekayasa Sipil , Penerbit ITB, Bandung.

  yrata = sumy / n Spiegel, M.R., 1992, Statistik (terjemahan), a1 = (n * sumxy - sumx * sumy) / (n * sumx2 -

  Penerbit Erlangga, Jakarta. sumx * sumx)

  Stroud, K.A., 1992, Matematika untuk

  Teknik , Edisi Ketiga, Penerbit

  a0 = yrata - a1 * xrata Erlangga, Jakarta. yp = a0 + a1 * xp CLS PRINT "Jumlah data = "; n PRINT FOR i = 1 TO n PRINT "x("; i; ") ,"; " y("; i; ") ="; x(i); ","; y(i) NEXT i PRINT PRINT "Fungsi Regresi Linear :" PRINT "y = "; a0; "+"; a1; "x" PRINT PRINT "Harga x baru : "; xp PRINT "Nilai y = "; yp END

  Volume 2 No. 1, Maret 2015