Anda di halaman 1dari 21

TUGAS

REGRESI NON PARAMETRIK

Walter A Renwarin

201950014

PROGRAM STUDI STATISTIKA


JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS PATTIMURA
AMBON
2022
Berikut data IHSG dan Kurs Rupiah

No Date IHSG KURS No Date IHSG KURS


1 4-Sep-14 5205.32 11760 29 14-Oct-14 4922.58 12195
2 5-Sep-14 5217.33 11770 30 15-Oct-14 4962.94 12229
3 8-Sep-14 5246.48 11722 31 16-Oct-14 4951.61 12207
4 9-Sep-14 5197.12 11754 32 17-Oct-14 5028.95 12222
5 10-Sep-14 5142.99 11782 33 20-Oct-14 5040.53 12041
6 11-Sep-14 5133.03 11831 34 21-Oct-14 5029.34 11993
7 12-Sep-14 5143.71 11831 35 22-Oct-14 5074.32 12026
8 15-Sep-14 5144.9 11875 36 23-Oct-14 5103.52 12034
9 16-Sep-14 5130.5 11903 37 24-Oct-14 5073.07 12065
10 17-Sep-14 5188.18 11908 38 27-Oct-14 5024.29 12042
11 18-Sep-14 5208.14 12030 39 28-Oct-14 5001.3 12158
12 19-Sep-14 5227.58 11985 40 29-Oct-14 5074.06 12163
13 22-Sep-14 5219.8 11972 41 30-Oct-14 5058.85 12165
14 23-Sep-14 5188.11 11987 42 31-Oct-14 5089.55 12082
15 24-Sep-14 5174.01 11976 43 3-Nov-14 5085.51 12105
16 25-Sep-14 5201.38 11947 44 4-Nov-14 5070.94 12130
17 26-Sep-14 5132.56 12007 45 5-Nov-14 5066.83 12092
18 29-Sep-14 5142.01 12120 46 6-Nov-14 5034.23 12179
19 30-Sep-14 5137.58 12212 47 7-Nov-14 4987.42 12149
20 1-Oct-14 5140.91 12188 48 10-Nov-14 4965.39 12138
21 2-Oct-14 5000.81 12136 49 11-Nov-14 5032.28 12163
22 3-Oct-14 4949.35 12144 50 12-Nov-14 5048.84 12205
23 6-Oct-14 5000.14 12212 51 13-Nov-14 5048.67 12191
24 7-Oct-14 5032.84 12190 52 14-Nov-14 5049.49 12206
25 8-Oct-14 4958.52 12241 53 17-Nov-14 5053.94 12193
26 9-Oct-14 4993.88 12190 54 18-Nov-14 5102.47 12146
27 10-Oct-14 4962.96 12207 55 19-Nov-14 5127.93 12124
28 13-Oct-14 4913.05 12202 56 20-Nov-14 5093.57 12161

Software yang akan kita gunakan yaitu Software R sehingga kita perlu mendowndloadnya di Chrome untuk bisa
menjalankan software R
Langkah-langkah penentuan bandwidth optimum dengan metode CV (Cross Validation), GCV
(Generalized Cross Validation), dan MSE (Mean Square Error):
Langkah Pertama kita perlu memanggil data yang akan dianalisis dengan menggunakan R-Commander.
Sebelum itu kita perlu menginstal packages yang akan digunakan yaitu Packages Rcmdr dan PLRModels
R Concole

1. Install Packages Rcmdr (R-Commander): Buka Aplikasi R → Packages → Install packages (s)
→ (muncul kotak dialog untuk memilih negara) pilih Indonesia → (Muncul kotak dialog
“Packages”) pilih “Rcmdr” → Ok.
Tunggu sebentar untuk sedang dilakukan proses install packages.
2. Selanjutnya install Packages PLRModels: Packages → Install packages (s)... → (muncul kotak
dialog untuk memilih negara) pilih Indonesia → (Muncul kotak dialog “Packages”) pilih
“PLRModels” → Ok.
Tunggu sebentar untuk sedang dilakukan proses install packages.

Setelah kedua Packages tersebut terinstal, maka selanjutnya kita panggil packages tersebut untuk
dijalankan. Dengan cara mengetik pada R Concole:

library(Rcmdr)

Tampilan R Concole

Akan muncul kotak dialog baru yaitu kotak R Comander. Kemudian lakukan pemanggilan data di R
Commander seperti berikut:
R Commander → Data → Import data → from Excel file → (pemberian nama data) beri nama
Dataset1 → OK → pilih data yang akan digunakan → open.

R Commander

Untuk melihat data yang sudah dipanggil, klik View Data set

R Concole

Kembali ke R Concole dan panggil packages PLRModels:

library(PLRModels)

Tampilan R Concole

Sebelum masuk pada syntax CV, GCV, dan MSE. Terlebih dahulu kita lakukan pendefenisian fungsi
kernel karena yang kita lakukan adalah pemilihan bandwidth optimum Regresi Kernel. Untuk setiap
metode diperlukan pendefenisian fungsi Kernel, namun pada kesempatan kali ini hanya akan dilakukan
sekali pendefenisian fungsi kernel karena syntax akan dijalankan untuk tiga metode sekaligus.
Syntax:
ker<-function(X)
{
kergauss <- (1/sqrt(2*pi))*exp((-1/2)*X^2)
return(kergauss)
}
Tampilan R Concole

Kemudian dilanjutkan untuk syntax penentuan bandwidth optimum.


Dengan:
𝑋 = Variabel Prediktor
𝑌 = Variabel Respon
𝑎 = nilai bandwidth terkecil yang dicobakan

𝑏 = nilai bandwidth terbesar yang dicobakan


𝑐 = penambahan bandwidth

ℎ = barisan bandwidth yang dicobakan

A. Menentukan Bandwidth optimum dengan metode Cross Validation (CV)


Setelah memanggil data, packages, dan melakukan pendefenisian Fungsi Kernel. Selanjutnya silahkan ketik
Syntax berikut ini:
Syntax:
cv1=function(X,Y,a, b, c)
{
h <- seq(a, b, by = c)
s <- length(h)
CV=matrix(nrow=s,ncol=1)
for(m in 1:s) {
g <- length(X)
Ghat <- rep(0, g)
n <- length(Y)
for(j in 1:g) {
ghat <- 0
faktor <- 0
for(i in 1:n) {
faktor <- faktor + ker((X[j] - X[i])/h[m])
ghat <- ghat + Y[i] * ker((X[j] - X[i])/h[m])
}
if((faktor-ker(0))== 0)
Ghat [j]<- 0
else Ghat[j] <- (ghat-ker(0)*Y[j])/(faktor-ker(0))
}
cv.h <- 1/n * sum((Y -
Ghat)^2) CV[m]=cv.h
}
R<-
matrix(c(h,CV),nrow=s)
sort.R<-R[order(R[,2]),]
S<-sort.R[1:10,]
cat("\nh opt=",S[1,1],"dengan cv minimal=",S[1,2],"\nBerikut 10 nilai cv terkecil
beserta nilai bandwidh h:\n")
cat("\n======================")
cat("\n No h CV ")
cat("\n======================\n")
S
}

Kemudian lakukan pendefenisian Variabel 𝑋 dan 𝑌


X<-Dataset1$KURS
Y<-Dataset1$IHSG
cv1(X,Y,1,60,1)

R Concole
Maka Output yang akan keluar/dihasilkan adalah:

Pada output tersebut terlihat bahwa nilai h optimal = 34 dengan CV minimal = 3473,916.
Selanjutnya untuk melihat hasil estimasi dan grafiknya sebagai berikut:
Syntax:
gh1=function(hopt)
{#hopt: nilai bandwidth optimal
g <- length(X)
Ghat <- rep(0, g)
n <- length(Y)
for(j in 1:g) {
ghat <- 0
faktor <- 0
for(i in 1:n) {
faktor <- faktor + ker((X[j]-X[i])/hopt)
ghat <- ghat + Y[i] * ker((X[j]-X[i])/hopt)
}
if(faktor==0)Ghat[j]=0
else Ghat[j] <- ghat/faktor
}
Gh=matrix(Ghat,ncol=1)
plot(X,Y,xlim=c(min(X),max(X)),ylim=c(4900,5300),xlab = "KURS", ylab
= "IHSG")
par(new = T)

lines(X, Gh, xlim = c(min(X), max(X)), ylim=c(4900,5300), xlab= "",col=2)


Gh
} gh1(34)

gh1 yang digunakan adalah 34 karena sebelumnya didapatkan nilai bandwidth optimum CV adalah 34

R Concole
Output hasil estimasi beserta grafiknya:
Tampilan R Concole
B. Menentukan Bandwidth Optimum dengan Metode Generalized Cross Validation (GCV)
Untuk menentukan Bandwidth optimum, plot, dan estimasi sama seperti metode CV dengan metode
GCV, ketik syntax berikut ini:

Syntax:
gcv=function(X,Y,a, b, c)
{
h <- seq(a, b, by = c)
s <- length(h)
GCV=matrix(nrow=s,ncol=1)
Gcv=matrix(nrow=s,ncol=1)
MSE=matrix(nrow=s,ncol=1)
n=length(X)
e2=matrix(nrow=n,ncol=1)
e1=matrix(nrow=n,ncol=1)
hi=matrix(ncol=1)
for(m in 1:s) {
g <- length(X)
Ghat <- rep(0, g)
n <- length(Y)
gcv.h=0
mse=0
gcv=0
for(i in 1:g) {
e22=0
e11=0
ghat <- 0
faktor <- 0
for(j in 1:n) {
faktor <- faktor + ker((X[i] - X[j])/h[m])
ghat <- ghat + Y[j] * ker((X[i] - X[j])/h[m])
}
if(faktor== 0)
Ghat [i]<- 0
#else Ghat[i] <- (ghat-ker(0)*Y[i])
else Ghat[i] <- (ghat/faktor)
hi[i]=ker(0)/faktor
hii=hi[i]^2
#e22=(Y[i]-Ghat[i])^2/(n*(1-hi[i])^2)
#e2[i]=e22
e11=(Y[i]-Ghat[i])^2
e1[i]=e11
gcv.h=gcv.h+e11
}
mse=(sum(e1))/n
GCV[m]=(n*gcv.h)/(n-sum(hi))^2
MSE[m]=mse
}
R<-matrix(c(h,GCV,MSE),ncol=3)
sort.R1<-R[order(R[,2]),]
S<-sort.R1[1:10,]
cat("\nh opt=",S[1,1],"dengan GCV minimal=",S[1,2],"dan MSE=",S[1,3],"\nBerikut 10
nilai GCV terkecil dan MSE beserta nilai bandwidh h:\n")
cat("\n============================")
cat("\n No h GCV MSE ")
cat("\n============================\n")
S
}
gcv(Dataset1$KURS,Dataset1$IHSG,1,100,1)

Setiap syntax kali harus dilakukan pendefenisian Fungsi Kernel dan pendefenisian Variabel pada akhir
syntax. apabila tidak didefenisikan sebelumnya, maka perlu ddefenisikan hal ini juga berlaku pada
syntax GCV begitupun juga metode MSE.
R Concole
Output yang dihasilkan:

R Concole

Pada output tersebut terlihat bahwa nilai h optimal = 53 dengan GCV minimal = 3621,77 dan MSE =
3089,218. Selanjutnya untuk melihat hasil estimasi dan grafiknya sebagai berikut:
Syntax yang digunakan sama dengan syntax untuk plot dan estimasi CV, hanya saja gh1 yang semula
34 diganti dengan 53 sesuai dengan h optimal yang didapat
Syntax:

gh1=function(hopt)
{#hopt: nilai bandwidth optimal g <-
length(X)
Ghat <- rep(0, g) n <- length(Y) for(j in
1:g) { ghat <- 0
faktor <- 0 for(i in 1:n) {
faktor <- faktor + ker((X[j]-X[i])/hopt)
ghat <- ghat + Y[i] * ker((X[j]-X[i])/hopt)
}
if(faktor==0)Ghat[j]=0
else Ghat[j] <- ghat/faktor
}
Gh=matrix(Ghat,ncol=1)

plot(X,Y,xlim= c(min(X),max(X)),ylim =c(4900,5300),xlab = "KURS", ylab


= "IHSG")
par(new = T)
lines(X, Gh, xlim = c(min(X), max(X)), ylim=c(4900,5300), xlab= "",col=2)
Gh
} gh1(53)
R Concole
C. Menentukan Bandwidth Optimum dengan MSE Terkecil
Syntax:
gcv=function(X,Y,a, b, c)
{
h <- seq(a, b, by = c)
s <- length(h)
GCV=matrix(nrow=s,ncol=1)
MSE=matrix(nrow=s,ncol=1)
n=length(X)
e2=matrix(nrow=n,ncol=1)
e1=matrix(nrow=n,ncol=1)
hi=matrix(ncol=1)
for(m in 1:s) {
g <- length(X)
Ghat <- rep(0, g)
n <- length(Y)
gcv.h=0
mse=0
gcv=0
for(i in 1:g) {
e22=0
e11=0
ghat <- 0
faktor <- 0
for(j in 1:n) {
faktor <- faktor + ker((X[i] - X[j])/h[m])
ghat <- ghat + Y[j] * ker((X[i] - X[j])/h[m])
}
MSE[m]=mse
}
R<-matrix(c(h,GCV,MSE),ncol=3)
sort.R1<-R[order(R[,3]),]
S<-sort.R1[1:10,]
cat("\nh opt=",S[1,1],"dengan GCV minimal=",S[1,2],"dan MSE minimum=",S[1,3],"\
nBerikut 10 nilai GCV terkecil dan MSE beserta nilai bandwidh h:\n")
cat("\n============================")
cat("\n No h GCV MSE ")
cat("\n============================\n")
S
}
gcv(X,Y,0.1,1,0.1)

R Concole
Output yang dihasilkan:

R Concole

Pada output tersebut terlihat bahwa nilai h optimal = 0,1 dengan GCV minimal = 25083,62 dan MSE Minimum
=. 199,9651. Selanjutnya untuk melihat hasil estimasi dan grafiknya sebagai berikut:
Syntax:

gh1=function(hopt)
{#hopt: nilai bandwidth optimal g <-
length(X)
Ghat <- rep(0, g) n <- length(Y) for(j in
1:g) { ghat <- 0
faktor <- 0 for(i in 1:n) {
faktor <- faktor + ker((X[j]-X[i])/hopt)
ghat <- ghat + Y[i] * ker((X[j]-X[i])/hopt)
}
if(faktor==0)Ghat[j]=0
else Ghat[j] <- ghat/faktor
}
Gh=matrix(Ghat,ncol=1)

plot(X,Y,xlim= c(min(X),max(X)),ylim =c(4900,5300),xlab = "KURS", ylab


= "IHSG")
par(new = T)
lines(X, Gh, xlim = c(min(X), max(X)), ylim=c(4900,5300), xlab= "",col=2)
Gh
} gh1(0.1)

R concele
Kesimpulan

 Kita bisa membandingkan perbedaan regresi parametrik dan juga non parametrik
 Untuk estimasi fungsi regresi non parametric bisa kita lakukan dengan pengamatan teknik
smoothing seperti CV,GCV dan MSE
 Nilai bandiwith (Nilai h optimum) adalah parameter penghalus yang berfungsi mengontrol
kemulusan dan kurva yang kita estimasi
 Pada pola atau sebaran data bisa kita lihat bahwa nilai bandwitd yang terlalu kecil akan
menghasilkan kurva yang under-smoothing ( sangat kasar / fluktuatif ), sedangkan untuk bandwith
yang terlalu besar akan menghasilkan kurva yang over-smoothing ( sangat halus ) sehingga dari
ketiga metode pemilihan bandwidth optimal yaitu CV,GCV dan MSE dapat kita buktikan bahwa
metode CV adalah metode terbaik untuk menentukan nilai bandwith optimum

Anda mungkin juga menyukai