library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(MASS)
library(car)
## Loading required package: carData
library(pastecs)
library(pracma)
##
## 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
Pengaturan lokasi file
dir_out = "D:/Matkul/Regnon/data" # folder output (All Knot, Mx, Y topi, residual)
path_data = "D:/Matkul/Regnon/data/Data regresi spline.txt" # lokasi file data
if (!dir.exists(dir_out)) dir.create(dir_out, recursive = TRUE)
Memanggil data
if (!nzchar(path_data)) {
if (interactive()) {
path_data = file.choose()
} else {
stop("Isi 'path_data' pada chunk 'pengaturan' sebelum knit.")
}
}
data = read.table(path_data, header = TRUE)
data = data[, c("Y", "X1", "X2", "X3", "X4")]
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
Statistika Deskriptif dan Deteksi Multikolinieritas
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
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
Scatterplot
label_x = c(X1 = "Tingkat Partisipasi Angkatan Kerja",
X2 = "Harapan Lama Sekolah",
X3 = "PDRB Atas Dasar Harga Berlaku",
X4 = "Indeks Pembangunan Manusia")
for (v in names(label_x)) {
plot(data[[v]], data$Y,
main = paste0("Scatterplot Tingkat Pengangguran Terbuka dan\n", label_x[[v]]),
xlab = paste0(label_x[[v]], " (", v, ")"),
ylab = "Tingkat Pengangguran Terbuka (Y)",
col = "black")
abline(lm(data$Y ~ data[[v]]), col = "darkred", lwd = 3)
}




Fungsi Regresi Spline
# Fungsi basis truncated: (x - knot)+ untuk tiap knot.
# knotvec berisi k_knot knot untuk X1, lalu k_knot knot untuk X2, dst.
basis_knot = function(data, knotvec, k_knot, para)
{
sapply(seq_along(knotvec), function(j) {
b = ceiling(j / k_knot) # variabel ke-b
pmax(data[, b + para + 1] - knotvec[j], 0) # 0 jika x < knot, selain itu x - knot
})
}
# Kandidat knot: 50 titik berjarak sama per variabel, titik ujung dibuang (48 kandidat),
# lalu semua kombinasi k_knot titik. Urutan kombinasi sama dengan loop bersarang j<k<g.
buat_kandidat = function(dataA, nk, k_knot)
{
m = ncol(dataA)
knot1 = matrix(ncol = m, nrow = nk)
for (i in 1:m) {
knot1[, i] = seq(min(dataA[, i]), max(dataA[, i]), length.out = nk)
}
knot1 = knot1[2:(nk - 1), , drop = FALSE]
idx = t(combn(nrow(knot1), k_knot)) # baris = satu kombinasi indeks knot
do.call(cbind, lapply(1:m, function(i) {
matrix(knot1[as.vector(idx), i], nrow = nrow(idx))
}))
}
# Pemilihan knot optimal berdasarkan GCV untuk k_knot titik knot
GCV_knot = function(data, k_knot, para = 0, nk = 50)
{
data = as.matrix(data)
N = nrow(data)
M = ncol(data)
m = M - para - 1
dataA = as.matrix(data[, (para + 2):M])
Imat = diag(N)
aa = rep(1, N)
data2 = data[, 2:M] # data X saja
knotkand = buat_kandidat(dataA, nk, k_knot)
nk1 = nrow(knotkand)
GCV = as.matrix(rep(NA, nk1), ncol = 1); colnames(GCV) = "GCV"
MSE = rep(NA, nk1)
SSE = rep(NA, nk1)
SSR = rep(NA, nk1)
Rsq = as.matrix(rep(NA, nk1), ncol = 1); colnames(Rsq) = "Rsq"
knotke = matrix(1:nk1, ncol = 1); colnames(knotke) = "knot_ke"
for (i in 1:nk1)
{
data1 = basis_knot(data, knotkand[i, ], k_knot, para)
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)
A2 = (sum(diag(Imat - A)) / N)^2
GCV[i] = MSE[i] / A2
}
# Kolom dataAll : 1 = GCV, 2 = Rsq, 3 = knot_ke, 4 dst = nilai knot
# Kolom dataG : 1 = GCV, 2 = knot_ke, 3 dst = nilai knot (kolom Rsq dibuang)
dataAll = as.matrix(cbind(GCV, Rsq, knotke, knotkand))
dataG = dataAll[order(GCV), -2]
write.csv(dataAll, file = file.path(dir_out, paste0("All Knot ", k_knot, ".csv")))
cat("HASIL GCV terkecil dengan", k_knot, "knot", "\n")
cat("==============================================", "\n")
print(dataG[1, 1:(2 + k_knot * m)])
cat("Nilai GCV 10 terkecil pertama", "\n")
print(dataG[1:10, ])
# Estimasi ulang model pada knot dengan GCV terkecil
baris_terbaik = dataG[1, "knot_ke"]
mingcv = dataG[1, "GCV"]
knotgcv = knotkand[baris_terbaik, ]
datagcv1 = basis_knot(data, knotgcv, k_knot, para)
mxgcv = as.matrix(cbind(aa, data2, datagcv1))
Cgcv = pinv(t(mxgcv) %*% mxgcv)
B = Cgcv %*% (t(mxgcv) %*% data[, 1])
cat("\n")
cat("HASIL ESTIMASI PARAMETER TITIK KNOT KE", k_knot, "\n")
cat("==============================================", "\n")
print(B)
cat("\n")
invisible(list(knotgcv = matrix(knotgcv, nrow = 1), mingcv = mingcv,
mxgcv = mxgcv, B = B))
}
# Pembungkus agar pemanggilan tetap GCV1(data), GCV2(data), GCV3(data)
GCV1 = function(data) GCV_knot(data, k_knot = 1)
GCV2 = function(data) GCV_knot(data, k_knot = 2)
GCV3 = function(data) GCV_knot(data, k_knot = 3)
# Uji signifikansi (simultan dan parsial) untuk k_knot titik knot.
# Membaca "All Knot <k_knot>.csv" yang dibuat GCV_knot(), jadi GCV harus dijalankan lebih dulu.
uji_knot = function(alpha, para, data, k_knot)
{
knot = read.csv(file.path(dir_out, paste0("All Knot ", k_knot, ".csv")), header = TRUE)
knot = as.matrix(knot)
knot = knot[, -1] # buang kolom nomor baris dari write.csv
knot = knot[order(knot[, 1]), ] # urut menurut GCV terkecil
data = as.matrix(data)
n = nrow(data)
m = ncol(data) - para - 1 # banyaknya variabel bebas
# Kolom: 1 = GCV, 2 = Rsq, 3 = knot_ke, 4 dst = knot terbaik (k_knot * m nilai)
baris_knot = as.numeric(knot[1, 4:(3 + k_knot * m)])
data.knot = basis_knot(data, baris_knot, k_knot, para)
# Matriks X: 1, X1, knot X1, X2, knot X2, ...
satu = rep(1, n)
mx = satu
for (v in 1:m) {
kol_knot = ((v - 1) * k_knot + 1):(v * k_knot)
mx = cbind(mx, data[, v + para + 1], data.knot[, kol_knot, drop = FALSE])
}
mx = as.matrix(mx)
B = (pinv(t(mx) %*% mx)) %*% t(mx) %*% data[, 1]
n1 = nrow(B)
yhat = mx %*% B
ybar = mean(data[, 1])
res = data[, 1] - yhat
SSE = sum((data[, 1] - yhat)^2)
SSR = sum((yhat - ybar)^2)
MSE = SSE / n # sesuai sintaks asli (bukan SSE/(n - n1))
MSR = SSR / (n1 - 1)
SST = sum((data[, 1] - ybar)^2)
Rsq = (SSR / (SSR + SSE)) * 100
# Uji simultan
Fhit = MSR / MSE
pvalue = pf(Fhit, (n1 - 1), (n - n1), lower.tail = FALSE)
cat("---------------------------------------", "\n")
cat("Kesimpulan hasil uji simultan", "\n")
cat("---------------------------------------", "\n")
if (pvalue <= alpha) {
cat("Ho ditolak yakni minimal terdapat 1 variabel bebas yang signifikan", "\n")
} else {
cat("Ho gagal ditolak yakni semua variabel bebas tidak berpengaruh signifikan", "\n")
}
cat("", "\n")
# Uji parsial
thit = rep(NA, n1)
pval = rep(NA, n1)
SE = sqrt(diag(MSE * (pinv(t(mx) %*% mx))))
cat("---------------------------------------------", "\n")
cat("Kesimpulan hasil uji parsial", "\n")
cat("---------------------------------------------", "\n")
for (i in 1:n1)
{
thit[i] = B[i, 1] / SE[i]
pval[i] = 2 * (pt(abs(thit[i]), (n - n1), lower.tail = FALSE))
if (pval[i] <= alpha) {
cat("Ho ditolak yakni variabel bebas signifikan dengan pvalue", pval[i], "\n")
} else {
cat("Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue", pval[i], "\n")
}
}
thit = as.matrix(thit)
cat("nilai t hitung", "\n")
cat("=============================================", "\n")
print(thit)
cat("Analysis of Variance", "\n")
cat("=============================================", "\n")
cat("Sumber df SS MS Fhit", "\n")
cat("Regresi ", (n1 - 1), " ", SSR, " ", MSR, " ", Fhit, "\n")
cat("Error ", n - n1, " ", SSE, " ", MSE, "\n")
cat("Total ", n - 1, " ", SST, "\n")
cat("=============================================", "\n")
cat("s=", sqrt(MSE), " Rsq=", Rsq, "\n")
cat("pvalue(F)=", pvalue, "\n")
write.csv(res, file = file.path(dir_out, paste0("Output Uji Residual knot ", k_knot, ".csv")))
write.csv(mx, file = file.path(dir_out, paste0("Mx knot ", k_knot, ".csv")))
write.csv(yhat, file = file.path(dir_out, paste0("Y topi knot ", k_knot, ".csv")))
invisible(list(B = B, thit = thit, pval = pval, Fhit = Fhit, pvalue = pvalue,
Rsq = Rsq, res = res, yhat = yhat))
}
Pemilihan 1 Titik Knot
hasil_gcv1 = GCV1(data)
## HASIL GCV terkecil dengan 1 knot
## ==============================================
## GCV knot_ke
## 1.508187 45.000000 76.286735 14.630612 69.183673 75.922653
## Nilai GCV 10 terkecil pertama
## 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
##
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 1
## ==============================================
## [,1]
## [1,] 10.122393144
## [2,] -0.200697922
## [3,] 0.762874047
## [4,] -0.005244856
## [5,] -0.017306261
## [6,] 0.072850412
## [7,] -21.843749933
## [8,] 0.415138942
## [9,] 1.053106627
Uji Signifikansi Satu Titik Knot
hasil_uji1 = uji_knot(alpha = 0.1, para = 0, data = data, k_knot = 1)
## ---------------------------------------
## Kesimpulan hasil uji simultan
## ---------------------------------------
## Ho ditolak yakni minimal terdapat 1 variabel bebas yang signifikan
##
## ---------------------------------------------
## Kesimpulan hasil uji parsial
## ---------------------------------------------
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.04471309
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 6.825617e-06
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.9079879
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.006735878
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 2.184894e-06
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.5049048
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.07036832
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.09074499
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 4.259298e-07
## nilai t hitung
## =============================================
## [,1]
## [1,] 2.0624803
## [2,] -5.0617196
## [3,] 0.1162015
## [4,] 2.8350060
## [5,] -5.3953305
## [6,] -0.6719509
## [7,] 1.8516205
## [8,] -1.7269469
## [9,] 5.8681386
## Analysis of Variance
## =============================================
## Sumber df SS MS Fhit
## Regresi 8 167.6864 20.9608 19.73027
## Error 47 59.49258 1.062368
## Total 55 227.1789
## =============================================
## s= 1.030712 Rsq= 73.81246
## pvalue(F)= 1.239e-12
Pemilihan 2 Titik Knot
hasil_gcv2 = GCV2(data)
## HASIL GCV terkecil dengan 2 knot
## ==============================================
## GCV knot_ke
## 1.316068 135.000000 61.132449 76.286735 11.382041 14.630612 7.692245
##
## 69.183673 25.025510 75.922653
## Nilai GCV 10 terkecil pertama
## 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
##
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 2
## ==============================================
## [,1]
## [1,] 95.3587176
## [2,] -2.9213119
## [3,] 6.1469387
## [4,] 0.2059982
## [5,] 0.7283636
## [6,] 2.7449916
## [7,] 0.7954129
## [8,] -5.3197766
## [9,] -18.0705567
## [10,] -0.2144538
## [11,] 0.2853691
## [12,] -0.7619877
## [13,] 0.9034632
Uji Signifikansi Dua Titik Knot
hasil_uji2 = uji_knot(alpha = 0.1, para = 0, data = data, k_knot = 2)
## ---------------------------------------
## Kesimpulan hasil uji simultan
## ---------------------------------------
## Ho ditolak yakni minimal terdapat 1 variabel bebas yang signifikan
##
## ---------------------------------------------
## Kesimpulan hasil uji parsial
## ---------------------------------------------
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2064143
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.002583234
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.004789845
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2422198
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1561285
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2229634
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 1.532736e-05
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1557346
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1498621
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1649558
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.02812549
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.02406025
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 3.439945e-06
## nilai t hitung
## =============================================
## [,1]
## [1,] 1.282856
## [2,] -3.199948
## [3,] 2.975107
## [4,] 1.185782
## [5,] 1.443491
## [6,] -1.236557
## [7,] -4.872993
## [8,] 1.444899
## [9,] -1.466226
## [10,] 1.412651
## [11,] 2.272317
## [12,] -2.338846
## [13,] 5.327626
## Analysis of Variance
## =============================================
## Sumber df SS MS Fhit
## Regresi 12 183.7252 15.31043 19.73097
## Error 43 43.45373 0.7759595
## Total 55 227.1789
## =============================================
## s= 0.8808856 Rsq= 80.87246
## pvalue(F)= 1.075619e-13
Pemilihan 3 Titik Knot
hasil_gcv3 = GCV3(data)
## HASIL GCV terkecil dengan 3 knot
## ==============================================
## GCV knot_ke
## 1.444246 2200.000000 61.132449 61.854082 76.286735 11.382041
##
## 11.536735 14.630612 7.692245 10.620408 69.183673 25.025510
##
## 27.449184 75.922653
## Nilai GCV 10 terkecil pertama
## 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
##
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 3
## ==============================================
## [,1]
## [1,] -4.87954771
## [2,] -0.57070096
## [3,] 1.29861828
## [4,] 0.20162854
## [5,] 1.23897094
## [6,] -2.60712938
## [7,] 3.03208076
## [8,] 0.76491110
## [9,] 13.80910092
## [10,] -14.12188192
## [11,] -19.59971920
## [12,] -0.22960609
## [13,] 0.02361872
## [14,] 0.25980650
## [15,] -1.94377923
## [16,] 0.67438515
## [17,] 0.92445503
Uji Signifikansi Tiga Titik Knot
hasil_uji3 = uji_knot(alpha = 0.1, para = 0, data = data, k_knot = 3)
## ---------------------------------------
## Kesimpulan hasil uji simultan
## ---------------------------------------
## Ho ditolak yakni minimal terdapat 1 variabel bebas yang signifikan
##
## ---------------------------------------------
## Kesimpulan hasil uji parsial
## ---------------------------------------------
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.6087605
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.7734961
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.5228609
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1758342
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.3014451
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.8976796
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.6190703
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.4479088
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 1.040868e-05
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.4567152
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.6607985
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.9315849
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2034532
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.04980339
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1138228
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2996611
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 2.587599e-06
## nilai t hitung
## =============================================
## [,1]
## [1,] -0.51601044
## [2,] -0.28981099
## [3,] -0.64475471
## [4,] 1.37873375
## [5,] 1.04722022
## [6,] 0.12943381
## [7,] 0.50116758
## [8,] -0.76664478
## [9,] -5.05857856
## [10,] 0.75174871
## [11,] -0.44218412
## [12,] 0.08640707
## [13,] 1.29348236
## [14,] 2.02451772
## [15,] -1.61753944
## [16,] 1.05114669
## [17,] 5.49666947
## Analysis of Variance
## =============================================
## Sumber df SS MS Fhit
## Regresi 16 185.9148 11.61967 15.76917
## Error 39 41.26416 0.7368601
## Total 55 227.1789
## =============================================
## s= 0.8584055 Rsq= 81.83627
## pvalue(F)= 2.762142e-12