library(readxl)
Data_Bima <- read_excel("F:/Aaku Kuliah Renaldi/Semester 8 Skripsi/Sintaks R/Data/Data Bima.xlsx",
col_types = c("text", "numeric", "numeric",
"numeric", "numeric"))
Data_Bima
## # A tibble: 36 x 5
## Waktu Y X1 X2 X3
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 43831 0.294 0.75 0 0
## 2 43862 0.359 0.625 0.0206 0.0281
## 3 <NA> 0.354 0.5 0.685 0.159
## 4 43922 0.292 0.5 1 0.0772
## 5 Mei-2020 0.188 0.5 0.550 0.170
## 6 43983 0.138 0.375 0.217 0.140
## 7 44013 0.0475 0.25 0.398 0.210
## 8 Agu-2020 0 0.25 0.465 0.274
## 9 44075 0.0216 0.25 0.523 0.283
## 10 Okt-2020 0.0259 0.25 0.476 0.296
## # i 26 more rows
summary(Data_Bima)
## Waktu Y X1 X2
## Length:36 Min. :0.00000 Min. :0.0000 Min. :0.0000
## Class :character 1st Qu.:0.04914 1st Qu.:0.0000 1st Qu.:0.2480
## Mode :character Median :0.12851 Median :0.0625 Median :0.3163
## Mean :0.27658 Mean :0.2118 Mean :0.3971
## 3rd Qu.:0.38499 3rd Qu.:0.3750 3rd Qu.:0.5229
## Max. :1.00000 Max. :1.0000 Max. :1.0000
## X3
## Min. :0.0000
## 1st Qu.:0.2886
## Median :0.4428
## Mean :0.4737
## 3rd Qu.:0.7258
## Max. :1.0000
Kita lanjut melakukan visualisai data yaa
Jangan lupa untuk memanggil library
library(ggplot2)
library(MASS)
library(np)
## Warning: package 'np' was built under R version 4.4.2
## Nonparametric Kernel Methods for Mixed Datatypes (version 0.60-18)
## [vignette("np_faq",package="np") provides answers to frequently asked questions]
## [vignette("np",package="np") an overview]
## [vignette("entropy_np",package="np") an overview of entropy-based methods]
library(mgcv)
## Loading required package: nlme
## This is mgcv 1.9-1. For overview type 'help("mgcv-package")'.
library(randomForest)
## Warning: package 'randomForest' was built under R version 4.4.2
## randomForest 4.7-1.2
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
##
## margin
library(car)
## Loading required package: carData
Untuk melihat sebaran data dengan scatter plot Variabel Y dengan X1
model_linear1<-lm(Y~X1, data=Data_Bima)
plot(Data_Bima$X1, Data_Bima$Y, main="Plot untuk Deteksi Pola", pch=16)
abline(model_linear1, col="red", lwd=2)
Untuk melihat sebaran data dengan scatter plot Variabel Y dengan X2
model_linear1<-lm(Y~X2, data=Data_Bima)
plot(Data_Bima$X2, Data_Bima$Y, main="Plot untuk Deteksi Pola", pch=16)
abline(model_linear1, col="red", lwd=2)
Untuk melihat sebaran data dengan scatter plot Variabel Y dengan X3
model_linear1<-lm(Y~X3, data=Data_Bima)
plot(Data_Bima$X3, Data_Bima$Y, main="Plot untuk Deteksi Pola", pch=16)
abline(model_linear1, col="red", lwd=2)
Menurut babang Bima bahwa dari scatter plot dapat dilihat data tidak tersebar secara linear di garis regresi linear yang ada serta titik-titik data cendrung menyebar secara acak sehingga tidak membentuk suatu pola tertentu
ker<-function(x)
{
gauss<-(1/sqrt(2*pi))*exp((-1/2)*x^2)
return(gauss)
}
mse_LacalPolynomial_3Var<-function(X1,X2,X3,Y,band,width,p,u,v){
#X1, X2, X3, dan Y: data; band: bandwidth minimum; width: bandwidth maksimum;
#p: derajat; u: batas bawah pencarian grid untuk x0; v: lebar jarak pencarian grid untuk x0
X<-cbind(X1,X2,X3)
n=nrow(X)
x0_1<-seq(min(X1)+u,max(X1)-u,by=v)
x0_2<-seq(min(X2)+u,max(X2)-u,by=v)
x0_3<-seq(min(X3)+u,max(X3)-u,by=v)
x0<-cbind(x0_1,x0_2,x0_3)
z=nrow(x0)
h=c(seq(band,width,by=1))
s=length(h)
for(j1 in 1: length(x0_1)){
for(j2 in 1: length(x0_2)){
for(j3 in 1: length(x0_3)){
a<-matrix(rep(c(x0_1[j1],x0_2[j2],x0_3[j3]),n),ncol = 3, byrow = TRUE)
X_x0<-X-a
M=matrix(nrow = (z*s),ncol = 6)
GCV<-matrix(nrow = s, ncol = 1)
MSE<-matrix(nrow = s, ncol = 1)
X_nol<-matrix(rep(x0, s),ncol = 3,byrow = TRUE)
for (m in 1:s) {
matrix_X<-matrix(0,ncol = p+1,nrow = n)
for (i in 1:(p+1)) {
matrix_X[,i]<-apply(X_x0,1,function(x)x[1]^(i-1)*x[2]^(0)*x[3]^(0))
}
W<-matrix(0,ncol = n, nrow = n)
for (g in 1:n) {
W[g,g]<-ker(sqrt(sum(X_x0[g,]^2))/h[m])
}
inverse<-solve(t(matrix_X)%*%W%*%matrix_X)
beta<-inverse%*%t(matrix_X)%*%W%*%Y
m_hat<-matrix_X%*%beta
H_hat<-matrix_X%*%inverse%*%t(matrix_X)%*%W
MSE[m]<-(t(Y-m_hat)%*%(Y-m_hat))/n
I<-matrix(0,ncol = n, nrow = n)
for (g in 1:n ) {
I[g,g]<-1
}
GCV[m]<-(n^2*MSE[m])/(sum(diag(I-H_hat)))^2
}
R<-matrix(c(X_nol[,1],X_nol[,2],X_nol[,3],h, MSE, GCV), nrow = s)
if(j1==1){
M[1:s,]=R}
else{
M[(((j1-1)*s)+1):(j1*s),]=R}
}
}
}
sort.M<-M[order(M[,3]),]
s<-sort.M[1:10,]
cat("running program untuk order=",p+1,"\n")
cat("==============================================","\n")
cat(" x01 x02 x03 h MSE GCV \n")
cat("==============================================","\n")
print(s)
cat("==============================================","\n")
}
mse_LacalPolynomial_3Var(Data_Bima$X1,Data_Bima$X2,Data_Bima$X3,Data_Bima$Y,0.1,10,1,0.1,1)
## running program untuk order= 2
## ==============================================
## x01 x02 x03 h MSE GCV
## ==============================================
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.1 0.1 0.1 0.1 0.11341393 0.12714918
## [2,] 0.1 0.1 0.1 1.1 0.07230949 0.08106669
## [3,] 0.1 0.1 0.1 2.1 0.07107874 0.07968689
## [4,] 0.1 0.1 0.1 3.1 0.07100011 0.07959874
## [5,] 0.1 0.1 0.1 4.1 0.07098612 0.07958305
## [6,] 0.1 0.1 0.1 5.1 0.07098218 0.07957864
## [7,] 0.1 0.1 0.1 6.1 0.07098074 0.07957702
## [8,] 0.1 0.1 0.1 7.1 0.07098011 0.07957632
## [9,] 0.1 0.1 0.1 8.1 0.07097980 0.07957597
## [10,] 0.1 0.1 0.1 9.1 0.07097964 0.07957579
## ==============================================
mse_LacalPolynomial_3Var(Data_Bima$X1,Data_Bima$X2,Data_Bima$X3,Data_Bima$Y,0.1,10,2,0.1,1)
## running program untuk order= 3
## ==============================================
## x01 x02 x03 h MSE GCV
## ==============================================
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.1 0.1 0.1 0.1 0.11222639 0.13355868
## [2,] 0.1 0.1 0.1 1.1 0.06676015 0.07945009
## [3,] 0.1 0.1 0.1 2.1 0.06631773 0.07892358
## [4,] 0.1 0.1 0.1 3.1 0.06628672 0.07888667
## [5,] 0.1 0.1 0.1 4.1 0.06628103 0.07887991
## [6,] 0.1 0.1 0.1 5.1 0.06627942 0.07887798
## [7,] 0.1 0.1 0.1 6.1 0.06627882 0.07887727
## [8,] 0.1 0.1 0.1 7.1 0.06627856 0.07887696
## [9,] 0.1 0.1 0.1 8.1 0.06627843 0.07887681
## [10,] 0.1 0.1 0.1 9.1 0.06627836 0.07887673
## ==============================================
mse_LacalPolynomial_3Var(Data_Bima$X1,Data_Bima$X2,Data_Bima$X3,Data_Bima$Y,0.1,10,3,0.1,1)
## running program untuk order= 4
## ==============================================
## x01 x02 x03 h MSE GCV
## ==============================================
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.1 0.1 0.1 0.1 1.53641892 1.94453020
## [2,] 0.1 0.1 0.1 1.1 0.06635554 0.08398123
## [3,] 0.1 0.1 0.1 2.1 0.06588349 0.08338379
## [4,] 0.1 0.1 0.1 3.1 0.06585207 0.08334403
## [5,] 0.1 0.1 0.1 4.1 0.06584638 0.08333682
## [6,] 0.1 0.1 0.1 5.1 0.06584476 0.08333478
## [7,] 0.1 0.1 0.1 6.1 0.06584417 0.08333403
## [8,] 0.1 0.1 0.1 7.1 0.06584391 0.08333370
## [9,] 0.1 0.1 0.1 8.1 0.06584378 0.08333354
## [10,] 0.1 0.1 0.1 9.1 0.06584371 0.08333345
## ==============================================