Jenis‐jenis Basis Spline

13.4. Jenis‐jenis Basis Spline

Pada bagian sebelumnya telah diilustrasikan hasil regresi nonparametrik dengan spline kubik dan B‐spline. Secara umum ada beberapa jenis spline yang dapat digunakan dalam regresi nonparametrik. R menyediakan fasilitas untuk mengetahui macam‐macam spline, dikenal fungsi basis, yang dapat digunakan untuk regresi nonparametrik, yaitu pada library fda. Dalam library ini disediakan fasilitas untuk membuat delapan macam fungsi basis spline, yaitu basis B‐spline, Constant, Exponential, Fourier, Monomial, Polygonal, Polynomial, dan Power Basis Object.

Fungsi ‐fungsi yang ada di library fda dikembangkan untuk mendukung analisis data fungsional seperti yang digambarkan oleh Ramsay dan Silverman (2005). Berikut ini adalah tabel yang berisi perintah‐perintah untuk membuat fungsi‐fungsi basis spline yang dapat diaplikasikan untuk pemodelan regresi nonparametrik.

Perintah Keterangan create.bspline.basis Untuk membuat suatu B‐spline Basis

create.constant.basis Untuk membuat suatu Constant Basis create.exponential.basis Untuk membuat suatu Exponential Basis

create.fourier.basis Untuk membuat suatu Fourier Basis create.monomial.basis Untuk membuat suatu Monomial Basis create.polygonal.basis Untuk membuat suatu Polygonal Basis create.polynomial.basis Untuk membuat suatu Polynomial Basis create.power.basis Untuk membuat suatu Power Basis Object

Berikut ini adalah contoh script untuk membuat macam‐macam basis B‐spline yang dapat digunakan pada regresi nonparametrik.

# The simplest basis currently available with this function:

str(bspl1.1 <‐ create.bspline.basis(norder=1, breaks=0:1))

# 1 basis function, order 1 = degree 0 = step function: # constant 1 between 0 and 1.

str(bspl1.2 <‐ create.bspline.basis(norder=1, breaks=c(0,.5, 1)))

# 2 bases, order 1 = degree 0 = step functions: # (1) constant 1 between 0 and 0.5 and 0 otherwise # (2) constant 1 between 0.5 and 1 and 0 otherwise.

str(bspl2.3 <‐ create.bspline.basis(norder=2, breaks=c(0,.5, 1)))

# 3 bases: order 2 = degree 1 = linear # (1) line from (0,1) down to (0.5, 0), 0 after # (2) line from (0,0) up to (0.5, 1), then down to (1,0) # (3) 0 to (0.5, 0) then up to (1,1).

str(bspl3.4 <‐ create.bspline.basis(norder=3, breaks=c(0,.5, 1)))

# 4 bases: order 3 = degree 2 = parabolas. # (1) (x‐.5)^2 from 0 to .5, 0 after # (2) 2*(x‐1)^2 from .5 to 1, and a parabola # from (0,0 to (.5, .5) to match # (3 & 4) = complements to (2 & 1).

# Default b‐spline basis

str(bSpl4.23 <‐ create.bspline.basis())

# Cubic bspline (norder=4) with nbasis=23, # so nbreaks = nbasis‐norder+2 = 21, # 2 of which are rangeval, leaving 19 Interior knots.

str(bSpl4. <‐ create.bspline.basis(c(‐1,1)))

# Same as bSpl4.23 but over (‐1,1) rather than (0,1).

win.graph() par(mfrow=c(3,2))

plot(bspl1.1); plot(bspl1.2); plot(bspl2.3) plot(bspl3.4); plot(bSpl4.23); plot(bSpl4.)

Output dari script diatas adalah sebagai berikut.

Gambar

13.10. Macam‐macam fungsi basis B‐spline

Basis constant adalah suatu basis spline yang menghasilkan suatu konstanta seperti yang terlihat pada plot pertama di Gambar 13.10 atau yang paling atas sebelah kiri. Fungsi basis yang lain adalah exponential, dan berikut adalah script untuk membuat basis spline exponential.

# Create an exponential basis over interval [0,5] # with basis functions 1, exp(‐t) and exp(‐5t)

basisobj <‐ create.exponential.basis(c(0,5),3,c(0,‐1,‐5))

# plot the basis

plot(basisobj)

Hasil output grafik dari script ini adalah sebagai berikut.

Gambar

13.11. Macam‐macam fungsi basis exponential

Selanjutnya akan dijelaskan tentang fungsi basis Fourier. Fungsi basis Fourier adalah suatu sistem yang biasanya digunakan pada fungsi‐fungsi yang periodik. Fungsi basis Fourier yang pertama adalah suatu fungsi konstanta. Sedangkan yang lainnya adalah pasangan dari sin dan cos dengan pengali suatu integer dari periode dasar. Jumlah atau banyaknya fungsi basis yang dibangkitkan adalah selalu ganjil. Berikut adalah script untuk membuat fungsi basis Fourier.

# Create a minimal Fourier basis for the monthly temperature data, # using 3 basis functions with period 12 months.

monthbasis3 <‐ create.fourier.basis(c(0,12) )

# set up the Fourier basis for the monthly temperature data, # using 9 basis functions with period 12 months.

monthbasis <‐ create.fourier.basis(c(0,12), 9, 12.0)

# plot the basis win.graph()

par(mfrow=c(2,1)) plot(monthbasis3) plot(monthbasis)