#MEMANGGIL LIBRARY
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.5.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.5.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(MASS)
## Warning: package 'MASS' was built under R version 4.5.3
library(car)
## Warning: package 'car' was built under R version 4.5.3
## Loading required package: carData
library(pastecs)
## Warning: package 'pastecs' was built under R version 4.5.3
library(pracma)
## Warning: package 'pracma' was built under R version 4.5.3
##
## Attaching package: 'pracma'
## The following object is masked from 'package:car':
##
## logit
library(Matrix)
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:pracma':
##
## expm, lu, tril, triu
#MEMANGGIL DATA & STATISTIKA DESKRIPTIF
data=read.table(file.choose(), header=TRUE)
data
## Y X1 X2 X3 X4
## 1 4.52 67.88 13.00 14.86 72.04
## 2 4.97 71.02 12.89 14.38 51.19
## 3 5.70 61.98 13.58 18.56 73.59
## 4 5.45 68.96 12.78 29.61 43.00
## 5 5.08 67.40 13.31 14.89 74.71
## 6 6.22 69.04 12.55 55.70 71.41
## 7 3.49 76.22 12.50 10.46 67.09
## 8 9.00 62.90 14.13 15.59 80.01
## 9 8.26 65.16 14.70 75.04 30.11
## 10 9.46 69.24 12.90 31.21 80.02
## 11 3.71 74.28 12.60 20.67 67.03
## 12 3.91 75.81 12.08 8.67 47.87
## 13 3.38 71.78 12.39 10.74 65.98
## 14 7.55 64.14 12.33 8.54 25.74
## 15 3.52 70.38 11.56 19.95 65.77
## 16 7.30 60.75 11.79 28.13 67.17
## 17 4.50 75.57 12.02 14.71 36.88
## 18 4.02 74.09 12.04 10.28 65.69
## 19 3.39 77.53 11.57 6.56 64.76
## 20 2.70 73.93 11.15 25.23 25.55
## 21 3.71 65.53 11.81 4.21 22.68
## 22 7.14 67.71 13.64 28.93 67.95
## 23 12.36 60.05 13.64 37.68 79.44
## 24 8.78 63.84 12.89 10.14 41.94
## 25 3.57 72.03 11.96 10.16 69.38
## 26 4.96 64.68 11.92 17.31 68.86
## 27 3.87 72.55 12.28 11.73 59.18
## 28 2.93 74.61 12.38 5.76 66.22
## 29 3.73 70.17 11.86 6.35 70.11
## 30 2.24 73.15 12.10 4.65 48.85
## 31 3.90 71.15 12.19 4.83 68.84
## 32 4.49 70.08 12.88 3.30 65.59
## 33 3.07 69.27 12.59 14.48 72.19
## 34 6.95 70.16 12.36 15.39 50.71
## 35 2.46 76.50 12.37 9.17 68.82
## 36 8.32 62.07 13.92 21.93 77.10
## 37 5.54 66.82 14.80 6.11 79.10
## 38 5.08 66.44 13.29 11.21 71.94
## 39 4.45 67.38 12.99 18.72 41.10
## 40 4.83 67.81 12.20 5.75 66.97
## 41 4.14 66.91 12.63 26.30 45.79
## 42 5.86 65.65 13.73 38.11 75.83
## 43 4.76 73.01 12.71 33.79 72.87
## 44 5.25 67.41 12.69 56.63 71.31
## 45 4.98 70.04 12.90 45.81 69.48
## 46 4.21 64.68 12.54 45.53 70.22
## 47 5.29 71.54 12.48 51.50 30.59
## 48 4.70 65.50 12.11 66.27 68.03
## 49 2.83 70.50 12.47 67.99 70.51
## 50 4.30 65.04 11.98 40.96 37.58
## 51 5.69 64.55 12.51 48.22 68.68
## 52 2.63 72.77 12.40 43.84 68.45
## 53 2.49 71.22 11.77 51.25 70.81
## 54 2.91 77.73 12.82 54.56 21.39
## 55 3.10 63.93 11.74 62.92 67.98
## 56 5.95 62.71 14.94 61.01 80.77
stat.desc(data)
## Y X1 X2 X3 X4
## nbr.val 56.0000000 5.600000e+01 56.00000000 56.0000000 56.0000000
## nbr.null 0.0000000 0.000000e+00 0.00000000 0.0000000 0.0000000
## nbr.na 0.0000000 0.000000e+00 0.00000000 0.0000000 0.0000000
## min 2.2400000 6.005000e+01 11.15000000 3.3000000 21.3900000
## max 12.3600000 7.773000e+01 14.94000000 75.0400000 80.7700000
## range 10.1200000 1.768000e+01 3.79000000 71.7400000 59.3800000
## sum 277.6000000 3.863250e+03 708.36000000 1476.2800000 3422.8700000
## median 4.5100000 6.914000e+01 12.50500000 18.6400000 67.9650000
## mean 4.9571429 6.898661e+01 12.64928571 26.3621429 61.1226786
## SE.mean 0.2715868 6.008087e-01 0.10790865 2.6750203 2.2021767
## CI.mean.0.95 0.5442721 1.204048e+00 0.21625376 5.3608606 4.4132607
## var 4.1305262 2.021438e+01 0.65207948 400.7210935 271.5766018
## std.dev 2.0323696 4.496041e+00 0.80751438 20.0180192 16.4795814
## coef.var 0.4099881 6.517266e-02 0.06383873 0.7593472 0.2696148
#SCATTERPLOT
scatterplot = function(x, y, judul, xlab, ylab,
warna_titik = "#6C5B9E",
bg_plot = "pink",
warna_aksen = "#4B0082")
{
par(bg = bg_plot, mar = c(5, 5, 4, 2))
plot(x, y,
main = judul, xlab = xlab, ylab = ylab,
pch = 21, bg = warna_titik, col = "white",
cex = 1.7, lwd = 1.2,
font.main = 2, cex.main = 1.1,
col.main = warna_aksen,
col.lab = warna_aksen,
col.axis = warna_aksen,
las = 1, bty = "l")
grid(col = warna_aksen, lty = "dotted", lwd = 1)
abline(lm(y ~ x), col = warna_aksen, lwd = 3)
}
scatterplot(data$X1, data$Y,
"Scatterplot Tingkat Pengangguran Terbuka dan\nTingkat Partisipasi Angkatan Kerja",
"Tingkat Partisipasi Angkatan Kerja (X1)",
"Tingkat Pengangguran Terbuka (Y)",
warna_titik = "#2A9D8F")

scatterplot(data$X2, data$Y,
"Scatterplot Tingkat Pengangguran Terbuka dan\nHarapan Lama Sekolah",
"Harapan Lama Sekolah (X2)",
"Tingkat Pengangguran Terbuka (Y)",
warna_titik = "#E76F51")

scatterplot(data$X3, data$Y,
"Scatterplot Tingkat Pengangguran Terbuka dan\nPDRB Atas Dasar Harga Berlaku",
"PDRB Atas Dasar Harga Berlaku (X3)",
"Tingkat Pengangguran Terbuka (Y)",
warna_titik = "#E9A820")

scatterplot(data$X4, data$Y,
"Scatterplot Tingkat Pengangguran Terbuka dan\nIndeks Pembangunan Manusia",
"Indeks Pembangunan Manusia (X4)",
"Tingkat Pengangguran Terbuka (Y)",
warna_titik = "#6C5B9E")

par(bg = "white")
#PENDETEKSIAN MULTIKOLINEARITAS
model=(lm(formula=Y~X1+X2+X3+X4,data=data))
model
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4, data = data)
##
## Coefficients:
## (Intercept) X1 X2 X3 X4
## 10.498612 -0.237422 0.919839 -0.008344 -0.009455
summary(model)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.1296 -0.9922 -0.1119 0.7639 4.6374
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10.498612 5.796395 1.811 0.07600 .
## X1 -0.237422 0.049782 -4.769 1.59e-05 ***
## X2 0.919839 0.278410 3.304 0.00175 **
## X3 -0.008344 0.010186 -0.819 0.41651
## X4 -0.009455 0.012466 -0.758 0.45170
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.453 on 51 degrees of freedom
## Multiple R-squared: 0.526, Adjusted R-squared: 0.4888
## F-statistic: 14.15 on 4 and 51 DF, p-value: 7.786e-08
vif(model)
## X1 X2 X3 X4
## 1.304895 1.316581 1.083064 1.099406
#PEMILIHAN 1 TITIK KNOT
GCV1=function(data)
{
parameter=0
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-parameter-1
dataA=data[,(parameter+2):M]
dataA=as.matrix(dataA)
F=diag(N)
nk=50 #nk=banyaknya alternatif titik knot yang akan dicoba
knot1=matrix(ncol=m,nrow=nk)
for (i in (1:m)) #membuat knot
{
a=seq(min(dataA[,i]),max(dataA[,i]),length.out=nk)
knot1[,i]=t(as.matrix(a))
}
a1=length(knot1[,1])
knot1=as.matrix(knot1[2:(a1-1),])
aa=rep(1,N)
data1=matrix(ncol=m,nrow=N)
data2=data[,2:M] #data x saja
nk1=nrow(knot1)
GCV=as.matrix(rep(NA,nk1),ncol=1);colnames(GCV)<-"GCV"
MSE=as.matrix(rep(NA,nk1),ncol=1);colnames(MSE)<-"MSE"
SSE=rep(NA,nk1)
SSR=rep(NA,nk1)
Rsq=as.matrix(rep(NA,nk1),ncol=1);colnames(Rsq)<-"Rsq"
knotke=matrix(c(1:nk1),ncol=1);colnames(knotke)<-"knot_ke"
for (i in 1:nk1)
{
data1=matrix(ncol=m,nrow=N)
for (j in 1:m)
{
for (k in 1:N)
{
if (data[k,(j+parameter+1)]<knot1[i,j]) data1[k,j]=0 else
data1[k,j]=data[k,(j+parameter+1)]-knot1[i,j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
yhat=mx%*%B
res=data[,1]-yhat
SSE[i]=sum((res)^2)
SSR[i]=sum((yhat-mean(data[,1]))^2)
MSE[i]=SSE[i]/(N)
Rsq[i]=(SSR[i]/(SSR[i]+SSE[i]))*100
A=mx%*%C%*%t(mx)
A1=(F-A)
A2=(sum(diag(A1))/N)^2
GCV[i]=MSE[i]/A2
}
dataAll=as.matrix(cbind(GCV,Rsq,knotke,knot1))
dataG=dataAll[order(GCV),-2]
write.csv(dataAll, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Data Titik Knot 1.CSV")
# hasil GCV terkecil
cat("\n[ HASIL GCV TERKECIL | SPLINE 1 KNOT ]\n\n")
cat(" | GCV minimum :", format(dataG[1,1], digits=8), "\n")
cat(" | Knot ke- :", dataG[1,2], "\n")
for (v in 1:m) cat(" | Knot X", v, " : ", format(dataG[1,2+v], digits=6), "\n", sep="")
cat("\n[ 10 NILAI GCV TERKECIL ]\n\n")
print(dataG[1:10,])
mingcv=dataG[1,1]
knotgcv=as.matrix(knot1[dataG[1,2],])
knotgcv1=matrix(knotgcv,nrow=1)
datagcv1=matrix(ncol=m,nrow=N)
for (j in 1:m)
{
for (k in 1:N)
{
if (data[k,(j+parameter+1)]<knotgcv[j,1]) datagcv1[k,j]=0 else
datagcv1[k,j]=data[k,(j+parameter+1)]-knotgcv[j,1]
}
}
mxgcv=as.matrix(cbind(aa,data2,datagcv1))
mxgcv=mxgcv[,c(2:6)]
# ---- estimasi parameter ----
rownames(B) = c("b0",
paste0("b", 1:m, "_x", 1:m),
paste0("b", (m + 1):(2 * m), "_(x", 1:m, "-k", 1:m, ")+"))
cat("\n[ ESTIMASI PARAMETER | TITIK KNOT KE-1 ]\n\n")
print(B)
cat("\n")
return(list(knotgcv=knotgcv1,mingcv=mingcv,mxgcv=mxgcv,B=B))
}
GCV1(data)
##
## [ HASIL GCV TERKECIL | SPLINE 1 KNOT ]
##
## | GCV minimum : 1.5081867
## | Knot ke- : 45
## | Knot X1 : 76.2867
## | Knot X2 : 14.6306
## | Knot X3 : 69.1837
## | Knot X4 : 75.9227
##
## [ 10 NILAI GCV TERKECIL ]
##
## GCV knot_ke
## [1,] 1.508187 45 76.28673 14.63061 69.183673 75.92265
## [2,] 1.515931 44 75.92592 14.55327 67.719592 74.71082
## [3,] 1.603414 46 76.64755 14.70796 70.647755 77.13449
## [4,] 1.615275 43 75.56510 14.47592 66.255510 73.49898
## [5,] 1.734461 42 75.20429 14.39857 64.791429 72.28714
## [6,] 1.763515 47 77.00837 14.78531 72.111837 78.34633
## [7,] 1.830095 3 61.13245 11.38204 7.692245 25.02551
## [8,] 1.861406 4 61.49327 11.45939 9.156327 26.23735
## [9,] 1.869770 41 74.84347 14.32122 63.327347 71.07531
## [10,] 1.912402 5 61.85408 11.53673 10.620408 27.44918
##
## [ ESTIMASI PARAMETER | TITIK KNOT KE-1 ]
##
## [,1]
## b0 1.100168e+01
## b1_x1 -2.352118e-01
## b2_x2 8.683805e-01
## b3_x3 -5.401921e-03
## b4_x4 -1.233868e-02
## b5_(x1-k1)+ 5.699848e-01
## b6_(x2-k2)+ -1.336717e+02
## b7_(x3-k3)+ 4.073604e-01
## b8_(x4-k4)+ 6.923471e+00
## $knotgcv
## [,1] [,2] [,3] [,4]
## [1,] 76.28673 14.63061 69.18367 75.92265
##
## $mingcv
## GCV
## 1.508187
##
## $mxgcv
## X1 X2 X3 X4
## [1,] 67.88 13.00 14.86 72.04 0.0000000
## [2,] 71.02 12.89 14.38 51.19 0.0000000
## [3,] 61.98 13.58 18.56 73.59 0.0000000
## [4,] 68.96 12.78 29.61 43.00 0.0000000
## [5,] 67.40 13.31 14.89 74.71 0.0000000
## [6,] 69.04 12.55 55.70 71.41 0.0000000
## [7,] 76.22 12.50 10.46 67.09 0.0000000
## [8,] 62.90 14.13 15.59 80.01 0.0000000
## [9,] 65.16 14.70 75.04 30.11 0.0000000
## [10,] 69.24 12.90 31.21 80.02 0.0000000
## [11,] 74.28 12.60 20.67 67.03 0.0000000
## [12,] 75.81 12.08 8.67 47.87 0.0000000
## [13,] 71.78 12.39 10.74 65.98 0.0000000
## [14,] 64.14 12.33 8.54 25.74 0.0000000
## [15,] 70.38 11.56 19.95 65.77 0.0000000
## [16,] 60.75 11.79 28.13 67.17 0.0000000
## [17,] 75.57 12.02 14.71 36.88 0.0000000
## [18,] 74.09 12.04 10.28 65.69 0.0000000
## [19,] 77.53 11.57 6.56 64.76 1.2432653
## [20,] 73.93 11.15 25.23 25.55 0.0000000
## [21,] 65.53 11.81 4.21 22.68 0.0000000
## [22,] 67.71 13.64 28.93 67.95 0.0000000
## [23,] 60.05 13.64 37.68 79.44 0.0000000
## [24,] 63.84 12.89 10.14 41.94 0.0000000
## [25,] 72.03 11.96 10.16 69.38 0.0000000
## [26,] 64.68 11.92 17.31 68.86 0.0000000
## [27,] 72.55 12.28 11.73 59.18 0.0000000
## [28,] 74.61 12.38 5.76 66.22 0.0000000
## [29,] 70.17 11.86 6.35 70.11 0.0000000
## [30,] 73.15 12.10 4.65 48.85 0.0000000
## [31,] 71.15 12.19 4.83 68.84 0.0000000
## [32,] 70.08 12.88 3.30 65.59 0.0000000
## [33,] 69.27 12.59 14.48 72.19 0.0000000
## [34,] 70.16 12.36 15.39 50.71 0.0000000
## [35,] 76.50 12.37 9.17 68.82 0.2132653
## [36,] 62.07 13.92 21.93 77.10 0.0000000
## [37,] 66.82 14.80 6.11 79.10 0.0000000
## [38,] 66.44 13.29 11.21 71.94 0.0000000
## [39,] 67.38 12.99 18.72 41.10 0.0000000
## [40,] 67.81 12.20 5.75 66.97 0.0000000
## [41,] 66.91 12.63 26.30 45.79 0.0000000
## [42,] 65.65 13.73 38.11 75.83 0.0000000
## [43,] 73.01 12.71 33.79 72.87 0.0000000
## [44,] 67.41 12.69 56.63 71.31 0.0000000
## [45,] 70.04 12.90 45.81 69.48 0.0000000
## [46,] 64.68 12.54 45.53 70.22 0.0000000
## [47,] 71.54 12.48 51.50 30.59 0.0000000
## [48,] 65.50 12.11 66.27 68.03 0.0000000
## [49,] 70.50 12.47 67.99 70.51 0.0000000
## [50,] 65.04 11.98 40.96 37.58 0.0000000
## [51,] 64.55 12.51 48.22 68.68 0.0000000
## [52,] 72.77 12.40 43.84 68.45 0.0000000
## [53,] 71.22 11.77 51.25 70.81 0.0000000
## [54,] 77.73 12.82 54.56 21.39 1.4432653
## [55,] 63.93 11.74 62.92 67.98 0.0000000
## [56,] 62.71 14.94 61.01 80.77 0.0000000
##
## $B
## [,1]
## b0 1.100168e+01
## b1_x1 -2.352118e-01
## b2_x2 8.683805e-01
## b3_x3 -5.401921e-03
## b4_x4 -1.233868e-02
## b5_(x1-k1)+ 5.699848e-01
## b6_(x2-k2)+ -1.336717e+02
## b7_(x3-k3)+ 4.073604e-01
## b8_(x4-k4)+ 6.923471e+00
#UJI SIGNIFIKANSI 2 TITIK KNOT
uji=function(alpha,parameter)
{
# membaca titik knot optimal (GCV terkecil)
knot1=read.csv("C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Data Titik Knot 1.CSV", header=TRUE)
knot1=as.matrix(knot1)
knot1=knot1[,-1] #buang kolom index baris
knot1=knot1[order(knot1[,1]),] #urutkan berdasarkan GCV terkecil
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-parameter-1
dataA=data[,(parameter+2):M]
dataA=as.matrix(dataA)
knotopt=as.numeric(knot1[1,4:(3+m)]) #knot X1-X4 pada baris GCV terkecil
aa=rep(1,N)
data1=matrix(ncol=m,nrow=N)
data2=data[,2:M] #data x saja
for (j in 1:m)
{
for (k in 1:N)
{
if (data[k,(j+parameter+1)]<knotopt[j]) data1[k,j]=0 else
data1[k,j]=data[k,(j+parameter+1)]-knotopt[j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
np=nrow(B) #banyaknya parameter
yhat=mx%*%B
res=data[,1]-yhat
SSE=sum((res)^2)
SSR=sum((yhat-mean(data[,1]))^2)
SST=sum((data[,1]-mean(data[,1]))^2)
MSE=SSE/(N)
MSR=SSR/(np-1)
Rsq=(SSR/(SSR+SSE))*100
rownames(B) = c("b0",
paste0("b", 1:m, "_x", 1:m),
paste0("b", (m + 1):(2 * m), "_(x", 1:m, "-k", 1:m, ")+"))
# UJI SIMULTAN
Fhit=MSR/MSE
pvalue=pf(Fhit,(np-1),(N-np),lower.tail=FALSE)
cat("\n[ UJI SIMULTAN | SPLINE 1 KNOT ]\n\n")
cat(" | F hitung :", format(Fhit, digits=8), "\n")
cat(" | p-value :", format(pvalue, digits=8), "\n")
if (pvalue<=alpha)
{
cat(" | Keputusan : Tolak Ho\n")
cat(" | Kesimpulan : minimal terdapat 1 variabel bebas yang signifikan\n")
} else
{
cat(" | Keputusan : Gagal Tolak Ho\n")
cat(" | Kesimpulan : semua variabel bebas tidak berpengaruh signifikan\n")
}
# UJI PARSIAL
thit=rep(NA,np)
pval=rep(NA,np)
SE=sqrt(diag(MSE*C))
cat("\n[ UJI PARSIAL | SPLINE 1 KNOT ]\n\n")
for (i in 1:np)
{
thit[i]=B[i,1]/SE[i]
pval[i]=2*(pt(abs(thit[i]),(N-np),lower.tail=FALSE))
ket=if (pval[i]<=alpha) "Signifikan (Tolak Ho)" else "Tidak signifikan (Gagal Tolak Ho)"
cat(sprintf(" > %-12s : t = %9.4f | p = %8.6f | %s\n", rownames(B)[i], thit[i], pval[i], ket))
}
# ANOVA
cat("\n[ ANALYSIS OF VARIANCE ]\n\n")
cat(sprintf(" %-8s %4s %14s %14s %10s\n", "Sumber", "df", "SS", "MS", "Fhit"))
cat(sprintf(" %-8s %4d %14.4f %14.4f %10.4f\n", "Regresi", np-1, SSR, MSR, Fhit))
cat(sprintf(" %-8s %4d %14.4f %14.4f\n", "Error", N-np, SSE, MSE))
cat(sprintf(" %-8s %4d %14.4f\n", "Total", N-1, SST))
cat("\n | s :", format(sqrt(MSE), digits=6), "\n")
cat(" | R-square :", format(Rsq, digits=6), "%\n")
cat(" | p-value (F) :", format(pvalue, digits=8), "\n\n")
write.csv(res, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji Residual Titik Knot 1.CSV")
write.csv(mx, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji MX Titik Knot 1.CSV")
write.csv(yhat, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji yhat Titik Knot 1.CSV")
}
uji(0.1, 0)
##
## [ UJI SIMULTAN | SPLINE 1 KNOT ]
##
## | F hitung : 19.730268
## | p-value : 1.2390004e-12
## | Keputusan : Tolak Ho
## | Kesimpulan : minimal terdapat 1 variabel bebas yang signifikan
##
## [ UJI PARSIAL | SPLINE 1 KNOT ]
##
## > b0 : t = 2.0625 | p = 0.044713 | Signifikan (Tolak Ho)
## > b1_x1 : t = -5.0617 | p = 0.000007 | Signifikan (Tolak Ho)
## > b2_x2 : t = 2.8350 | p = 0.006736 | Signifikan (Tolak Ho)
## > b3_x3 : t = -0.6720 | p = 0.504905 | Tidak signifikan (Gagal Tolak Ho)
## > b4_x4 : t = -1.7269 | p = 0.090745 | Signifikan (Tolak Ho)
## > b5_(x1-k1)+ : t = 0.1162 | p = 0.907988 | Tidak signifikan (Gagal Tolak Ho)
## > b6_(x2-k2)+ : t = -5.3953 | p = 0.000002 | Signifikan (Tolak Ho)
## > b7_(x3-k3)+ : t = 1.8516 | p = 0.070368 | Signifikan (Tolak Ho)
## > b8_(x4-k4)+ : t = 5.8681 | p = 0.000000 | Signifikan (Tolak Ho)
##
## [ ANALYSIS OF VARIANCE ]
##
## Sumber df SS MS Fhit
## Regresi 8 167.6864 20.9608 19.7303
## Error 47 59.4926 1.0624
## Total 55 227.1789
##
## | s : 1.03071
## | R-square : 73.8125 %
## | p-value (F) : 1.2390004e-12
#PEMILIHAN 2 TITIK KNOT
GCV2=function(data)
{
parameter=0
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-parameter-1
dataA=data[,(parameter+2):M]
dataA=as.matrix(dataA)
F=diag(N)
nk=50 #nk=banyaknya alternatif titik knot yang akan dicoba
knot1=matrix(ncol=m,nrow=nk)
for (i in (1:m)) #membuat knot
{
a=seq(min(dataA[,i]),max(dataA[,i]),length.out=nk)
knot1[,i]=t(as.matrix(a))
}
a1=length(knot1[,1])
knot1=as.matrix(knot1[2:(a1-1),])
a2=nk-2
z=(a2*(a2-1)/2)
knot2=cbind(rep(NA,(z+1)))
for (i in (1:m))
{
knot=rbind(rep(NA,2))
for ( j in 1:(a2-1))
{
for (k in (j+1):a2)
{ xx=cbind(knot1[j,i],knot1[k,i])
knot=rbind(knot,xx)
}
}
knot2=cbind(knot2,knot)
}
knot2=knot2[2:(z+1),2:(2*m+1)]
a3=nrow(knot2)
aa=rep(1,N)
data1=matrix(ncol=2*m,nrow=N)
data2=data[,2:M] #data x saja
nk1=nrow(knot2)
GCV=as.matrix(rep(NA,nk1),ncol=1);colnames(GCV)<-"GCV"
MSE=as.matrix(rep(NA,nk1),ncol=1);colnames(MSE)<-"MSE"
SSE=rep(NA,nk1)
SSR=rep(NA,nk1)
Rsq=as.matrix(rep(NA,nk1),ncol=1);colnames(Rsq)<-"Rsq"
knotke=matrix(c(1:nk1),ncol=1);colnames(knotke)<-"knot_ke"
for (i in 1:a3)
{
data1=matrix(ncol=2*m,nrow=N)
for (j in 1:(2*m))
{
b=ceiling(j/2)
for (k in 1:N)
{
if (data[k,(b+parameter+1)]<knot2[i,j]) data1[k,j]=0 else
data1[k,j]=data[k,(b+parameter+1)]-knot2[i,j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
yhat=mx%*%B
res=data[,1]-yhat
SSE[i]=sum((res)^2)
SSR[i]=sum((yhat-mean(data[,1]))^2)
MSE[i]=SSE[i]/(N)
Rsq[i]=(SSR[i]/(SSR[i]+SSE[i]))*100
A=mx%*%C%*%t(mx)
A1=(F-A)
A2=(sum(diag(A1))/N)^2
GCV[i]=MSE[i]/A2
}
dataAll=as.matrix(cbind(GCV,Rsq,knotke,knot2))
dataG=dataAll[order(GCV),-2]
write.csv(dataAll, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Data Titik Knot 2.CSV")
# ---- hasil GCV terkecil ----
cat("\n[ HASIL GCV TERKECIL | SPLINE 2 KNOT ]\n\n")
cat(" | GCV minimum :", format(dataG[1,1], digits=8), "\n")
cat(" | Knot ke- :", dataG[1,2], "\n")
for (v in 1:m) cat(" | Knot X", v, " : ", paste(format(dataG[1,(2+(v-1)*2+1):(2+v*2)], digits=6), collapse=" ; "), "\n", sep="")
cat("\n[ 10 NILAI GCV TERKECIL ]\n\n")
print(dataG[1:10,])
# ---- hitung ulang B pada knot dengan GCV terkecil ----
knotgcv=knot2[dataG[1,2],]
datagcv1=matrix(ncol=2*m,nrow=N)
for (j in 1:(2*m))
{
b=ceiling(j/2)
for (k in 1:N)
{
if (data[k,(b+parameter+1)]<knotgcv[j]) datagcv1[k,j]=0 else
datagcv1[k,j]=data[k,(b+parameter+1)]-knotgcv[j]
}
}
mxgcv=as.matrix(cbind(aa,data2,datagcv1))
C=pinv(t(mxgcv)%*%mxgcv)
B=C%*%(t(mxgcv)%*%data[,1])
# ---- estimasi parameter ----
rownames(B) = c("b0",
paste0("b", 1:m, "_x", 1:m),
paste0("b", (m + 1):(3 * m), "_(x", rep(1:m, each = 2), "-k", rep(1:m, each = 2), ".", rep(1:2, m), ")+"))
cat("\n[ ESTIMASI PARAMETER | TITIK KNOT KE-2 ]\n\n")
print(B)
cat("\n")
return(list(knotgcv=knotgcv,mingcv=dataG[1,1],mxgcv=mxgcv,B=B))
}
GCV2(data)
##
## [ HASIL GCV TERKECIL | SPLINE 2 KNOT ]
##
## | GCV minimum : 1.3160676
## | Knot ke- : 135
## | Knot X1 : 61.1324 ; 76.2867
## | Knot X2 : 11.3820 ; 14.6306
## | Knot X3 : 7.69224 ; 69.18367
## | Knot X4 : 25.0255 ; 75.9227
##
## [ 10 NILAI GCV TERKECIL ]
##
## GCV knot_ke
## [1,] 1.316068 135 61.13245 76.28673 11.38204 14.63061 7.692245 69.18367
## [2,] 1.317894 179 61.49327 76.28673 11.45939 14.63061 9.156327 69.18367
## [3,] 1.321114 178 61.49327 75.92592 11.45939 14.55327 9.156327 67.71959
## [4,] 1.321402 134 61.13245 75.92592 11.38204 14.55327 7.692245 67.71959
## [5,] 1.358738 221 61.85408 75.92592 11.53673 14.55327 10.620408 67.71959
## [6,] 1.359630 222 61.85408 76.28673 11.53673 14.63061 10.620408 69.18367
## [7,] 1.359989 138 61.13245 77.36918 11.38204 14.86265 7.692245 73.57592
## [8,] 1.388799 136 61.13245 76.64755 11.38204 14.70796 7.692245 70.64776
## [9,] 1.393180 180 61.49327 76.64755 11.45939 14.70796 9.156327 70.64776
## [10,] 1.396087 177 61.49327 75.56510 11.45939 14.47592 9.156327 66.25551
##
## [1,] 25.02551 75.92265
## [2,] 26.23735 75.92265
## [3,] 26.23735 74.71082
## [4,] 25.02551 74.71082
## [5,] 27.44918 74.71082
## [6,] 27.44918 75.92265
## [7,] 25.02551 79.55816
## [8,] 25.02551 77.13449
## [9,] 26.23735 77.13449
## [10,] 26.23735 73.49898
##
## [ ESTIMASI PARAMETER | TITIK KNOT KE-2 ]
##
## [,1]
## b0 95.3587175
## b1_x1 -2.9213119
## b2_x2 6.1469387
## b3_x3 0.2059982
## b4_x4 0.7283636
## b5_(x1-k1.1)+ 2.7449916
## b6_(x1-k1.2)+ 0.7954129
## b7_(x2-k2.1)+ -5.3197766
## b8_(x2-k2.2)+ -18.0705567
## b9_(x3-k3.1)+ -0.2144538
## b10_(x3-k3.2)+ 0.2853691
## b11_(x4-k4.1)+ -0.7619877
## b12_(x4-k4.2)+ 0.9034632
## $knotgcv
## [1] 61.132449 76.286735 11.382041 14.630612 7.692245 69.183673 25.025510
## [8] 75.922653
##
## $mingcv
## GCV
## 1.316068
##
## $mxgcv
## aa X1 X2 X3 X4
## [1,] 1 67.88 13.00 14.86 72.04 6.747551 0.0000000 1.6179592 0.00000000
## [2,] 1 71.02 12.89 14.38 51.19 9.887551 0.0000000 1.5079592 0.00000000
## [3,] 1 61.98 13.58 18.56 73.59 0.847551 0.0000000 2.1979592 0.00000000
## [4,] 1 68.96 12.78 29.61 43.00 7.827551 0.0000000 1.3979592 0.00000000
## [5,] 1 67.40 13.31 14.89 74.71 6.267551 0.0000000 1.9279592 0.00000000
## [6,] 1 69.04 12.55 55.70 71.41 7.907551 0.0000000 1.1679592 0.00000000
## [7,] 1 76.22 12.50 10.46 67.09 15.087551 0.0000000 1.1179592 0.00000000
## [8,] 1 62.90 14.13 15.59 80.01 1.767551 0.0000000 2.7479592 0.00000000
## [9,] 1 65.16 14.70 75.04 30.11 4.027551 0.0000000 3.3179592 0.06938776
## [10,] 1 69.24 12.90 31.21 80.02 8.107551 0.0000000 1.5179592 0.00000000
## [11,] 1 74.28 12.60 20.67 67.03 13.147551 0.0000000 1.2179592 0.00000000
## [12,] 1 75.81 12.08 8.67 47.87 14.677551 0.0000000 0.6979592 0.00000000
## [13,] 1 71.78 12.39 10.74 65.98 10.647551 0.0000000 1.0079592 0.00000000
## [14,] 1 64.14 12.33 8.54 25.74 3.007551 0.0000000 0.9479592 0.00000000
## [15,] 1 70.38 11.56 19.95 65.77 9.247551 0.0000000 0.1779592 0.00000000
## [16,] 1 60.75 11.79 28.13 67.17 0.000000 0.0000000 0.4079592 0.00000000
## [17,] 1 75.57 12.02 14.71 36.88 14.437551 0.0000000 0.6379592 0.00000000
## [18,] 1 74.09 12.04 10.28 65.69 12.957551 0.0000000 0.6579592 0.00000000
## [19,] 1 77.53 11.57 6.56 64.76 16.397551 1.2432653 0.1879592 0.00000000
## [20,] 1 73.93 11.15 25.23 25.55 12.797551 0.0000000 0.0000000 0.00000000
## [21,] 1 65.53 11.81 4.21 22.68 4.397551 0.0000000 0.4279592 0.00000000
## [22,] 1 67.71 13.64 28.93 67.95 6.577551 0.0000000 2.2579592 0.00000000
## [23,] 1 60.05 13.64 37.68 79.44 0.000000 0.0000000 2.2579592 0.00000000
## [24,] 1 63.84 12.89 10.14 41.94 2.707551 0.0000000 1.5079592 0.00000000
## [25,] 1 72.03 11.96 10.16 69.38 10.897551 0.0000000 0.5779592 0.00000000
## [26,] 1 64.68 11.92 17.31 68.86 3.547551 0.0000000 0.5379592 0.00000000
## [27,] 1 72.55 12.28 11.73 59.18 11.417551 0.0000000 0.8979592 0.00000000
## [28,] 1 74.61 12.38 5.76 66.22 13.477551 0.0000000 0.9979592 0.00000000
## [29,] 1 70.17 11.86 6.35 70.11 9.037551 0.0000000 0.4779592 0.00000000
## [30,] 1 73.15 12.10 4.65 48.85 12.017551 0.0000000 0.7179592 0.00000000
## [31,] 1 71.15 12.19 4.83 68.84 10.017551 0.0000000 0.8079592 0.00000000
## [32,] 1 70.08 12.88 3.30 65.59 8.947551 0.0000000 1.4979592 0.00000000
## [33,] 1 69.27 12.59 14.48 72.19 8.137551 0.0000000 1.2079592 0.00000000
## [34,] 1 70.16 12.36 15.39 50.71 9.027551 0.0000000 0.9779592 0.00000000
## [35,] 1 76.50 12.37 9.17 68.82 15.367551 0.2132653 0.9879592 0.00000000
## [36,] 1 62.07 13.92 21.93 77.10 0.937551 0.0000000 2.5379592 0.00000000
## [37,] 1 66.82 14.80 6.11 79.10 5.687551 0.0000000 3.4179592 0.16938776
## [38,] 1 66.44 13.29 11.21 71.94 5.307551 0.0000000 1.9079592 0.00000000
## [39,] 1 67.38 12.99 18.72 41.10 6.247551 0.0000000 1.6079592 0.00000000
## [40,] 1 67.81 12.20 5.75 66.97 6.677551 0.0000000 0.8179592 0.00000000
## [41,] 1 66.91 12.63 26.30 45.79 5.777551 0.0000000 1.2479592 0.00000000
## [42,] 1 65.65 13.73 38.11 75.83 4.517551 0.0000000 2.3479592 0.00000000
## [43,] 1 73.01 12.71 33.79 72.87 11.877551 0.0000000 1.3279592 0.00000000
## [44,] 1 67.41 12.69 56.63 71.31 6.277551 0.0000000 1.3079592 0.00000000
## [45,] 1 70.04 12.90 45.81 69.48 8.907551 0.0000000 1.5179592 0.00000000
## [46,] 1 64.68 12.54 45.53 70.22 3.547551 0.0000000 1.1579592 0.00000000
## [47,] 1 71.54 12.48 51.50 30.59 10.407551 0.0000000 1.0979592 0.00000000
## [48,] 1 65.50 12.11 66.27 68.03 4.367551 0.0000000 0.7279592 0.00000000
## [49,] 1 70.50 12.47 67.99 70.51 9.367551 0.0000000 1.0879592 0.00000000
## [50,] 1 65.04 11.98 40.96 37.58 3.907551 0.0000000 0.5979592 0.00000000
## [51,] 1 64.55 12.51 48.22 68.68 3.417551 0.0000000 1.1279592 0.00000000
## [52,] 1 72.77 12.40 43.84 68.45 11.637551 0.0000000 1.0179592 0.00000000
## [53,] 1 71.22 11.77 51.25 70.81 10.087551 0.0000000 0.3879592 0.00000000
## [54,] 1 77.73 12.82 54.56 21.39 16.597551 1.4432653 1.4379592 0.00000000
## [55,] 1 63.93 11.74 62.92 67.98 2.797551 0.0000000 0.3579592 0.00000000
## [56,] 1 62.71 14.94 61.01 80.77 1.577551 0.0000000 3.5579592 0.30938776
##
## [1,] 7.1677551 0.000000 47.0144898 0.000000
## [2,] 6.6877551 0.000000 26.1644898 0.000000
## [3,] 10.8677551 0.000000 48.5644898 0.000000
## [4,] 21.9177551 0.000000 17.9744898 0.000000
## [5,] 7.1977551 0.000000 49.6844898 0.000000
## [6,] 48.0077551 0.000000 46.3844898 0.000000
## [7,] 2.7677551 0.000000 42.0644898 0.000000
## [8,] 7.8977551 0.000000 54.9844898 4.087347
## [9,] 67.3477551 5.856327 5.0844898 0.000000
## [10,] 23.5177551 0.000000 54.9944898 4.097347
## [11,] 12.9777551 0.000000 42.0044898 0.000000
## [12,] 0.9777551 0.000000 22.8444898 0.000000
## [13,] 3.0477551 0.000000 40.9544898 0.000000
## [14,] 0.8477551 0.000000 0.7144898 0.000000
## [15,] 12.2577551 0.000000 40.7444898 0.000000
## [16,] 20.4377551 0.000000 42.1444898 0.000000
## [17,] 7.0177551 0.000000 11.8544898 0.000000
## [18,] 2.5877551 0.000000 40.6644898 0.000000
## [19,] 0.0000000 0.000000 39.7344898 0.000000
## [20,] 17.5377551 0.000000 0.5244898 0.000000
## [21,] 0.0000000 0.000000 0.0000000 0.000000
## [22,] 21.2377551 0.000000 42.9244898 0.000000
## [23,] 29.9877551 0.000000 54.4144898 3.517347
## [24,] 2.4477551 0.000000 16.9144898 0.000000
## [25,] 2.4677551 0.000000 44.3544898 0.000000
## [26,] 9.6177551 0.000000 43.8344898 0.000000
## [27,] 4.0377551 0.000000 34.1544898 0.000000
## [28,] 0.0000000 0.000000 41.1944898 0.000000
## [29,] 0.0000000 0.000000 45.0844898 0.000000
## [30,] 0.0000000 0.000000 23.8244898 0.000000
## [31,] 0.0000000 0.000000 43.8144898 0.000000
## [32,] 0.0000000 0.000000 40.5644898 0.000000
## [33,] 6.7877551 0.000000 47.1644898 0.000000
## [34,] 7.6977551 0.000000 25.6844898 0.000000
## [35,] 1.4777551 0.000000 43.7944898 0.000000
## [36,] 14.2377551 0.000000 52.0744898 1.177347
## [37,] 0.0000000 0.000000 54.0744898 3.177347
## [38,] 3.5177551 0.000000 46.9144898 0.000000
## [39,] 11.0277551 0.000000 16.0744898 0.000000
## [40,] 0.0000000 0.000000 41.9444898 0.000000
## [41,] 18.6077551 0.000000 20.7644898 0.000000
## [42,] 30.4177551 0.000000 50.8044898 0.000000
## [43,] 26.0977551 0.000000 47.8444898 0.000000
## [44,] 48.9377551 0.000000 46.2844898 0.000000
## [45,] 38.1177551 0.000000 44.4544898 0.000000
## [46,] 37.8377551 0.000000 45.1944898 0.000000
## [47,] 43.8077551 0.000000 5.5644898 0.000000
## [48,] 58.5777551 0.000000 43.0044898 0.000000
## [49,] 60.2977551 0.000000 45.4844898 0.000000
## [50,] 33.2677551 0.000000 12.5544898 0.000000
## [51,] 40.5277551 0.000000 43.6544898 0.000000
## [52,] 36.1477551 0.000000 43.4244898 0.000000
## [53,] 43.5577551 0.000000 45.7844898 0.000000
## [54,] 46.8677551 0.000000 0.0000000 0.000000
## [55,] 55.2277551 0.000000 42.9544898 0.000000
## [56,] 53.3177551 0.000000 55.7444898 4.847347
##
## $B
## [,1]
## b0 95.3587175
## b1_x1 -2.9213119
## b2_x2 6.1469387
## b3_x3 0.2059982
## b4_x4 0.7283636
## b5_(x1-k1.1)+ 2.7449916
## b6_(x1-k1.2)+ 0.7954129
## b7_(x2-k2.1)+ -5.3197766
## b8_(x2-k2.2)+ -18.0705567
## b9_(x3-k3.1)+ -0.2144538
## b10_(x3-k3.2)+ 0.2853691
## b11_(x4-k4.1)+ -0.7619877
## b12_(x4-k4.2)+ 0.9034632
#UJI SIGNIFIKANSI 2 TITIK KNOT
uji=function(alpha,parameter)
{
# ---- membaca titik knot optimal (GCV terkecil) ----
knot2=read.csv("C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Data Titik Knot 2.CSV", header=TRUE)
knot2=as.matrix(knot2)
knot2=knot2[,-1] #buang kolom index baris
knot2=knot2[order(knot2[,1]),] #urutkan berdasarkan GCV terkecil
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-parameter-1
dataA=data[,(parameter+2):M]
dataA=as.matrix(dataA)
knotopt=as.numeric(knot2[1,4:(3+2*m)]) #knot X1-X4 pada baris GCV terkecil (2 knot per variabel)
aa=rep(1,N)
data1=matrix(ncol=2*m,nrow=N)
data2=data[,2:M] #data x saja
for (j in 1:(2*m))
{
b=ceiling(j/2)
for (k in 1:N)
{
if (data[k,(b+parameter+1)]<knotopt[j]) data1[k,j]=0 else
data1[k,j]=data[k,(b+parameter+1)]-knotopt[j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
np=nrow(B) #banyaknya parameter
yhat=mx%*%B
res=data[,1]-yhat
SSE=sum((res)^2)
SSR=sum((yhat-mean(data[,1]))^2)
SST=sum((data[,1]-mean(data[,1]))^2)
MSE=SSE/(N)
MSR=SSR/(np-1)
Rsq=(SSR/(SSR+SSE))*100
rownames(B) = c("b0",
paste0("b", 1:m, "_x", 1:m),
paste0("b", (m + 1):(3 * m), "_(x", rep(1:m, each = 2), "-k", rep(1:m, each = 2), ".", rep(1:2, m), ")+"))
# ---- uji simultan ----
Fhit=MSR/MSE
pvalue=pf(Fhit,(np-1),(N-np),lower.tail=FALSE)
cat("\n[ UJI SIMULTAN | SPLINE 2 KNOT ]\n\n")
cat(" | F hitung :", format(Fhit, digits=8), "\n")
cat(" | p-value :", format(pvalue, digits=8), "\n")
if (pvalue<=alpha)
{
cat(" | Keputusan : Tolak Ho\n")
cat(" | Kesimpulan : minimal terdapat 1 variabel bebas yang signifikan\n")
} else
{
cat(" | Keputusan : Gagal Tolak Ho\n")
cat(" | Kesimpulan : semua variabel bebas tidak berpengaruh signifikan\n")
}
# ---- uji parsial ----
thit=rep(NA,np)
pval=rep(NA,np)
SE=sqrt(diag(MSE*C))
cat("\n[ UJI PARSIAL | SPLINE 2 KNOT ]\n\n")
for (i in 1:np)
{
thit[i]=B[i,1]/SE[i]
pval[i]=2*(pt(abs(thit[i]),(N-np),lower.tail=FALSE))
ket=if (pval[i]<=alpha) "Signifikan (Tolak Ho)" else "Tidak signifikan (Gagal Tolak Ho)"
cat(sprintf(" > %-14s : t = %9.4f | p = %8.6f | %s\n", rownames(B)[i], thit[i], pval[i], ket))
}
# ---- anova ----
cat("\n[ ANALYSIS OF VARIANCE ]\n\n")
cat(sprintf(" %-8s %4s %14s %14s %10s\n", "Sumber", "df", "SS", "MS", "Fhit"))
cat(sprintf(" %-8s %4d %14.4f %14.4f %10.4f\n", "Regresi", np-1, SSR, MSR, Fhit))
cat(sprintf(" %-8s %4d %14.4f %14.4f\n", "Error", N-np, SSE, MSE))
cat(sprintf(" %-8s %4d %14.4f\n", "Total", N-1, SST))
cat("\n | s :", format(sqrt(MSE), digits=6), "\n")
cat(" | R-square :", format(Rsq, digits=6), "%\n")
cat(" | p-value (F) :", format(pvalue, digits=8), "\n\n")
write.csv(res, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji Residual Titik Knot 2.CSV")
write.csv(mx, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji MX Titik Knot 2.CSV")
write.csv(yhat, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji yhat Titik Knot 2.CSV")
}
uji(0.1, 0)
##
## [ UJI SIMULTAN | SPLINE 2 KNOT ]
##
## | F hitung : 19.73097
## | p-value : 1.0756193e-13
## | Keputusan : Tolak Ho
## | Kesimpulan : minimal terdapat 1 variabel bebas yang signifikan
##
## [ UJI PARSIAL | SPLINE 2 KNOT ]
##
## > b0 : t = 1.2829 | p = 0.206414 | Tidak signifikan (Gagal Tolak Ho)
## > b1_x1 : t = -3.1999 | p = 0.002583 | Signifikan (Tolak Ho)
## > b2_x2 : t = 1.4435 | p = 0.156128 | Tidak signifikan (Gagal Tolak Ho)
## > b3_x3 : t = 1.4449 | p = 0.155735 | Tidak signifikan (Gagal Tolak Ho)
## > b4_x4 : t = 2.2723 | p = 0.028125 | Signifikan (Tolak Ho)
## > b5_(x1-k1.1)+ : t = 2.9751 | p = 0.004790 | Signifikan (Tolak Ho)
## > b6_(x1-k1.2)+ : t = 1.1858 | p = 0.242220 | Tidak signifikan (Gagal Tolak Ho)
## > b7_(x2-k2.1)+ : t = -1.2366 | p = 0.222963 | Tidak signifikan (Gagal Tolak Ho)
## > b8_(x2-k2.2)+ : t = -4.8730 | p = 0.000015 | Signifikan (Tolak Ho)
## > b9_(x3-k3.1)+ : t = -1.4662 | p = 0.149862 | Tidak signifikan (Gagal Tolak Ho)
## > b10_(x3-k3.2)+ : t = 1.4127 | p = 0.164956 | Tidak signifikan (Gagal Tolak Ho)
## > b11_(x4-k4.1)+ : t = -2.3388 | p = 0.024060 | Signifikan (Tolak Ho)
## > b12_(x4-k4.2)+ : t = 5.3276 | p = 0.000003 | Signifikan (Tolak Ho)
##
## [ ANALYSIS OF VARIANCE ]
##
## Sumber df SS MS Fhit
## Regresi 12 183.7252 15.3104 19.7310
## Error 43 43.4537 0.7760
## Total 55 227.1789
##
## | s : 0.880886
## | R-square : 80.8725 %
## | p-value (F) : 1.0756193e-13
#PEMILIHAN 3 TITIK KNOT
GCV3=function(data)
{
parameter=0
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-parameter-1
dataA=data[,(parameter+2):M]
dataA=as.matrix(dataA)
F=diag(N)
nk=50 #nk=banyaknya alternatif titik knot yang akan dicoba
knot1=matrix(ncol=m,nrow=nk)
for (i in (1:m)) #membuat knot
{
a=seq(min(dataA[,i]),max(dataA[,i]),length.out=nk)
knot1[,i]=t(as.matrix(a))
}
a1=length(knot1[,1])
knot1=as.matrix(knot1[2:(a1-1),])
a2=nk-2
z=(a2*(a2-1)*(a2-2)/6)
knot2=cbind(rep(NA,(z+1)))
for (i in (1:m))
{
knot=rbind(rep(NA,3))
for ( j in 1:(a2-2))
{
for (k in (j+1):(a2-1))
{
for (g in (k+1):a2)
{
xx=cbind(knot1[j,i],knot1[k,i],knot1[g,i])
knot=rbind(knot,xx)
}
}
}
knot2=cbind(knot2,knot)
}
knot2=knot2[2:(z+1),2:(3*m+1)]
a3=nrow(knot2)
aa=rep(1,N)
data1=matrix(ncol=3*m,nrow=N)
data2=data[,2:M] #data x saja
nk1=nrow(knot2)
GCV=as.matrix(rep(NA,nk1),ncol=1);colnames(GCV)<-"GCV"
MSE=as.matrix(rep(NA,nk1),ncol=1);colnames(MSE)<-"MSE"
SSE=rep(NA,nk1)
SSR=rep(NA,nk1)
Rsq=as.matrix(rep(NA,nk1),ncol=1);colnames(Rsq)<-"Rsq"
knotke=matrix(c(1:nk1),ncol=1);colnames(knotke)<-"knot_ke"
for (i in 1:a3)
{
data1=matrix(ncol=3*m,nrow=N)
for (j in 1:(3*m))
{
b=ceiling(j/3)
for (k in 1:N)
{
if (data[k,(b+parameter+1)]<knot2[i,j]) data1[k,j]=0 else
data1[k,j]=data[k,(b+parameter+1)]-knot2[i,j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
yhat=mx%*%B
res=data[,1]-yhat
SSE[i]=sum((res)^2)
SSR[i]=sum((yhat-mean(data[,1]))^2)
MSE[i]=SSE[i]/(N)
Rsq[i]=(SSR[i]/(SSR[i]+SSE[i]))*100
A=mx%*%C%*%t(mx)
A1=(F-A)
A2=(sum(diag(A1))/N)^2
GCV[i]=MSE[i]/A2
}
dataAll=as.matrix(cbind(GCV,Rsq,knotke,knot2))
dataG=dataAll[order(GCV),-2]
write.csv(dataAll, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Data Titik Knot 3.CSV")
# ---- hasil GCV terkecil ----
cat("\n[ HASIL GCV TERKECIL | SPLINE 3 KNOT ]\n\n")
cat(" | GCV minimum :", format(dataG[1,1], digits=8), "\n")
cat(" | Knot ke- :", dataG[1,2], "\n")
for (v in 1:m) cat(" | Knot X", v, " : ", paste(format(dataG[1,(2+(v-1)*3+1):(2+v*3)], digits=6), collapse=" ; "), "\n", sep="")
cat("\n[ 10 NILAI GCV TERKECIL ]\n\n")
print(dataG[1:10,])
# ---- hitung ulang B pada knot dengan GCV terkecil ----
knotgcv=knot2[dataG[1,2],]
datagcv1=matrix(ncol=3*m,nrow=N)
for (j in 1:(3*m))
{
b=ceiling(j/3)
for (k in 1:N)
{
if (data[k,(b+parameter+1)]<knotgcv[j]) datagcv1[k,j]=0 else
datagcv1[k,j]=data[k,(b+parameter+1)]-knotgcv[j]
}
}
mxgcv=as.matrix(cbind(aa,data2,datagcv1))
C=pinv(t(mxgcv)%*%mxgcv)
B=C%*%(t(mxgcv)%*%data[,1])
# ---- estimasi parameter ----
rownames(B) = c("b0",
paste0("b", 1:m, "_x", 1:m),
paste0("b", (m + 1):(4 * m), "_(x", rep(1:m, each = 3), "-k", rep(1:m, each = 3), ".", rep(1:3, m), ")+"))
cat("\n[ ESTIMASI PARAMETER | TITIK KNOT KE-3 ]\n\n")
print(B)
cat("\n")
return(list(knotgcv=knotgcv,mingcv=dataG[1,1],mxgcv=mxgcv,B=B))
}
GCV3(data)
##
## [ HASIL GCV TERKECIL | SPLINE 3 KNOT ]
##
## | GCV minimum : 1.4442458
## | Knot ke- : 2200
## | Knot X1 : 61.1324 ; 61.8541 ; 76.2867
## | Knot X2 : 11.3820 ; 11.5367 ; 14.6306
## | Knot X3 : 7.69224 ; 10.62041 ; 69.18367
## | Knot X4 : 25.0255 ; 27.4492 ; 75.9227
##
## [ 10 NILAI GCV TERKECIL ]
##
## GCV knot_ke
## [1,] 1.444246 2200 61.13245 61.85408 76.28673 11.38204 11.53673 14.63061
## [2,] 1.445793 3146 61.49327 61.85408 76.28673 11.45939 11.53673 14.63061
## [3,] 1.447104 2157 61.13245 61.49327 76.28673 11.38204 11.45939 14.63061
## [4,] 1.452451 3106 61.13245 77.00837 77.36918 11.38204 14.78531 14.86265
## [5,] 1.453903 2199 61.13245 61.85408 75.92592 11.38204 11.53673 14.55327
## [6,] 1.454858 3145 61.49327 61.85408 75.92592 11.45939 11.53673 14.55327
## [7,] 1.458180 2156 61.13245 61.49327 75.92592 11.38204 11.45939 14.55327
## [8,] 1.458931 2242 61.13245 62.21490 76.28673 11.38204 11.61408 14.63061
## [9,] 1.464584 3037 61.13245 73.03939 76.28673 11.38204 13.93449 14.63061
## [10,] 1.465580 3101 61.13245 76.28673 76.64755 11.38204 14.63061 14.70796
##
## [1,] 7.692245 10.620408 69.18367 25.02551 27.44918 75.92265
## [2,] 9.156327 10.620408 69.18367 26.23735 27.44918 75.92265
## [3,] 7.692245 9.156327 69.18367 25.02551 26.23735 75.92265
## [4,] 7.692245 72.111837 73.57592 25.02551 78.34633 79.55816
## [5,] 7.692245 10.620408 67.71959 25.02551 27.44918 74.71082
## [6,] 9.156327 10.620408 67.71959 26.23735 27.44918 74.71082
## [7,] 7.692245 9.156327 67.71959 25.02551 26.23735 74.71082
## [8,] 7.692245 12.084490 69.18367 25.02551 28.66102 75.92265
## [9,] 7.692245 56.006939 69.18367 25.02551 65.01612 75.92265
## [10,] 7.692245 69.183673 70.64776 25.02551 75.92265 77.13449
##
## [ ESTIMASI PARAMETER | TITIK KNOT KE-3 ]
##
## [,1]
## b0 -4.87954772
## b1_x1 -0.57070096
## b2_x2 1.29861827
## b3_x3 0.20162854
## b4_x4 1.23897094
## b5_(x1-k1.1)+ -2.60712939
## b6_(x1-k1.2)+ 3.03208076
## b7_(x1-k1.3)+ 0.76491110
## b8_(x2-k2.1)+ 13.80910095
## b9_(x2-k2.2)+ -14.12188194
## b10_(x2-k2.3)+ -19.59971920
## b11_(x3-k3.1)+ -0.22960609
## b12_(x3-k3.2)+ 0.02361872
## b13_(x3-k3.3)+ 0.25980650
## b14_(x4-k4.1)+ -1.94377923
## b15_(x4-k4.2)+ 0.67438516
## b16_(x4-k4.3)+ 0.92445503
## $knotgcv
## [1] 61.132449 61.854082 76.286735 11.382041 11.536735 14.630612 7.692245
## [8] 10.620408 69.183673 25.025510 27.449184 75.922653
##
## $mingcv
## GCV
## 1.444246
##
## $mxgcv
## aa X1 X2 X3 X4
## [1,] 1 67.88 13.00 14.86 72.04 6.747551 6.0259184 0.0000000 1.6179592
## [2,] 1 71.02 12.89 14.38 51.19 9.887551 9.1659184 0.0000000 1.5079592
## [3,] 1 61.98 13.58 18.56 73.59 0.847551 0.1259184 0.0000000 2.1979592
## [4,] 1 68.96 12.78 29.61 43.00 7.827551 7.1059184 0.0000000 1.3979592
## [5,] 1 67.40 13.31 14.89 74.71 6.267551 5.5459184 0.0000000 1.9279592
## [6,] 1 69.04 12.55 55.70 71.41 7.907551 7.1859184 0.0000000 1.1679592
## [7,] 1 76.22 12.50 10.46 67.09 15.087551 14.3659184 0.0000000 1.1179592
## [8,] 1 62.90 14.13 15.59 80.01 1.767551 1.0459184 0.0000000 2.7479592
## [9,] 1 65.16 14.70 75.04 30.11 4.027551 3.3059184 0.0000000 3.3179592
## [10,] 1 69.24 12.90 31.21 80.02 8.107551 7.3859184 0.0000000 1.5179592
## [11,] 1 74.28 12.60 20.67 67.03 13.147551 12.4259184 0.0000000 1.2179592
## [12,] 1 75.81 12.08 8.67 47.87 14.677551 13.9559184 0.0000000 0.6979592
## [13,] 1 71.78 12.39 10.74 65.98 10.647551 9.9259184 0.0000000 1.0079592
## [14,] 1 64.14 12.33 8.54 25.74 3.007551 2.2859184 0.0000000 0.9479592
## [15,] 1 70.38 11.56 19.95 65.77 9.247551 8.5259184 0.0000000 0.1779592
## [16,] 1 60.75 11.79 28.13 67.17 0.000000 0.0000000 0.0000000 0.4079592
## [17,] 1 75.57 12.02 14.71 36.88 14.437551 13.7159184 0.0000000 0.6379592
## [18,] 1 74.09 12.04 10.28 65.69 12.957551 12.2359184 0.0000000 0.6579592
## [19,] 1 77.53 11.57 6.56 64.76 16.397551 15.6759184 1.2432653 0.1879592
## [20,] 1 73.93 11.15 25.23 25.55 12.797551 12.0759184 0.0000000 0.0000000
## [21,] 1 65.53 11.81 4.21 22.68 4.397551 3.6759184 0.0000000 0.4279592
## [22,] 1 67.71 13.64 28.93 67.95 6.577551 5.8559184 0.0000000 2.2579592
## [23,] 1 60.05 13.64 37.68 79.44 0.000000 0.0000000 0.0000000 2.2579592
## [24,] 1 63.84 12.89 10.14 41.94 2.707551 1.9859184 0.0000000 1.5079592
## [25,] 1 72.03 11.96 10.16 69.38 10.897551 10.1759184 0.0000000 0.5779592
## [26,] 1 64.68 11.92 17.31 68.86 3.547551 2.8259184 0.0000000 0.5379592
## [27,] 1 72.55 12.28 11.73 59.18 11.417551 10.6959184 0.0000000 0.8979592
## [28,] 1 74.61 12.38 5.76 66.22 13.477551 12.7559184 0.0000000 0.9979592
## [29,] 1 70.17 11.86 6.35 70.11 9.037551 8.3159184 0.0000000 0.4779592
## [30,] 1 73.15 12.10 4.65 48.85 12.017551 11.2959184 0.0000000 0.7179592
## [31,] 1 71.15 12.19 4.83 68.84 10.017551 9.2959184 0.0000000 0.8079592
## [32,] 1 70.08 12.88 3.30 65.59 8.947551 8.2259184 0.0000000 1.4979592
## [33,] 1 69.27 12.59 14.48 72.19 8.137551 7.4159184 0.0000000 1.2079592
## [34,] 1 70.16 12.36 15.39 50.71 9.027551 8.3059184 0.0000000 0.9779592
## [35,] 1 76.50 12.37 9.17 68.82 15.367551 14.6459184 0.2132653 0.9879592
## [36,] 1 62.07 13.92 21.93 77.10 0.937551 0.2159184 0.0000000 2.5379592
## [37,] 1 66.82 14.80 6.11 79.10 5.687551 4.9659184 0.0000000 3.4179592
## [38,] 1 66.44 13.29 11.21 71.94 5.307551 4.5859184 0.0000000 1.9079592
## [39,] 1 67.38 12.99 18.72 41.10 6.247551 5.5259184 0.0000000 1.6079592
## [40,] 1 67.81 12.20 5.75 66.97 6.677551 5.9559184 0.0000000 0.8179592
## [41,] 1 66.91 12.63 26.30 45.79 5.777551 5.0559184 0.0000000 1.2479592
## [42,] 1 65.65 13.73 38.11 75.83 4.517551 3.7959184 0.0000000 2.3479592
## [43,] 1 73.01 12.71 33.79 72.87 11.877551 11.1559184 0.0000000 1.3279592
## [44,] 1 67.41 12.69 56.63 71.31 6.277551 5.5559184 0.0000000 1.3079592
## [45,] 1 70.04 12.90 45.81 69.48 8.907551 8.1859184 0.0000000 1.5179592
## [46,] 1 64.68 12.54 45.53 70.22 3.547551 2.8259184 0.0000000 1.1579592
## [47,] 1 71.54 12.48 51.50 30.59 10.407551 9.6859184 0.0000000 1.0979592
## [48,] 1 65.50 12.11 66.27 68.03 4.367551 3.6459184 0.0000000 0.7279592
## [49,] 1 70.50 12.47 67.99 70.51 9.367551 8.6459184 0.0000000 1.0879592
## [50,] 1 65.04 11.98 40.96 37.58 3.907551 3.1859184 0.0000000 0.5979592
## [51,] 1 64.55 12.51 48.22 68.68 3.417551 2.6959184 0.0000000 1.1279592
## [52,] 1 72.77 12.40 43.84 68.45 11.637551 10.9159184 0.0000000 1.0179592
## [53,] 1 71.22 11.77 51.25 70.81 10.087551 9.3659184 0.0000000 0.3879592
## [54,] 1 77.73 12.82 54.56 21.39 16.597551 15.8759184 1.4432653 1.4379592
## [55,] 1 63.93 11.74 62.92 67.98 2.797551 2.0759184 0.0000000 0.3579592
## [56,] 1 62.71 14.94 61.01 80.77 1.577551 0.8559184 0.0000000 3.5579592
##
## [1,] 1.46326531 0.00000000 7.1677551 4.2395918 0.000000 47.0144898 44.590816
## [2,] 1.35326531 0.00000000 6.6877551 3.7595918 0.000000 26.1644898 23.740816
## [3,] 2.04326531 0.00000000 10.8677551 7.9395918 0.000000 48.5644898 46.140816
## [4,] 1.24326531 0.00000000 21.9177551 18.9895918 0.000000 17.9744898 15.550816
## [5,] 1.77326531 0.00000000 7.1977551 4.2695918 0.000000 49.6844898 47.260816
## [6,] 1.01326531 0.00000000 48.0077551 45.0795918 0.000000 46.3844898 43.960816
## [7,] 0.96326531 0.00000000 2.7677551 0.0000000 0.000000 42.0644898 39.640816
## [8,] 2.59326531 0.00000000 7.8977551 4.9695918 0.000000 54.9844898 52.560816
## [9,] 3.16326531 0.06938776 67.3477551 64.4195918 5.856327 5.0844898 2.660816
## [10,] 1.36326531 0.00000000 23.5177551 20.5895918 0.000000 54.9944898 52.570816
## [11,] 1.06326531 0.00000000 12.9777551 10.0495918 0.000000 42.0044898 39.580816
## [12,] 0.54326531 0.00000000 0.9777551 0.0000000 0.000000 22.8444898 20.420816
## [13,] 0.85326531 0.00000000 3.0477551 0.1195918 0.000000 40.9544898 38.530816
## [14,] 0.79326531 0.00000000 0.8477551 0.0000000 0.000000 0.7144898 0.000000
## [15,] 0.02326531 0.00000000 12.2577551 9.3295918 0.000000 40.7444898 38.320816
## [16,] 0.25326531 0.00000000 20.4377551 17.5095918 0.000000 42.1444898 39.720816
## [17,] 0.48326531 0.00000000 7.0177551 4.0895918 0.000000 11.8544898 9.430816
## [18,] 0.50326531 0.00000000 2.5877551 0.0000000 0.000000 40.6644898 38.240816
## [19,] 0.03326531 0.00000000 0.0000000 0.0000000 0.000000 39.7344898 37.310816
## [20,] 0.00000000 0.00000000 17.5377551 14.6095918 0.000000 0.5244898 0.000000
## [21,] 0.27326531 0.00000000 0.0000000 0.0000000 0.000000 0.0000000 0.000000
## [22,] 2.10326531 0.00000000 21.2377551 18.3095918 0.000000 42.9244898 40.500816
## [23,] 2.10326531 0.00000000 29.9877551 27.0595918 0.000000 54.4144898 51.990816
## [24,] 1.35326531 0.00000000 2.4477551 0.0000000 0.000000 16.9144898 14.490816
## [25,] 0.42326531 0.00000000 2.4677551 0.0000000 0.000000 44.3544898 41.930816
## [26,] 0.38326531 0.00000000 9.6177551 6.6895918 0.000000 43.8344898 41.410816
## [27,] 0.74326531 0.00000000 4.0377551 1.1095918 0.000000 34.1544898 31.730816
## [28,] 0.84326531 0.00000000 0.0000000 0.0000000 0.000000 41.1944898 38.770816
## [29,] 0.32326531 0.00000000 0.0000000 0.0000000 0.000000 45.0844898 42.660816
## [30,] 0.56326531 0.00000000 0.0000000 0.0000000 0.000000 23.8244898 21.400816
## [31,] 0.65326531 0.00000000 0.0000000 0.0000000 0.000000 43.8144898 41.390816
## [32,] 1.34326531 0.00000000 0.0000000 0.0000000 0.000000 40.5644898 38.140816
## [33,] 1.05326531 0.00000000 6.7877551 3.8595918 0.000000 47.1644898 44.740816
## [34,] 0.82326531 0.00000000 7.6977551 4.7695918 0.000000 25.6844898 23.260816
## [35,] 0.83326531 0.00000000 1.4777551 0.0000000 0.000000 43.7944898 41.370816
## [36,] 2.38326531 0.00000000 14.2377551 11.3095918 0.000000 52.0744898 49.650816
## [37,] 3.26326531 0.16938776 0.0000000 0.0000000 0.000000 54.0744898 51.650816
## [38,] 1.75326531 0.00000000 3.5177551 0.5895918 0.000000 46.9144898 44.490816
## [39,] 1.45326531 0.00000000 11.0277551 8.0995918 0.000000 16.0744898 13.650816
## [40,] 0.66326531 0.00000000 0.0000000 0.0000000 0.000000 41.9444898 39.520816
## [41,] 1.09326531 0.00000000 18.6077551 15.6795918 0.000000 20.7644898 18.340816
## [42,] 2.19326531 0.00000000 30.4177551 27.4895918 0.000000 50.8044898 48.380816
## [43,] 1.17326531 0.00000000 26.0977551 23.1695918 0.000000 47.8444898 45.420816
## [44,] 1.15326531 0.00000000 48.9377551 46.0095918 0.000000 46.2844898 43.860816
## [45,] 1.36326531 0.00000000 38.1177551 35.1895918 0.000000 44.4544898 42.030816
## [46,] 1.00326531 0.00000000 37.8377551 34.9095918 0.000000 45.1944898 42.770816
## [47,] 0.94326531 0.00000000 43.8077551 40.8795918 0.000000 5.5644898 3.140816
## [48,] 0.57326531 0.00000000 58.5777551 55.6495918 0.000000 43.0044898 40.580816
## [49,] 0.93326531 0.00000000 60.2977551 57.3695918 0.000000 45.4844898 43.060816
## [50,] 0.44326531 0.00000000 33.2677551 30.3395918 0.000000 12.5544898 10.130816
## [51,] 0.97326531 0.00000000 40.5277551 37.5995918 0.000000 43.6544898 41.230816
## [52,] 0.86326531 0.00000000 36.1477551 33.2195918 0.000000 43.4244898 41.000816
## [53,] 0.23326531 0.00000000 43.5577551 40.6295918 0.000000 45.7844898 43.360816
## [54,] 1.28326531 0.00000000 46.8677551 43.9395918 0.000000 0.0000000 0.000000
## [55,] 0.20326531 0.00000000 55.2277551 52.2995918 0.000000 42.9544898 40.530816
## [56,] 3.40326531 0.30938776 53.3177551 50.3895918 0.000000 55.7444898 53.320816
##
## [1,] 0.000000
## [2,] 0.000000
## [3,] 0.000000
## [4,] 0.000000
## [5,] 0.000000
## [6,] 0.000000
## [7,] 0.000000
## [8,] 4.087347
## [9,] 0.000000
## [10,] 4.097347
## [11,] 0.000000
## [12,] 0.000000
## [13,] 0.000000
## [14,] 0.000000
## [15,] 0.000000
## [16,] 0.000000
## [17,] 0.000000
## [18,] 0.000000
## [19,] 0.000000
## [20,] 0.000000
## [21,] 0.000000
## [22,] 0.000000
## [23,] 3.517347
## [24,] 0.000000
## [25,] 0.000000
## [26,] 0.000000
## [27,] 0.000000
## [28,] 0.000000
## [29,] 0.000000
## [30,] 0.000000
## [31,] 0.000000
## [32,] 0.000000
## [33,] 0.000000
## [34,] 0.000000
## [35,] 0.000000
## [36,] 1.177347
## [37,] 3.177347
## [38,] 0.000000
## [39,] 0.000000
## [40,] 0.000000
## [41,] 0.000000
## [42,] 0.000000
## [43,] 0.000000
## [44,] 0.000000
## [45,] 0.000000
## [46,] 0.000000
## [47,] 0.000000
## [48,] 0.000000
## [49,] 0.000000
## [50,] 0.000000
## [51,] 0.000000
## [52,] 0.000000
## [53,] 0.000000
## [54,] 0.000000
## [55,] 0.000000
## [56,] 4.847347
##
## $B
## [,1]
## b0 -4.87954772
## b1_x1 -0.57070096
## b2_x2 1.29861827
## b3_x3 0.20162854
## b4_x4 1.23897094
## b5_(x1-k1.1)+ -2.60712939
## b6_(x1-k1.2)+ 3.03208076
## b7_(x1-k1.3)+ 0.76491110
## b8_(x2-k2.1)+ 13.80910095
## b9_(x2-k2.2)+ -14.12188194
## b10_(x2-k2.3)+ -19.59971920
## b11_(x3-k3.1)+ -0.22960609
## b12_(x3-k3.2)+ 0.02361872
## b13_(x3-k3.3)+ 0.25980650
## b14_(x4-k4.1)+ -1.94377923
## b15_(x4-k4.2)+ 0.67438516
## b16_(x4-k4.3)+ 0.92445503
#UJI SIGNIFIKANSI 3 TITIK KNOT
uji=function(alpha,parameter)
{
# membaca titik knot optimal (GCV terkecil)
knot2=read.csv("C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Data Titik Knot 3.CSV", header=TRUE)
knot2=as.matrix(knot2)
knot2=knot2[,-1] #buang kolom index baris
knot2=knot2[order(knot2[,1]),] #urutkan berdasarkan GCV terkecil
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-parameter-1
dataA=data[,(parameter+2):M]
dataA=as.matrix(dataA)
knotopt=as.numeric(knot2[1,4:(3+3*m)]) #knot X1-X4 pada baris GCV terkecil (3 knot per variabel)
aa=rep(1,N)
data1=matrix(ncol=3*m,nrow=N)
data2=data[,2:M] #data x saja
for (j in 1:(3*m))
{
b=ceiling(j/3)
for (k in 1:N)
{
if (data[k,(b+parameter+1)]<knotopt[j]) data1[k,j]=0 else
data1[k,j]=data[k,(b+parameter+1)]-knotopt[j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
np=nrow(B) #banyaknya parameter
yhat=mx%*%B
res=data[,1]-yhat
SSE=sum((res)^2)
SSR=sum((yhat-mean(data[,1]))^2)
SST=sum((data[,1]-mean(data[,1]))^2)
MSE=SSE/(N)
MSR=SSR/(np-1)
Rsq=(SSR/(SSR+SSE))*100
rownames(B) = c("b0",
paste0("b", 1:m, "_x", 1:m),
paste0("b", (m + 1):(4 * m), "_(x", rep(1:m, each = 3), "-k", rep(1:m, each = 3), ".", rep(1:3, m), ")+"))
# UJI SIMULTAN
Fhit=MSR/MSE
pvalue=pf(Fhit,(np-1),(N-np),lower.tail=FALSE)
cat("\n[ UJI SIMULTAN | SPLINE 3 KNOT ]\n\n")
cat(" | F hitung :", format(Fhit, digits=8), "\n")
cat(" | p-value :", format(pvalue, digits=8), "\n")
if (pvalue<=alpha)
{
cat(" | Keputusan : Tolak Ho\n")
cat(" | Kesimpulan : minimal terdapat 1 variabel bebas yang signifikan\n")
} else
{
cat(" | Keputusan : Gagal Tolak Ho\n")
cat(" | Kesimpulan : semua variabel bebas tidak berpengaruh signifikan\n")
}
# UJI PARSIAL
thit=rep(NA,np)
pval=rep(NA,np)
SE=sqrt(diag(MSE*C))
cat("\n[ UJI PARSIAL | SPLINE 3 KNOT ]\n\n")
for (i in 1:np)
{
thit[i]=B[i,1]/SE[i]
pval[i]=2*(pt(abs(thit[i]),(N-np),lower.tail=FALSE))
ket=if (pval[i]<=alpha) "Signifikan (Tolak Ho)" else "Tidak signifikan (Gagal Tolak Ho)"
cat(sprintf(" > %-14s : t = %9.4f | p = %8.6f | %s\n", rownames(B)[i], thit[i], pval[i], ket))
}
# ANOVA
cat("\n[ ANALYSIS OF VARIANCE ]\n\n")
cat(sprintf(" %-8s %4s %14s %14s %10s\n", "Sumber", "df", "SS", "MS", "Fhit"))
cat(sprintf(" %-8s %4d %14.4f %14.4f %10.4f\n", "Regresi", np-1, SSR, MSR, Fhit))
cat(sprintf(" %-8s %4d %14.4f %14.4f\n", "Error", N-np, SSE, MSE))
cat(sprintf(" %-8s %4d %14.4f\n", "Total", N-1, SST))
cat("\n | s :", format(sqrt(MSE), digits=6), "\n")
cat(" | R-square :", format(Rsq, digits=6), "%\n")
cat(" | p-value (F) :", format(pvalue, digits=8), "\n\n")
write.csv(res, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji Residual Titik Knot 3.CSV")
write.csv(mx, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji MX Titik Knot 3.CSV")
write.csv(yhat, file="C:\\Users\\LENOVO\\OneDrive\\Documents\\SEMSTER 5\\REGNON\\TUGAS 5 REGNON MATKUL\\TUGAS 5 DATA SKRIPSI\\Output Uji yhat Titik Knot 3.CSV")
}
uji(0.1, 0)
##
## [ UJI SIMULTAN | SPLINE 3 KNOT ]
##
## | F hitung : 15.769172
## | p-value : 2.7621416e-12
## | Keputusan : Tolak Ho
## | Kesimpulan : minimal terdapat 1 variabel bebas yang signifikan
##
## [ UJI PARSIAL | SPLINE 3 KNOT ]
##
## > b0 : t = -0.5160 | p = 0.608760 | Tidak signifikan (Gagal Tolak Ho)
## > b1_x1 : t = -0.2898 | p = 0.773496 | Tidak signifikan (Gagal Tolak Ho)
## > b2_x2 : t = 0.1294 | p = 0.897680 | Tidak signifikan (Gagal Tolak Ho)
## > b3_x3 : t = 0.7517 | p = 0.456715 | Tidak signifikan (Gagal Tolak Ho)
## > b4_x4 : t = 2.0245 | p = 0.049803 | Signifikan (Tolak Ho)
## > b5_(x1-k1.1)+ : t = -0.6448 | p = 0.522861 | Tidak signifikan (Gagal Tolak Ho)
## > b6_(x1-k1.2)+ : t = 1.3787 | p = 0.175834 | Tidak signifikan (Gagal Tolak Ho)
## > b7_(x1-k1.3)+ : t = 1.0472 | p = 0.301445 | Tidak signifikan (Gagal Tolak Ho)
## > b8_(x2-k2.1)+ : t = 0.5012 | p = 0.619070 | Tidak signifikan (Gagal Tolak Ho)
## > b9_(x2-k2.2)+ : t = -0.7666 | p = 0.447909 | Tidak signifikan (Gagal Tolak Ho)
## > b10_(x2-k2.3)+ : t = -5.0586 | p = 0.000010 | Signifikan (Tolak Ho)
## > b11_(x3-k3.1)+ : t = -0.4422 | p = 0.660799 | Tidak signifikan (Gagal Tolak Ho)
## > b12_(x3-k3.2)+ : t = 0.0864 | p = 0.931585 | Tidak signifikan (Gagal Tolak Ho)
## > b13_(x3-k3.3)+ : t = 1.2935 | p = 0.203453 | Tidak signifikan (Gagal Tolak Ho)
## > b14_(x4-k4.1)+ : t = -1.6175 | p = 0.113823 | Tidak signifikan (Gagal Tolak Ho)
## > b15_(x4-k4.2)+ : t = 1.0511 | p = 0.299661 | Tidak signifikan (Gagal Tolak Ho)
## > b16_(x4-k4.3)+ : t = 5.4967 | p = 0.000003 | Signifikan (Tolak Ho)
##
## [ ANALYSIS OF VARIANCE ]
##
## Sumber df SS MS Fhit
## Regresi 16 185.9148 11.6197 15.7692
## Error 39 41.2642 0.7369
## Total 55 227.1789
##
## | s : 0.858406
## | R-square : 81.8363 %
## | p-value (F) : 2.7621416e-12