MEMANGGIL LIBRARY YANG DIGUNAKAN

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

MEMANGGIL DATA

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

ANALISIS STATISTIKA DESKRIPTIF & 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

Statistika Deskriptif

Tabel 1. Statistika Deskriptif Variabel Penelitian Variabel n Rata-rata Median Minimum Maksimum Std. Deviasi Y 56 4,957 4,510 2,240 12,360 2,032 X_1 56 68,987 69,140 60,050 77,730 4,496 X_2 56 12,649 12,505 11,150 14,940 0,808 X_3 56 26,362 18,640 3,300 75,040 20,018 X_4 56 61,123 67,965 21,390 80,770 16,480 Interpretasi: Berdasarkan output diketahui rata-rata TPT Y adalah 4,957 dengan nilai terendah 2,24 dan tertinggi 12,36. Standar deviasinya 2,032 atau sekitar 41,0% dari rata-ratanya, sehingga TPT antar pengamatan cukup beragam. Rata-rata yang lebih besar daripada median (4,51) menunjukkan sebaran TPT miring ke kanan, yaitu sebagian kecil pengamtan memiliki TPT yang sangat tinggi. Tingkat Partisipasi Angkatan Kerja Angkatan Kerja (X_1) memiliki rata-rata 68,987 dengan rentan 60,05 sampai 77,73 dan standar deviasi 4,496. Koefisien variansinya hanya 6,5%, jadi variabel ini relatif seragam antarpengamatan. Harapan Lama Sekolah (X_2) berada pada rentang 11,15 sampai 14,94 tahun dengan rata-rata 12,65 tahun dan koefisien variasi sebesar 6,4% sehingga juga relatif seragam. PDRB Atas Dasar Harga Berlaku (X_3) adalah variabel yang paling beragam, dengan rentang 3,30 hingga 75,04 dan koefisien variasi sebesar 75,9%. Rata-rata sebesar 26,36 jauh di atas median sebesar 18,64, artinya sebagian kecil pengamatan memiliki PDRB yang sangat besar. Indeks Pembangunan Manusia (X_4 ) memiliki rata-rata sebesar 61,12 yang berada di bawah nilai median yakni sebesar 67,97 sehingga sebarannya miring ke kiri. Nilai minimum sebesar 21,39 jauh lebih rendah daripada sebagian besar pengamatan yang menandakan adanya pengamatan ekstrem pada variabel ini. Identifikasi multikolinearitas bertujuan mengetahui ada tidaknya korelasi yang kuat antarvariabel prediktor. Model regresi yang baik tidak mengandung korelasi yang tinggi antarprediktornya. Hal ini dilihat dari nilai Variance Inflation Factor (VIF), dengan ketentuan prediktor tidak mengalami multikolinearitas jika VIF ≤ 10. Tabel 2. Statistika Deskriptif Variabel Penelitian Variabel X_1 X_2 X_3 X_4 VIF 1,305 1,317 1,083 1,099 Nilai VIF keempat variabel kurang dari 10, sehingga tidak terjadi multikolinearitas dan keempat variabel prediktor layak digunakan bersama dalam model.

Model regresi nonparametrik spline truncated dengan empat variabel prediktor dan r titik knot pada setiap variabel dapat dituliskan sebagai berikut. \(\[y_i = \beta_0 + \sum_{j=1}^{4} \sum_{l=0}^{m} \beta_{jl} x_{ji}^{1} + \sum_{j=1}^{4} \sum_{h=1}^{m} \beta_{j(1+h)} (x_{ji} - k_{hj})_{+}^{1} + \varepsilon_i\]\) Dengan fungsi truncated \(\[(x_{ji} - k_{hj})_{+}^{1} = x_{ji} - k_{hj}\]\) jika \(\[x_{ji} > k_{hj}\]\) dan bernilai 0 jika x_ji<k_hj. Pada persamaat tersebut, y_i adalah Tingkat Pengangguran Terbuka (TPT) pengamtan ke-i, β_0 adalah intersept, β_jl adalah koefisien komponen linier prediktor ke-j,\(\[\beta_{j(1+h)}\]\) adalah koefisien komponen truncated pada knot ke-h, k_hj adalah titik knot ke-h pada prediktor ke-j, dan ε_i adalah galat error. Titik knot optimal dipilih berdasarkan nilai Generalized Cross Validation (GCV) minimum. Kandidat knot dibentuk dari 50 titik yang berjarak sama antara nilai minimum dan maksimum setiap variabel, dengan titik minimum dan maksimum dibuang sehingga tersisa 48 kandidat. Kandidat yang sama dipakai bersamaan untuk keempat variabel. Pemilihan dilakukan untuk 1 knot (48 kombinasi), 2 knot (1.128 kombinasi), dan 3 knot (17.296 kombinasi).

SCATTERPLOT

plot(data$X1,data$Y,main="Scatterplot Tingkat Pengangguran Terbuka dan 
Tingkat Partisipasi Angkatan Kerja" 
     , xlab="Tingkat Partisipasi Angkatan Kerja (X1)" 
     , ylab="Tingkat Pengangguran Terbuka (Y)" 
     ,col="black") 
abline(lm(data$Y~data$X1), col="darkred", lwd=3)

plot(data$X2,data$Y,main="Scatterplot Tingkat Pengangguran Terbuka dan 
Harapan Lama Sekolah" 
     , xlab="Harapan Lama Sekolah (X2)" 
     , ylab="Tingkat Pengangguran Terbuka (Y)" 
     ,col="black") 
abline(lm(data$Y~data$X2), col="darkred", lwd=3)

plot(data$X3,data$Y,main="Scatterplot Tingkat Pengangguran Terbuka dan 
PDRB Atas Dasar Harga Berlaku" 
     , xlab="PDRB Atas Dasar Harga Berlaku (X3)" 
     , ylab="Tingkat Pengangguran Terbuka (Y)" 
     ,col="black") 
abline(lm(data$Y~data$X3), col="darkred", lwd=3)

plot(data$X4,data$Y,main="Scatterplot Tingkat Pengangguran Terbuka dan 
Indeks Pembangunan Manusia" 
     , xlab="TIndeks Pembangunan Manusia (X4)" 
     , ylab="Tingkat Penggangguran Terbuka (Y)" 
     ,col="black")
abline(lm(data$Y~data$X4), col="darkred", lwd=3)

## Interpetasi:

Berdasarkan scatter plot di atas, dapat dilihat bahwa data menunjukkan pola yang linear menurun, karena sebagian besar titik data mendekati garis regresi meskipun terdapat beberapa titik yang menyimpang. Secara keseluruhan, hubungan antara variabel X_1 (Tingkat Partisipasi Angkatan Kerja) dan variabel Y (Tingkat Pengangguran Terbuka) dapat dikatakan linear. Selain itu, arah hubungan antara variabel Tingkat Pengangguran Terbuka (TPT) dengan variabel Tingkat Partisipasi Angkatan Kerja adalah berbanding terbalik, yaitu semakin besar nilai variabel Tingkat Partisipasi Angkatan Kerja maka semakin kecil nilai variabel Tingkat Pengangguran Terbuka (TPT).

Berdasarkan scatter plot di atas, dapat dilihat bahwa data menunjukkan pola yang linear meningkat, karena sebagian besar titik data mendekati garis regresi meskipun terdapat beberapa titik yang menyimpang. Secara keseluruhan, hubungan antara variabel X_2 (Harapan Lama Sekolah) dan variabel Y (Tingkat Pengangguran Terbuka) dapat dikatakan linear. Selain itu, arah hubungan antara variabel Tingkat Pengangguran Terbuka (TPT) dengan variabel Tingkat Partisipasi Angkatan Kerja adalah berbanding lurus, yaitu semakin besar nilai variabel Harapan Lama Sekolah maka semakin besar nilai variabel Tingkat Pengangguran Terbuka (TPT).

Berdasarkan scatter plot di atas, dapat dilihat bahwa data menunjukkan pola yang linear meningkat, karena sebagian besar titik data mendekati garis regresi meskipun terdapat beberapa titik yang menyimpang. Secara keseluruhan, hubungan antara variabel X_3 (PDRB Atas Dasar Harga Berlaku) dan variabel Y (Tingkat Pengangguran Terbuka) dapat dikatakan linear. Selain itu, arah hubungan antara variabel Tingkat Pengangguran Terbuka (TPT) dengan variabel PDRB Atas Dasar Harga Berlaku adalah berbanding lurus, yaitu semakin besar nilai variabel PDRB Atas Harga Dasar Berlaku maka semakin besar nilai variabel Tingkat Pengangguran Terbuka (TPT).

Berdasarkan scatter plot di atas, dapat dilihat bahwa data menunjukkan pola yang linear meningkat lemah, karena sebagian besar titik data mendekati garis regresi meskipun terdapat banyak titik yang menyimpang. Secara keseluruhan, hubungan antara variabel X_4 (Indeks Pembangunan Manusia) dan variabel Y (Tingkat Pengangguran Terbuka) dapat dikatakan linear. Selain itu, arah hubungan antara variabel Tingkat Pengangguran Terbuka (TPT) dengan variabel Indeks Pembangunan Manusia adalah berbanding lurus, yaitu semakin besar nilai variabel Indeks Pembangunan Manusia maka semakin besar nilai variabel Tingkat Pengangguran Terbuka (TPT).

PEMILIHAN 1 TITIK KNOT

GCV1=function(data) 
{ 
  para=0 
  data=as.matrix(data) 
  N=nrow(data) 
  M=ncol(data) 
  m=ncol(data)-para-1 
  dataA=data[,(para+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) 
  { 
    for (j in 1:m)  
    {  
      for (k in 1:N)  
      {  
        if (data[k,(j+para+1)]<knot1[i,j]) data1[k,j]=0 else  
          data1[k,j]=data[k,(j+para+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\\HP\\Downloads\\REGNOPAR SKRIPSI\\DATA ALL knot 1.csv")
  cat("==============================================","\n") 
  cat("HASIL GCV terkecil dengan 1 knot","\n") 
  cat("==============================================","\n") 
  print(((dataG[1,1:6]))) 
  cat("Nilai GCV 10 terkecil pertama","\n") 
  print(dataG[1:10,]) 
  mingcv=dataG[1,1] 
  knotgcv=as.matrix(knot1[dataG[1,4],]) 
  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+para+1)]<knotgcv[j,1]) datagcv1[k,j]=0 else  
        datagcv1[k,j]=data[k,(j+para+1)]-knotgcv[j,1]  
    }  
  } 
  mxgcv=as.matrix(cbind(aa,data2,datagcv1))  
  mxgcv=mxgcv[,c(2:6)] 
  list(knotgcv=knotgcv1,mingcv=mingcv,mxgcv=mxgcv) 
  cat("\n")  
  cat("==============================================","\n") 
  cat("HASIL ESTIMASI PARAMETER TITIK KNOT KE 1","\n") 
  cat("==============================================","\n") 
  print(B) 
  cat("\n") 
} 
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,]  1.100168e+01
##  [2,] -2.352118e-01
##  [3,]  8.683805e-01
##  [4,] -5.401921e-03
##  [5,] -1.233868e-02
##  [6,]  5.699848e-01
##  [7,] -1.336717e+02
##  [8,]  4.073604e-01
##  [9,]  6.923471e+00

#UJI SIGNIFIKANSI SATU TITIK KNOT#

uji=function(alpha,para) 
{ 
  # --- baca & siapkan titik knot terbaik (GCV terkecil) ---
  knot = read.csv("C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\DATA ALL knot 1.csv", header=TRUE)
  knot = as.matrix(knot)
  knot = knot[,-1]                 # buang kolom index baris
  knot = knot[order(knot[,1]), ]   # urutkan berdasarkan GCV (kolom 1) terkecil
  baris_knot = knot[1, 4:7]        # ambil knot X1-X4 pada baris GCV terkecil
  
  data=as.matrix(data) 
  ybar=mean(data[,1]) 
  m=para+2 
  n=nrow(data) 
  q=ncol(data) 
  dataA=cbind(data[,m],data[,m+1], 
              data[,m+2],data[,m+3]) 
  dataA=as.matrix(dataA) 
  satu=rep(1,n) 
  n1=4                              # jumlah variabel X (X1-X4)
  data.knot=matrix(ncol=n1,nrow=n) 
  
  # --- hitung fungsi basis knot (loop i untuk variabel, j untuk observasi) ---
  for (i in 1:n1) 
  { 
    for (j in 1:n) 
    { 
      if(dataA[j,i] < baris_knot[i]) data.knot[j,i]=0 
      else data.knot[j,i] = dataA[j,i] - baris_knot[i] 
    } 
  } 
  
  mx=cbind(satu,data[,2],data.knot[,1:1],data[,3], 
           data.knot[,2:2],data[,4],data.knot[,3:3], 
           data[,5],data.knot[,4:4]) 
  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) 
  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) 
  if(pvalue<=alpha) 
  { 
    cat('---------------------------------------','\n') 
    cat('Kesimpulan hasil uji simultan','\n') 
    cat('---------------------------------------','\n') 
    cat('Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan','\n') 
    cat('','\n') 
  } 
  else                                # <-- perbaikan: "Else" jadi "else"
  { 
    cat('---------------------------------------','\n') 
    cat('Kesimpulan hasil uji simultan','\n') 
    cat('---------------------------------------','\n') 
    cat('Gagal Tolak Ho 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('Tolak Ho yakni variabel bebas signifikan dengan pvalue',pval[i],'\n') 
    else cat('Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue',pval[i],'\n') 
  } 
  thit=as.matrix(thit) 
  cat('=============================================','\n') 
  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='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI RESIDUAL knot1.csv') 
  write.csv(mx, file='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI RESIDUAL knot1.csv') 
  write.csv(yhat, file='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI RESIDUAL knot1.csv') 
}

uji(0.1, 0)
## --------------------------------------- 
## Kesimpulan hasil uji simultan 
## --------------------------------------- 
## Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan 
##  
## --------------------------------------------- 
## Kesimpulan hasil uji parsial 
## --------------------------------------------- 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.04471309 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 6.825617e-06 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.9079879 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.006735878 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 2.184894e-06 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.5049048 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.07036832 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.09074499 
## Tolak Ho 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

Interpretasi:

Model dengan GCV minimum yaitu 1,50819 memiliki titik knot optimal k_11=76,28673,k_12=14,63061,k_13=69,18367 dan k_14=75,92265. Model ini memiliki 9 parameter dan persamaannya adalah sebagai berikut: \(\[\hat{y}_i = 10.12239 - 0.20070\,x_{1i} + 0.07285\,(x_{1i} - 76.28673)_{+} + 0.76287\,x_{2i} - 21.84375\,(x_{2i} - 14.63061)_{+} - 0.00524\,x_{3i} + 0.41514\,(x_{3i} - 69.18367)_{+} - 0.01731\,x_{4i} + 1.05311\,(x_{4i} - 75.92265)_{+}\]\)

PEMILIHAN DUA TITIK KNOT

GCV2=function(data)  
{  
  para=0 
  data=as.matrix(data)  
  N=nrow(data) 
  M=ncol(data) 
  m=ncol(data)-para-1 
  dataA=data[,(para+2):M]  
  dataA=as.matrix(dataA)  
  F=diag(N)  
  nk=50 
  knot1=matrix(ncol=m,nrow=nk)  
  for (i in (1:m)) 
  { 
    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] 
  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)  
  {  
    for (j in 1:(2*m))  
    {  
      if (mod(j,2)==1) b=floor(j/2)+1 else b=j/2  
      for (k in 1:N)  
      { 
        if (data[k,(b+para+1)]<knot2[i,j]) data1[k,j]=0 else  
          data1[k,j]=data[k,(b+para+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\\HP\\Downloads\\REGNOPAR SKRIPSI\\DATA ALL knot 2.csv") 
  cat("==============================================","\n") 
  cat("HASIL GCV terkecil dengan 2 knot","\n")  
  cat("==============================================","\n") 
  print(((dataG[1,1:10])))  
  cat("Nilai GCV 10 terkecil pertama","\n") 
  print(dataG[1:10,]) 
  
  # --- PERBAIKAN: hitung ulang B dari titik knot dengan GCV TERKECIL ---
  # (sebelumnya B yang dicetak = B dari kombinasi knot TERAKHIR yang dicoba, bukan yang terbaik)
  baris_terbaik = dataG[1, "knot_ke"] 
  knotgcv = knot2[baris_terbaik, ] 
  datagcv1=matrix(ncol=2*m,nrow=N)  
  for (j in 1:(2*m)) 
  {  
    if (mod(j,2)==1) b=floor(j/2)+1 else b=j/2  
    for (k in 1:N)  
    { 
      if (data[k,(b+para+1)]<knotgcv[j]) datagcv1[k,j]=0 else 
        datagcv1[k,j]=data[k,(b+para+1)]-knotgcv[j] 
    } 
  } 
  mxgcv=as.matrix(cbind(aa,data2,datagcv1)) 
  Cgcv=pinv(t(mxgcv)%*%mxgcv) 
  B=Cgcv%*%(t(mxgcv)%*%data[,1]) 
  
  cat("\n")  
  cat("==============================================","\n") 
  cat("HASIL ESTIMASI PARAMETER TITIK KNOT KE 2","\n") 
  cat("==============================================","\n") 
  print(B) 
  cat("\n") 
} 
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#

uji=function(alpha,para) 
{ 
  knot = read.csv("C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\DATA ALL knot 2.csv", header=TRUE) 
  knot = as.matrix(knot) 
  knot = knot[,-1]                        # buang kolom index baris 
  knot = knot[order(knot[,1]), ]          # urutkan berdasarkan GCV terkecil 
  baris_knot = as.numeric(knot[1, 4:11])  # 8 nilai knot terbaik (X1a,X1b,X2a,X2b,X3a,X3b,X4a,X4b) 
  
  data=as.matrix(data) 
  ybar=mean(data[,1]) 
  m=para+2 
  n=nrow(data) 
  q=ncol(data) 
  dataA=cbind(data[,m],data[,m],data[,m+1],data[,m+1], 
              data[,m+2],data[,m+2],data[,m+3],data[,m+3]) 
  dataA=as.matrix(dataA) 
  satu=rep(1,n) 
  n1=length(baris_knot)                   # = 8 
  data.knot=matrix(ncol=n1,nrow=n) 
  for (i in 1:n1) 
  { 
    for (j in 1:n) 
    { 
      if(dataA[j,i]<baris_knot[i]) data.knot[j,i]=0 
      else data.knot[j,i]=dataA[j,i]-baris_knot[i] 
    } 
  } 
  mx=cbind(satu,data[,2],data.knot[,1:2],data[,3], 
           data.knot[,3:4],data[,4],data.knot[,5:6], 
           data[,5],data.knot[,7:8]) 
  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) 
  MSR=SSR/(n1-1) 
  SST=sum((data[,1]-ybar)^2) 
  Rsq=(SSR/(SSR+SSE))*100 
  Fhit=MSR/MSE 
  pvalue=pf(Fhit,(n1-1),(n-n1),lower.tail=FALSE) 
  if(pvalue<=alpha) 
  { 
    cat('---------------------------------------','\n') 
    cat('Kesimpulan hasil uji simultan','\n') 
    cat('---------------------------------------','\n') 
    cat('Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan','\n') 
    cat('','\n') 
  } 
  else 
  { 
    cat('---------------------------------------','\n') 
    cat('Kesimpulan hasil uji simultan','\n') 
    cat('---------------------------------------','\n') 
    cat('Gagal Tolak Ho yakni semua variabel bebas tidak berpengaruh signifikan','\n') 
    cat('','\n') 
  } 
  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('Tolak Ho yakni variabel bebas signifikan dengan pvalue',pval[i],'\n') 
    else cat('Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue',pval[i],'\n') 
  } 
  thit=as.matrix(thit) 
  cat('=============================================','\n') 
  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='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI RESIDUAL knot2.csv') 
  write.csv(mx,file='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI MX knot2.csv') 
  write.csv(yhat,file='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI yhat knot2.csv') 
} 
uji(0.1, 0)
## --------------------------------------- 
## Kesimpulan hasil uji simultan 
## --------------------------------------- 
## Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan 
##  
## --------------------------------------------- 
## Kesimpulan hasil uji parsial 
## --------------------------------------------- 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2064143 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.002583234 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.004789845 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2422198 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1561285 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2229634 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 1.532736e-05 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1557346 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1498621 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1649558 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.02812549 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.02406025 
## Tolak Ho 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

Interpretasi:

Pemilihan dilanjutkan dengan dua titik knot pada setiap variabel. Berdasarkan output terdapat sepuluh nilai GCV terkecil, dengan dua nilai knot pada setiap sel berturut-turut menunjukkan knot pertama dan knot kedua. Model dengan GCV minimum yaitu 1,31607 memiliki titik knot optimal k_11=61,13245 k_21=76,28673 k_12=11,382054 k_22=14,63061 k_13=7,69224 k_23=69,18367 k_14=25,02551 k_24=75,92265 Model ini memiliki 13 parameter dan persamaannya adalah sebagai berikut: \(\[\hat{y}_i = 95.35872 - 2.92131\,x_{1i} + 2.74499\,(x_{1i} - 61.13245)_{+} + 0.79541\,(x_{1i} - 76.28673)_{+} + 6.14694\,x_{2i} - 5.31978\,(x_{2i} - 11.38204)_{+} - 18.07056\,(x_{2i} - 14.63061)_{+} + 0.20600\,x_{3i} + 0.21445\,(x_{3i} - 7.69224)_{+} + 0.28537\,(x_{3i} - 69.18367)_{+} + 0.72836\,x_{4i} + 0.76199\,(x_{4i} - 25.02551)_{+} + 0.90346\,(x_{4i} - 75.92265)_{+}\]\)

PEMILIHAN TIGA TITIK KNOT

GCV3=function(data) 
{ 
  para=0 
  data=as.matrix(data) 
  N=nrow(data) 
  M=ncol(data) 
  m=ncol(data)-para-1 
  dataA=data[,(para+2):M] 
  dataA=as.matrix(dataA) 
  F=diag(N) 
  nk=50 
  knot1=matrix(ncol=m,nrow=nk) 
  for (i in (1:m)) 
  { 
    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] 
  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) 
  { 
    for (j in 1:(3*m)) 
    { 
      b=ceiling(j/3) 
      for (k in 1:N) 
      { 
        if (data[k,(b+para+1)]<knot2[i,j]) data1[k,j]=0 else  
          data1[k,j]=data[k,(b+para+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\\HP\\Downloads\\REGNOPAR SKRIPSI\\DATA ALL knot 3.csv") 
  cat("==============================================","\n") 
  cat("HASIL GCV terkecil dengan 3 knot","\n") 
  cat("==============================================","\n") 
  print(((dataG[1,1:14]))) 
  cat("Nilai GCV 10 terkecil pertama","\n") 
  print(dataG[1:10,]) 
  
  # --- PERBAIKAN: hitung ulang B dari titik knot dengan GCV TERKECIL --- 
  baris_terbaik = dataG[1, "knot_ke"] 
  knotgcv = knot2[baris_terbaik, ] 
  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+para+1)]<knotgcv[j]) datagcv1[k,j]=0 else 
        datagcv1[k,j]=data[k,(b+para+1)]-knotgcv[j] 
    } 
  } 
  mxgcv=as.matrix(cbind(aa,data2,datagcv1)) 
  Cgcv=pinv(t(mxgcv)%*%mxgcv) 
  B=Cgcv%*%(t(mxgcv)%*%data[,1]) 
  
  cat("\n")  
  cat("==============================================","\n") 
  cat("HASIL ESTIMASI PARAMETER TITIK KNOT KE 3","\n") 
  cat("==============================================","\n") 
  print(B) 
  cat("\n") 
} 
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#

uji=function(alpha,para) 
{ 
  knot = read.csv("C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\DATA ALL knot 3.csv", header=TRUE) 
  knot = as.matrix(knot) 
  knot = knot[,-1] 
  knot = knot[order(knot[,1]), ] 
  baris_knot = as.numeric(knot[1, 4:15])   # 12 nilai knot terbaik (3*m = 12) 
  
  data=as.matrix(data) 
  ybar=mean(data[,1]) 
  m=para+2 
  n=nrow(data) 
  q=ncol(data) 
  dataA=cbind(data[,m],data[,m],data[,m], 
              data[,m+1],data[,m+1],data[,m+1], 
              data[,m+2],data[,m+2],data[,m+2], 
              data[,m+3],data[,m+3],data[,m+3]) 
  dataA=as.matrix(dataA) 
  satu=rep(1,n) 
  n1=length(baris_knot)              # = 12 
  data.knot=matrix(ncol=n1,nrow=n) 
  for (i in 1:n1) 
  { 
    for (j in 1:n) 
    { 
      if(dataA[j,i]<baris_knot[i]) data.knot[j,i]=0 
      else data.knot[j,i]=dataA[j,i]-baris_knot[i] 
    } 
  } 
  mx=cbind(satu,data[,2],data.knot[,1:3],data[,3], 
           data.knot[,4:6],data[,4],data.knot[,7:9], 
           data[,5],data.knot[,10:12]) 
  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) 
  MSR=SSR/(n1-1) 
  SST=sum((data[,1]-ybar)^2) 
  Rsq=(SSR/(SSR+SSE))*100
  Fhit=MSR/MSE 
  pvalue=pf(Fhit,(n1-1),(n-n1),lower.tail=FALSE) 
  if(pvalue<=alpha) 
  { 
    cat('---------------------------------------','\n') 
    cat('Kesimpulan hasil uji simultan','\n') 
    cat('---------------------------------------','\n') 
    cat('Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan','\n') 
    cat('','\n') 
  } 
  else 
  { 
    cat('---------------------------------------','\n') 
    cat('Kesimpulan hasil uji simultan','\n') 
    cat('---------------------------------------','\n') 
    cat('Gagal Tolak Ho yakni semua variabel bebas tidak berpengaruh signifikan','\n') 
    cat('','\n') 
  } 
  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('Tolak Ho yakni variabel bebas signifikan dengan pvalue',pval[i],'\n') 
    else cat('Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue',pval[i],'\n') 
  } 
  thit=as.matrix(thit) 
  cat('=============================================','\n') 
  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='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI RESIDUAL knot3.csv') 
  write.csv(mx,file='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI mx knot3.csv') 
  write.csv(yhat,file='C:\\Users\\HP\\Downloads\\REGNOPAR SKRIPSI\\OUTPUT UJI yhat knot3.csv') 
} 
uji(0.1, 0)
## --------------------------------------- 
## Kesimpulan hasil uji simultan 
## --------------------------------------- 
## Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan 
##  
## --------------------------------------------- 
## Kesimpulan hasil uji parsial 
## --------------------------------------------- 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.6087605 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.7734961 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.5228609 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1758342 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.3014451 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.8976796 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.6190703 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.4479088 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 1.040868e-05 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.4567152 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.6607985 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.9315849 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2034532 
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.04980339 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1138228 
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2996611 
## Tolak Ho 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

Interpretasi:

Langkah yang sama dilakukan untuk tiga titik knot. Berdasarkan output terdapat lima nilai GCV terkecil, dengan tiga nilai knot pada setiap sel berturut-turut menunjukkan knot pertama, kedua dan knot ketiga. Model dengan GCV minimum yaitu 1,44425 memiliki titik knot optimal k_11=61,13245 k_21=61,85408 k_31=76,28673 k_12=11,382054 k_22=11,53673 k_32=14,63061 k_13=7,69224 k_23=10,62041 k_33=69,18367 k_14=25,02551 k_24=27,44918 k_34=75,92265 Model ini memiliki 17 parameter dan persamaannya adalah sebagai berikut: \(\[\hat{y}_i = -4.87955 - 0.57070\,x_{1i} + 2.60713\,(x_{1i} - 61.13245)_{+} + 3.03208\,(x_{1i} - 61.85408)_{+} + 0.76491\,(x_{1i} - 76.28673)_{+} + 1.29862\,x_{2i} + 13.80910\,(x_{2i} - 11.38204)_{+} - 14.12188\,(x_{2i} - 11.53673)_{+} - 19.59972\,(x_{2i} - 14.63061)_{+} + 0.20163\,x_{3i} - 0.22961\,(x_{3i} - 7.69224)_{+} + 0.02362\,(x_{3i} - 10.62041)_{+} + 0.25981\,(x_{3i} - 69.18367)_{+} + 1.23897\,x_{4i} - 1.94378\,(x_{4i} - 25.02551)_{+} + 0.67439\,(x_{4i} - 27.44918)_{+} + 0.92446\,(x_{4i} - 75.92265)_{+}\]\) Pada model tiga knot, beberapa fungsi truncated hanya bernilai tidak nol pada satu sampai enam pengamatan, dan matriks desainnya hanya berpangkat 16 dari 17 kolom. Akibatnya parameter pada model ini tidak dapat ditaksir secara unik (diselesaikan dengan pseudo-inverse), sehingga estimasinya tidak stabl dan sulit diinterpretasikan.

Pemilihan Model Terbaik Berdasarkan GCV Minimum Model terbaik dipilih dari nilai GCV yang paling minimum di antara model dengan satu, dua, dan tiga tiitk knot. Perbandingannya disajikan pada tabel berikut. Tabel 3. Perbandingan Model Spline Truncated Titik Knot Jumlah Parameter GCV R^2 1 9 1,50819 73,81% 2 13 1,31607 80,87% 3 17 1,44425 81,84% GCV terkecil yaitu 1,31607 diperoleh pada modle dengan dua titik knot. Model tiga knot menambah jumlah parameter tetapi GCV-nya justru naik dan R^2-nya hanya bertambah sekitar 1,0 poin. Jadi model terbaik adalah regresi nonparametrik spline truncated dengan dua titik knot.

Penaksirann Parameter Model Regresi Nonparmetrik Spline Truncated Berdasarkan titik knot optimal, hasil estimasi parameter model terbaik (dua titik knot) adalah: \(\[\hat{y}_i = 95.35872 - 2.92131\,x_{1i} + 2.74499\,(x_{1i} - 61.13245)_{+} + 0.79541\,(x_{1i} - 76.28673)_{+} + 6.14694\,x_{2i} - 5.31978\,(x_{2i} - 11.38204)_{+} - 18.07056\,(x_{2i} - 14.63061)_{+} + 0.20600\,x_{3i} + 0.21445\,(x_{3i} - 7.69224)_{+} + 0.28537\,(x_{3i} - 69.18367)_{+} + 0.72836\,x_{4i} + 0.76199\,(x_{4i} - 25.02551)_{+} + 0.90346\,(x_{4i} - 75.92265)_{+}\]\) Model ini memilki nilai koefisien determinasi 〖(R〗^2) sebesar 80,87246% yang artinya sekitar 80,87% keragaman TPT dapat dijelasikan oleh keempat variabel prediktor, sedangkan sisanya dijelaskan oleh faktor lain di luar model. Nilai ini jauh lebih tinggi daripada regresi linier berganda yang hanya mencapai 52,60%.

Pengujian Signifikansi Parameter Model Regresi Spline Truncated Pengujian signifikansi dilakukan untuk mengetahui apakah variabel prediktor berpengaruh terhadap TPT, melalui uji simultan dan uji parsial. Uji parsial dilakukan apabila hasil uji simultan menunjukkan minimal satu parameter signifikan. Pada kedua uji ini, kuadrat tengah galat dihitung sebagai JK Galat / (n - p), dengan n = 56 dan p = 13.

Pengujian Signifikansi Parameter Secara Simultan Hipotesis H_0 ∶ β_11=β_12=⋯=β_43=0 (Secara simultan keempat variabel prediktor yaitu Tingkat Partisipasi Angkatan Kerja, Harapan Lama Sekolah, PDRB Atas Dasar Harga Berlaku dan Indeks Pembangunan Manusia tidak berpengaruh secara signifikan terhadap Tingkat Pengangguran Terbuka) H_1 ∶minimal terdapat satu β_(j(1+h))≠0,dengan j=1,2,3,4 dan h=1,2,3 (Secara simultan keempat variabel prediktor yaitu Tingkat Partisipasi Angkatan Kerja, Harapan Lama Sekolah, PDRB Atas Dasar Harga Berlaku dan Indeks Pembangunan Manusia berpengaruh secara signifikan terhadap Tingkat Pengangguran Terbuka) Taraf Signifikasi α=0,05 Statistik Uji Uji F Daerah Kritis H_0 ditolak jikap-value<α atau F_hitung>F_tabel Statistik Hitung Tabel 4. Analisis Ragam Model Dua Titik Knot Sumber Variasi DB Jumlah Kuadrat Kuadrat Tengah F_hitung p-value Regresi 12 183,72521 15,31043 15,15057 9,57×10^(-12) Galat 43 43,45373 1,01055
Total 55 227,17894
Keputusan H_0 ditolak karena p-value=9,57×10^(-12)<α=0,05 dan F_hitung=15,15057>F_tabel (0,05;(12,43))=2,00 Kesimpulan Secara simultan keempat variabel prediktor yaitu Tingkat Partisipasi Angkatan Kerja, Harapan Lama Sekolah, PDRB Atas Dasar Harga Berlaku dan Indeks Pembangunan Manusia berpengaruh secara signifikan terhadap Tingkat Pengangguran Terbuka

Pengujian Signifikansi Parameter Secara Parsial Hipotesis H_0 ∶ β_jl=β_(j(1+h))=0 dimana j=1,2,3,4 dan h=1,2,3 (Secara parsial variabel Tingkat Partisipasi Angkatan Kerja, Harapan Lama Sekolah, PDRB Atas Dasar Harga Berlaku dan Indeks Pembangunan Manusia tidak berpengaruh secara signifikan terhadap Tingkat Pengangguran Terbuka) H_1 ∶ Minimal terdapat satu β_jl=β_(j(1+h))≠0; dengan j=1,2,3,4 dan h=1,2,3 (Secara parsial variabel Tingkat Partisipasi Angkatan Kerja, Harapan Lama Sekolah, PDRB Atas Dasar Harga Berlaku dan Indeks Pembangunan Manusia berpengaruh secara signifikan terhadap Tingkat Pengangguran Terbuka) Taraf Signifikasi α=0,05 Statistik Uji Uji t Daerah Kritis H_0 ditolak jikap-value<α atau t_hitung>t_tabel Statistik Hitung Tabel 5. Hasil Uji Parsial Parameter Model Dua Titik Knot Variabel Parameter Estimasi t_hitung p-value Keputusan y β_0 95,35872 1,1241 0,2672 Tidak Signifikan x_1 β_1,1 -2,92121 -2,8040 0,0075 Signifikan β_1,2 2,74499 2,6070 0,0125 Signifikan β_1,3 0,79541 1,0391 0,3046 Tidak Signifikan x_2 β_2,1 6,14694 1,2649 0,2127 Tidak Signifikan β_2,2 -5,31978 -1,0836 0,2846 Tidak Signifikan β_2,3 -18,07056 -4,2701 0,0001 Signifikann x_3 β_3,1 0,20600 1,2661 0,2123 Tidak Signifikan β_3,2 -0,21445 -1,2848 0,2057 Tidak Signifikan β_3,3 0,28537 1,2379 0,2225 Tidak Signifikan x_4 β_4,1 0,72836 1,9912 0,0528 Tidak Signifikan β_4,2 -0,76199 -2,0495 0,0465 Signifikan β_4,3 0,90346 4,6685 <0,0001 Signifikan Keputusan H_0 ditolak untuk parameter β_1,1,β_1,2,β_2,3,β_4,2, dan β_4,3 karena p-value<α=0,05 sedangkan H_0 gagal ditolak untuk parameter β_0,β_1,3,β_2,1,β_2,2,β_3,1,β_3,2,β_3,3, dan β_4,1 karena p-value>α=0,05 Kesimpulan Secara parsial dari 13 parameter pada model dua titik knot terdapat 5 parameter yang signifikan, yaitu β_1,1, β_1,2, β_2,3, β_4,2 , dan β_4,3. Kemudian 8 parameter lainnya, yaitu konstanta β_0,β_1,3,β_2,1,β_2,2,β_3,1,β_3,2,β_3,3,dan β_4,1, tidak signifikan secara parsial. Dengan demikian variabel yang berpengaruh signifikan secara parsial adalah Tingkat Partisipasi Angkatan Kerja (X_1), Harapan Lama Sekolah (X_2), dan Indeks Pembangunan Manusia (X_4), sedangkan PDRB Atas Dasar Harga Berlaku (X_3) tidak berpengaruh signifikan

Interpretasi Model Regresi Nonparametrik Spline Truncated Interpretasi dilakukan pada model dua titik knot. Pengaruh setiap variabel diuraikan dengan menganggap variabel prediktor lainnya konstan, sehingga fungsi yang diinterpretasikan hanya memuat suku-suku dari variabel yang bersangkutan. Karena TPT dinyatakan dalam persen, perubahan TPT dinyatakan dalam poin persen. Pengaruh Variabel X_1 (Tingkat Partisipasi Angkatan Kerja) Apabila variabel lain dianggap konstan, pengaruh Tingkat Partisipasi Angkatan Kerja terhadap TPT adalah \(\[\hat{y}_i = -2.92131\,X_{1} + 2.74499\,(X_{1} - 61.13245) + 0.79541\,(X_{1} - 76.28673)_{+}\]\), yang dapat dituliskan per rentang sebagai berikut. \(\[\{-2.92131\,X_{1},\; -0.17632\,X_{1} - 167.80806,\; 0.61909\,X_{1} - 228.48751\}\]\)

\(\[\{\, X_1 < 61.13245,\; 61.13245 \leq X_1 < 76.28673,\; X_1 > 76.28673 \,\}\]\)

Interpretasi: Jika tingkat partisipasi angkatan kerja kurang dari 61,13245, setiap kenaikan 1 poin persen akan menurunkan TPT sebesar 2,92131 poin persen. Jika nilainya antara 61,13245 dan kurang dari 76,28673, setiap kenaikan 1 poin persen akan menurunkan TPT sebesar 0,17632 poin persen. Jika nilainya 76,28673 atau lebih, setiap kenaikan 1 poin persen akan menaikkan TPT sebesar 0,61909 poin persen. Parameter komponen linier dan knot pertama signifikan, sedangkan knot kedua tidak signifikan.

Pengaruh Variabel X_2 (Harapan Lama Sekolah)

Apabila variabel lain dianggap konstan, pengaruh Harapan Lama Sekolah terhadap TPT adalah ŷ = 6,14694X2 - 5,31978(X_2 - 11,38204)+ - 18,07056〖(X_2 - 14,63061)〗_+, yang dapat dituliskan per rentang sebagai berikut. \(\[\{\, 6.14694\,X_{2},\; 0.82716\,X_{2} + 60.54991,\; -17.24339\,X_{2} + 324.93322 \,\}\]\)

\(\[\{\, X_{2} < 11.38204,\; 11.38204 \leq X_{2} < 14.63061,\; X_{2} > 14.63061 \,\}\]\)

Interpretasi: Jika harapan lama sekolah kurang dari 11,38204, setiap kenaikan 1 tahun akan menaikkan TPT sebesar 6,14694 poin persen. Jika nilainya antara 11,38204 dan kurang dari 14,63061, setiap kenaikan 1 tahun akan menaikkan TPT sebesar 0,82716 poin persen. Jika nilainya 14,63061 atau lebih, setiap kenaikan 1 tahun akan menurunkan TPT sebesar 17,24339 poin persen. Hanya komponen knot kedua yang signifikan komponen linier dan knot pertama tidak signifikan.

Pengaruh Variabel X_3 (PDRB Atas Dasar Harga Berlaku)

Apabila variabel lain dianggap konstan, pengaruh PDRB Atas Dasar Harga Berlaku terhadap TPT adalah ŷ = 0,20600X3 - 0,21445(X_3 - 7,69224)+ + 0,28537〖(X_3 - 69,18367)〗_+, yang dapat dituliskan per rentang sebagai berikut. \(\[\{\, 0.20600\,X_{3},\; -0.00846\,X_{3} + 1.64963,\; 0.27691\,X_{3} - 18.09325 \,\}\]\)

\(\[\{\, X_{3} < 7.69224,\; 7.69224 \leq X_{3} < 69.18367,\; X_{3} > 69.18367 \,\}\]\)

Interpretasi: Jika PDRB atas dasar harga berlaku kurang dari 7,69224, setiap kenaikan 1 satuan akan menaikkan TPT sebesar 0,20600 poin persen. Jika nilainya antara 7,69224 dan kurang dari 69,18367, setiap kenaikan 1 satuan akan menurunkan TPT sebesar 0,00846 poin persen. Jika nilainya 69,18367 atau lebih, setiap kenaikan 1 satuan akan menaikkan TPT sebesar 0,27691 poin persen. Seluruh komponen tidak signifikan, sehingga pola pada variabel ini tidak dapat dinyatakan berpengaruh nyata terhadap TPT.

Pengaruh Variabel X_4 (Indeks Pembangunan Manusia)

Apabila variabel lain dianggap konstan, pengaruh Indeks Pembangunan Manusia terhadap TPT adalah ŷ = 0,72836X4 - 0,76199(X_4 - 25,02551)+ + 0,90346〖(X_4- 75,92265)〗_+, yang dapat dituliskan per rentang sebagai berikut. \(\[\{\, 0.72836\,X_{4},\; -0.03362\,X_{4} + 19.06913,\; 0.86984\,X_{4} - 49.52419 \,\}\]\)

\(\[\{\, X_{4} < 25.02551,\; 25.02551 \leq X_{4} < 75.92265,\; X_{4} > 75.92265 \,\}\]\) Interpretasi: Jika indeks pembangunan manusia kurang dari 25,02551, setiap kenaikan 1 poin akan menaikkan TPT sebesar 0,72836 poin persen. Jika nilainya antara 25,02551 dan kurang dari 75,92265, setiap kenaikan 1 poin akan menurunkan TPT sebesar 0,03362 poin persen. Jika nilainya 75,92265 atau lebih, setiap kenaikan 1 poin akan menaikkan TPT sebesar 0,86984 poin persen. Seluruh komponen (linier, knot pertama, dan knot kedua) signifikan.