library(lmtest) 
library(MASS) 
library(car)
library(pastecs)
library(pracma)
library(Matrix)

Pengaturan lokasi file

Ubah dir_out jika folder kerja berbeda. Folder output terpisah digunakan agar berkas hasil analisis 6 variabel tidak bercampur dengan hasil analisis lain. Isi path_data dengan lokasi file data 6 variabel. Jika dikosongkan, file dipilih lewat jendela dialog saat dijalankan chunk demi chunk di RStudio. Saat knit (Knit button) dialog tidak bisa muncul, jadi path_data wajib diisi.

jumlah_x adalah satu-satunya tempat yang menentukan banyaknya variabel bebas.

dir_out   = "D:/Matkul/Regnon/data"                  
path_data = "D:/Matkul/Regnon/data/Dataset 2.txt"   

jumlah_x = 6                          # banyaknya variabel bebas
nama_x   = paste0("X", 1:jumlah_x)    # X1, X2, ..., X6

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)
kolom_perlu = c(nama_x, "Y")
if (!all(kolom_perlu %in% names(data))) {
  stop("Kolom berikut tidak ada di data: ",
       paste(setdiff(kolom_perlu, names(data)), collapse = ", "))
}
data = data[, c("Y", nama_x)]
data
##         Y    X1    X2    X3    X4    X5   X6
## 1   73.84 12.10 34.05  8.50  2.22 64.81 40.2
## 2   76.87 12.45 44.19 10.13  2.20 68.65 32.9
## 3   77.19 13.39 38.66  8.99  1.68 69.07 29.7
## 4   69.08 14.38 26.30 10.04  2.16 69.18 23.6
## 5   78.27 17.86 23.36 10.27  1.46 68.34 33.4
## 6   84.72 13.38 10.06 10.87  1.38 70.14 30.1
## 7   76.69 18.78 31.46  9.29  0.70 67.29 29.5
## 8   77.12 16.64 37.08  9.37  0.56 69.15 25.2
## 9   77.54 17.92 17.76  9.91  1.68 65.61 30.7
## 10  46.10 19.15 40.31  9.02  1.74 67.78 34.1
## 11  80.83 12.12 27.66  9.67  0.46 71.66 32.9
## 12  78.05 15.43 24.17  9.20  1.70 65.48 27.9
## 13  77.06 18.82 20.48  8.39  6.33 65.92 15.4
## 14  79.69 12.42 26.92  8.98  4.54 67.55 34.0
## 15  76.60 17.25 24.00  9.14  2.19 69.60 31.6
## 16  81.16 12.51 14.56  9.58  1.27 70.04 35.9
## 17  46.98 18.31 61.03 10.30  1.15 69.64 32.2
## 18  78.95 18.40 32.95  9.85  0.46 70.60 29.4
## 19  87.96  7.04  0.11 12.74  0.01 72.02 21.7
## 20  73.80 14.59  3.95 10.94  0.20 70.98 25.6
## 21  83.03 10.73  1.81 11.31  0.08 72.06 20.7
## 22  78.05 10.53  6.24 11.27  0.17 69.78 25.6
## 23  41.12 16.41 55.11  8.78  1.40 64.41 29.6
## 24  73.81 11.50 35.19  8.96  1.42 67.90 23.8
## 25  78.14  8.54 51.69 10.19  2.22 69.57 27.4
## 26  77.29  7.01 55.31  9.57  3.22 65.56 15.6
## 27  72.41 15.10 64.15  7.06  0.87 70.34 20.3
## 28  79.92  9.23 26.92  8.97  1.85 69.64 16.9
## 29  82.28  7.98 41.28 10.28  1.51 72.28 24.7
## 30  86.20  3.44 14.42 10.41  0.51 72.31 33.8
## 31  82.42  7.87 41.91  9.78  1.78 72.20 17.7
## 32  76.65  8.21 24.26  9.18  1.82 69.09 11.0
## 33  76.96  7.99 41.36  9.69  1.39 70.77 20.2
## 34  82.50  7.47 36.67 10.08  2.02 70.11 32.6
## 35  84.33  8.04 25.69 10.50  2.06 71.24 28.0
## 36  70.54  8.86 55.14  9.37  3.08 63.47 20.7
## 37  65.87 16.39 63.23  6.99  1.20 69.58 31.8
## 38  75.32  7.54 56.82  9.90  3.57 66.89 28.9
## 39  81.16  8.69 49.20  9.93  3.18 70.27 18.4
## 40  80.35 11.66 47.18  9.20  2.85 72.24 22.4
## 41  85.35  7.44 33.30  9.14  1.51 69.59 14.4
## 42  78.37 11.38 35.54  9.13  0.72 67.88 17.7
## 43  75.14  8.79 42.52  9.74  3.26 67.82 21.8
## 44  76.75  7.89 39.91  9.86  2.67 67.71 17.7
## 45  57.85  8.06 24.70  9.32  2.79 69.54 16.0
## 46  80.30  9.08 37.52  9.28  2.18 70.25  9.6
## 47  73.17 21.79 46.34  7.01  1.41 70.24 20.3
## 48  65.35 22.81 85.31  7.19  0.69 69.96 28.9
## 49  90.25  8.00  2.92 11.59  0.02 73.93  5.8
## 50  89.82  7.24  8.31 11.56  0.04 74.75  7.7
## 51  81.03 11.42  4.27 10.45  0.01 70.18 10.6
## 52  74.59 12.21  1.10 10.13  0.07 64.28  5.7
## 53  88.22  4.79  5.42 11.07  0.05 73.13 19.4
## 54  77.31  9.49 28.45 10.88  0.04 71.63 10.4
## 55  71.32  6.85 37.86 11.11  0.14 70.20 26.1
## 56  66.12 14.78 20.47  8.52  0.25 72.09 18.9
## 57  86.71  7.34 15.76  9.13  2.78 71.52 27.0
## 58  82.56  7.13 32.61  8.57  3.29 69.56 25.4
## 59  82.05  5.88 27.30  9.23  3.62 67.02 28.5
## 60  89.40  4.16 15.74  9.56  1.37 70.84 18.5
## 61  85.08  6.34 23.54  8.86  0.92 69.70 19.4
## 62  86.92  6.60 20.57  9.63  1.95 73.23 20.1
## 63  82.59  6.80 33.84  8.37  3.12 70.30 28.6
## 64  82.09  6.80 33.26  8.37  2.69 68.29 29.4
## 65  53.86 13.72 72.89  7.85  8.11 65.10 33.7
## 66  84.98  5.56 26.93  9.23  2.33 72.24 17.7
## 67  85.60  6.45 26.75  9.36  6.80 68.71 14.7
## 68  80.91  6.92 34.36  9.69  2.10 68.53 29.7
## 69  89.63  4.17  4.19 11.60  0.10 74.16 24.2
## 70  92.90  3.05  2.11 11.27  0.05 74.39 16.3
## 71  83.45  2.27  6.49 10.45  0.44 70.69 19.5
## 72  87.05  5.24 12.33 12.23  0.05 73.23 15.8
## 73  92.86  4.11  2.64 11.77  0.02 75.13 20.1
## 74  89.33  5.44  3.37 11.25  0.09 74.43 19.8
## 75  84.08  4.20 14.32 10.93  0.07 70.95 17.7
## 76  59.69  7.04 24.67  9.44  4.21 71.42  7.6
## 77  60.71  6.06 16.34  8.61  5.19 70.69 12.7
## 78  65.75  6.31 36.88  9.51  4.00 71.79 17.9
## 79  69.30  5.64 73.12  7.77  5.86 68.62 18.8
## 80  71.59  8.15 13.63  9.07  7.97 72.00 10.1
## 81  58.88  9.72 15.70  9.26  4.42 70.84 15.9
## 82  68.67  7.07 37.28  8.89  3.59 70.99 16.6
## 83  77.06  5.23  9.90 10.01  4.77 71.64 10.4
## 84  73.80  8.07 28.94  9.01  4.29 69.13 23.0
## 85  71.15 22.98 89.58  8.47  5.21 68.41 19.6
## 86  92.20  3.16  7.83 11.82  0.08 73.02  8.7
## 87  76.30  3.21 13.10 10.35  1.18 71.67 14.9
## 88  83.76  7.54 32.30  8.25  3.39 70.55  8.7
## 89  75.01  8.90 50.04  8.61  3.48 71.75 14.9
## 90  65.64  8.54 49.63  8.20  4.47 69.70  4.8
## 91  74.13  9.45 28.95  8.42  4.41 71.22 10.1
## 92  68.51  4.43 29.18  9.09  3.41 71.84 12.0
## 93  69.60  9.79 53.10  8.59  4.23 68.67 14.1
## 94  69.99 10.85 49.09  8.15  4.79 66.98 23.7
## 95  73.39  5.29 26.74  8.53  2.66 68.43 13.7
## 96  71.36  6.46 28.31  8.40  5.11 70.49 22.7
## 97  85.88  8.24  9.34 11.34  0.04 73.29 13.5
## 98  87.06  3.00  8.00 10.04  0.32 72.86  4.1
## 99  73.01 11.46 27.60  9.40  1.75 68.85 15.7
## 100 79.54 13.15 31.03  7.51  6.17 69.31 32.5
## 101 75.62 10.93 30.27  8.12  2.57 69.72 25.9
## 102 75.19 15.00 40.77  8.73  1.94 66.87  7.8
## 103 77.66 14.13 39.52  7.85  3.73 68.95 21.9
## 104 79.48 14.90 28.89  8.14  6.17 69.51 16.5
## 105 79.17  9.58 55.26  7.60  5.17 69.76 20.4
## 106 85.17  9.99 37.40  8.40  1.46 69.78  9.3
## 107 75.37 10.36 49.77  8.40  2.53 67.88 23.0
## 108 77.55 13.28 28.50  8.35  1.34 66.33 22.9
## 109 67.42 11.80 71.69  7.83  2.38 65.73 32.6
## 110 78.79 10.91 31.52  7.53  1.98 68.96 15.4
## 111 59.58 18.26 44.73  7.70  6.83 66.37 33.1
## 112 83.62 10.22  2.15 11.09  0.04 71.99 18.9
## 113 57.79  8.88 41.12  9.68  0.87 67.70 23.3
## 114 66.10 12.65 33.15  9.51  0.26 70.25 17.5
## 115 68.11 11.23 40.09 10.31  0.24 71.27 15.4
## 116 74.91 17.51 59.02  9.53  1.05 68.40 24.0
## 117 73.11 14.79 55.84  9.31  1.16 69.22 28.6
## 118 72.62 11.29 43.03  8.22  3.15 68.77 21.6
## 119 74.75 17.83 46.75  8.25  3.87 67.27 14.3
## 120 71.61 18.00 57.84  8.20  2.06 68.35 26.0
## 121 76.57 10.76 36.02  8.87  4.18 67.30 27.1
## 122 77.06 11.15 44.85  8.49  3.00 63.93 15.7
## 123 72.43 14.12 55.68  8.41  0.95 68.46 22.1
## 124 62.14  9.40 60.54  7.57  1.55 68.52 23.2
## 125 78.72 14.71 12.26 11.90  0.05 70.74  6.7
## 126 84.46 12.79 20.90  8.07  0.92 69.97 10.3
## 127 84.93 10.65 31.53  8.00  1.41 70.29 16.7
## 128 76.82 17.17 60.90  8.55  1.23 69.83 23.5
## 129 76.18 11.17 52.76  8.57  1.90 68.13 24.6
## 130 88.78  8.04 22.06  7.89  2.34 70.42  9.8
## 131 76.40 10.52 53.84  7.35  2.13 69.23 17.1
## 132 85.22 13.80 30.49  8.34  2.07 71.25 14.2
## 133 79.61 11.02 44.87  7.83  2.51 69.91 22.7
## 134 80.85 12.89 43.85  8.21  0.94 69.74 10.0
## 135 87.35  9.14 11.49  8.56  0.37 71.05 15.8
## 136 88.18  6.73 22.71  7.20  3.02 68.75  5.0
## 137 83.74  7.25 55.59  8.05  1.35 70.42 10.5
## 138 75.77 13.49 59.30  8.75  4.24 64.29 16.1
## 139 84.64  7.77  8.71 10.94  0.03 71.91 13.4
## 140 85.78  7.28  9.50 10.80  0.04 72.12  7.1
## 141 74.35  4.32 11.86  8.79  1.69 71.60 23.2
## 142 62.34  6.46  8.85  9.16  2.66 71.54 20.8
## 143 84.87  3.11 23.99  7.49  5.04 68.98 20.7
## 144 60.38  5.29 14.30  7.48  2.89 72.11 18.2
## 145 60.25  2.71 20.73  7.87  3.40 70.43 20.6
## 146 62.02  6.73 14.77  9.09  3.85 72.59 17.3
## 147 87.27  4.27  7.03 10.39  0.07 73.96 20.7
## 148 60.42  5.90 20.42  9.82  1.26 71.09 21.6
## 149 62.68  5.95 12.19  9.20  0.84 72.01 17.9
## 150 60.51  5.25  8.26  9.28  2.67 66.22 16.1
## 151 53.02 11.26 23.63  7.92  3.31 63.50 20.5
## 152 55.34  6.95 45.37  8.25  1.16 68.10 15.2
## 153 88.83  5.02  2.72 11.12  0.20 73.94 16.1
## 154 83.22  7.95 12.38 10.90  0.10 72.85 15.2
## 155 58.05 13.13  1.54  9.01  0.05 69.61 18.6
## 156 91.63  4.68  2.40 11.33  0.00 74.81 19.1
## 157 87.42  6.78  0.86 10.65  0.02 73.59 19.8
## 158 91.35  4.09  2.09 10.94  0.01 74.16 17.1
## 159 90.52  3.10 13.99 11.63  0.01 74.78 16.6
## 160 91.81  4.20  8.10 11.77  0.01 75.12 16.8
## 161 70.01  7.27 31.89  8.67  0.29 71.92 27.6
## 162 78.59  7.01 44.67  7.62  0.87 71.83 27.0
## 163 80.60 10.22 32.56  7.13  0.84 70.79 11.4
## 164 80.63  6.40 22.97  9.28  0.31 74.27 29.2
## 165 78.99  9.77 46.60  8.04  0.63 72.07 24.1
## 166 78.47 10.28 35.61  8.24  0.98 70.19 20.7
## 167 83.20  7.42 21.45  8.32  0.64 72.57 25.4
## 168 81.43 12.12 29.18  7.94  0.39 74.29 23.4
## 169 82.77 11.20 15.84  7.97  0.18 72.76 22.9
## 170 82.58 11.21 26.26  7.74  0.43 71.05 24.1
## 171 86.88  9.36 17.60  8.89  0.61 73.19 14.4
## 172 86.52 12.13  6.41  7.09  0.57 72.46 18.4
## 173 85.65  9.52 27.91  7.67  0.65 73.24 18.7
## 174 80.19  8.46 29.17  8.04  0.30 71.74 24.0
## 175 89.04  7.87 11.45  8.13  0.27 72.90 17.1
## 176 87.48  4.93  6.36  9.79  0.13 74.30 23.2
## 177 75.79 10.52 24.46  8.16  0.48 73.10 25.1
## 178 83.86  8.98 22.31  8.16  0.98 72.17 23.9
## 179 85.53  6.67  9.88 10.36  0.02 74.45 18.2
## 180 80.90  7.50 12.32 10.26  0.02 73.11 26.9
## 181 91.55  3.96  4.68 10.91  0.01 75.04 16.3
## 182 83.78  9.16  3.34 10.35  0.01 73.08 19.9
## 183 93.90  4.10  7.14 11.69  0.02 75.79 10.3
## 184 89.81  2.38 19.52 11.42  0.03 75.23 14.3
## 185 88.68  4.66  6.98 11.12  0.01 74.80 24.5
## 186 74.37 11.53 16.47  9.64  0.06 72.92 27.1
## 187 78.92  6.14  9.82  8.77  0.12 71.80 23.6
## 188 84.69 10.99 27.64  7.46  0.54 74.25 18.5
## 189 80.74 12.53 30.51  8.04  0.22 73.98 20.9
## 190 78.47 14.99 28.37  7.65  0.30 73.37 26.0
## 191 79.40 14.90 23.50  7.15  0.51 74.47 19.9
## 192 81.21 16.34 33.23  7.74  0.33 73.83 21.9
## 193 86.22 11.33 23.10  8.34  0.49 75.21 20.6
## 194 77.87 15.58 20.14  7.07  0.59 72.17 29.2
## 195 80.20 10.96 26.04  7.80  0.48 74.20 25.8
## 196 87.70  9.81 19.18  7.98  0.37 76.23 21.5
## 197 85.64 12.28 28.11  9.08  0.17 77.07 24.5
## 198 90.93  7.58 17.61  9.91  0.12 77.86 24.3
## 199 88.91 10.94 21.08  7.66  0.72 76.56 19.5
## 200 89.67  9.79 12.04  9.05  0.32 77.72 22.2
## 201 89.37 12.87  8.69  7.83  0.29 75.97 18.4
## 202 87.29 11.72  9.41  7.35  0.53 75.04 20.2
## 203 88.53 11.49  8.14  7.36  0.84 74.71 21.2
## 204 86.85 14.17  7.08  7.86  0.51 74.77 19.5
## 205 90.88  9.31  9.89  7.96  0.38 76.39 18.5
## 206 88.81  7.24 16.34  9.32  0.13 76.86 15.7
## 207 87.00  6.61 23.56  8.39  0.36 76.04 18.9
## 208 90.47 12.01  4.64  8.47  0.38 75.60  9.5
## 209 85.57  7.17 21.70  8.46  0.38 75.95 18.8
## 210 78.91  9.26 12.34  7.87  0.43 75.77 25.1
## 211 84.83  9.39 19.24  7.96  0.35 74.58 22.4
## 212 84.77  8.92 20.88  7.38  0.46 74.85 24.7
## 213 80.65  9.67 26.99  7.70  0.41 73.87 28.6
## 214 81.81 15.03 21.40  6.84  0.40 73.85 15.3
## 215 83.71  7.30 18.31  7.55  0.27 72.00 21.5
## 216 78.79 15.78 25.43  6.68  0.43 69.96 21.6
## 217 91.41  6.11  6.68 11.08  0.01 77.22 15.4
## 218 87.67  8.44 10.65 10.91  0.01 77.63 16.0
## 219 91.35  4.66 10.74 11.30  0.03 77.93 16.9
## 220 92.74  4.23  4.00 10.57  0.03 77.90 15.7
## 221 78.27  6.81 21.88  9.53  0.03 74.60 28.2
## 222 85.73  7.68  1.64  9.90  0.02 74.77 22.3
## 223 85.73 15.64 18.44  9.17  0.33 75.29 21.2
## 224 82.92 11.96 18.86  9.97  0.15 73.94 20.5
## 225 82.97 15.60 41.29  7.32  0.78 74.24 22.2
## 226 84.91  7.52 17.85 11.10  0.07 75.08 12.4
## 227 84.21  6.49 26.33 12.14  0.01 74.91 16.8
## 228 82.94 13.65 28.82  7.95  1.04 72.86 20.9
## 229 88.74  9.53 17.71  7.63  0.49 73.55 16.1
## 230 83.17 10.63 36.23  7.80  0.68 74.64 15.8
## 231 87.35  6.53 25.05  8.72  0.29 74.91 21.5
## 232 86.43  8.69 18.29  7.95  0.71 74.34 20.3
## 233 81.19 10.72 31.55  8.37  0.46 73.27 16.8
## 234 81.09  9.45 28.02  7.97  0.53 73.26 19.5
## 235 79.58  8.93 33.64  7.36  0.62 70.96 29.9
## 236 78.97  9.51 32.29  6.66  0.58 70.03 29.7
## 237 85.77  7.34 17.57  7.82  0.92 71.38 21.9
## 238 78.44 13.34 35.14  6.40  0.69 67.60 17.0
## 239 80.22 11.90 36.32  6.90  0.79 69.94  4.1
## 240 74.22 17.19 34.59  6.49  0.71 68.12 35.4
## 241 80.31  9.24 20.80  7.56  0.42 70.81 27.9
## 242 84.49  5.00 12.26 10.82  0.09 74.69  8.4
## 243 87.32  9.80 11.52  9.09  0.30 73.25 16.2
## 244 86.43  9.15 16.41  8.65  0.29 73.22 18.0
## 245 84.88 10.89 26.30  8.27  0.52 72.28 17.1
## 246 86.22 11.04 20.54  7.81  0.65 72.28 16.5
## 247 87.98  9.80 17.53  8.48  0.38 73.29 19.2
## 248 87.53 14.40 11.10  7.81  0.56 73.20 14.0
## 249 87.63 12.18 10.93  7.44  0.67 72.57 14.1
## 250 85.85 14.91  7.08  7.46  0.79 72.36 17.8
## 251 90.30 12.42  4.97  8.29  0.40 73.22  9.4
## 252 90.90 10.96  0.79 10.20  0.27 73.30 15.4
## 253 76.02 19.35 34.55  6.04  0.49 70.79 10.2
## 254 78.97 21.76 11.31  5.46  0.55 68.64 14.1
## 255 79.08 13.85 10.80  7.28  0.32 68.31 25.1
## 256 79.77 18.70 21.19  5.70  0.66 72.47 16.7
## 257 76.67  7.15 40.23 10.77  0.02 74.67 18.6
## 258 80.80  7.30 27.37 10.87  0.03 74.66 17.7
## 259 88.76  4.26 11.17 11.19  0.02 74.13 17.3
## 260 78.62  6.48  8.81  9.60  0.05 70.99 31.8
## 261 84.16  6.60  8.66  9.73  0.04 72.31 11.7
## 262 89.30  5.77  9.94 11.32  0.01 74.10 11.0
## 263 92.29  4.74  1.25 11.53  0.02 73.44 12.8
## 264 93.06  4.65  0.00 10.71  0.02 74.75  1.6
## 265 81.31  3.31 20.60 10.05  0.19 73.29 23.1
## 266 75.63  9.27 53.73  7.26  1.14 65.58 28.6
## 267 72.76  8.68 58.52  6.95  1.01 68.13 35.5
## 268 77.60  6.93 13.62  9.16  0.11 70.65 26.4
## 269 81.39  4.85 27.36  8.14  0.50 65.60 23.9
## 270 85.92  5.89  7.38 10.76  0.02 72.24 17.6
## 271 80.12  3.98 11.17 10.32  0.08 67.39 22.0
## 272 71.95  6.20 25.44  8.72  0.10 68.98 22.3
## 273 88.67  2.57 20.29 11.44  0.02 73.11  9.2
## 274 87.64  4.96 18.29  8.40  0.77 73.20  8.7
## 275 92.51  4.70 15.09  9.00  0.35 74.48  6.3
## 276 92.90  2.30  7.11 10.88  0.09 75.88  4.9
## 277 92.77  4.47  5.08  9.66  0.13 74.52  6.3
## 278 87.47  5.61 13.91  8.09  0.21 72.28  4.9
## 279 77.19  5.28 37.96  7.67  0.34 71.33 10.2
## 280 83.97  6.56 24.50  6.22  0.60 71.25  6.4
## 281 83.26  5.85 16.00  7.35  0.55 72.70  6.2
## 282 96.37  2.68  0.49 11.37  0.01 75.69 10.8
## 283 75.74 13.67 28.81  7.24  0.52 68.08 19.9
## 284 79.50 12.93 22.48  6.97  0.37 67.12 17.6
## 285 73.32 15.63 35.08  7.59  0.35 66.95 27.6
## 286 85.82 13.91  7.04  8.83  2.41 68.54 25.7
## 287 81.24 12.62 37.61  9.07  1.26 67.76 12.4
## 288 78.26 14.39 25.58  8.83  1.41 67.27 36.7
## 289 86.47 12.95  9.76  8.88  1.83 69.20 10.5
## 290 68.39 25.80 37.84  6.36  0.87 68.17 33.5
## 291 80.15  8.62  6.16  9.45  0.01 72.55 25.6
## 292 75.53  8.67 16.57 10.82  0.19 71.19 31.8
## 293 70.45 21.78 35.11  7.85  3.69 65.64 38.4
## 294 67.02 25.18 32.28  7.49  2.37 66.89 50.1
## 295 73.61 21.85 24.02  8.48  1.63 67.61 42.7
## 296 71.21 14.30 36.62  7.65  0.96 65.63 48.1
## 297 63.81 19.97 55.04  8.26  1.87 62.35 39.3
## 298 68.61 11.77 27.31  7.91  1.05 65.96 37.2
## 299 77.22 12.56 20.42  7.32  0.90 68.30 33.3
## 300 72.93 22.86 21.14  8.51  1.11 66.12 27.5
## 301 82.72 12.06 24.86  9.01  1.45 68.71 21.3
## 302 75.69 19.69 17.70  7.83  0.59 67.63 36.8
## 303 70.98 28.08 43.49  8.11  4.48 65.82 26.3
## 304 71.31 27.17 26.10  7.33  0.89 67.57 42.5
## 305 70.11 24.78 37.63  7.68  1.47 67.87 35.1
## 306 71.27 27.05 26.04  8.03  1.62 65.60 39.8
## 307 78.00 16.82 32.38  8.20  1.91 68.00 36.2
## 308 75.20 12.33 43.78  8.29  1.56 67.91 24.9
## 309 65.96 31.78 57.42  7.40  2.89 68.87 39.5
## 310 62.53 27.48 63.65  6.95  1.14 68.99 44.3
## 311 66.92 25.06 48.86  8.22  1.22 68.49 43.7
## 312 56.66 28.37 53.35  7.47  0.92 61.06 36.9
## 313 71.78 14.42 43.40  7.42  0.90 65.67 47.7
## 314 75.94  8.61 21.61 11.36  0.04 70.52 29.9
## 315 70.83  7.08 92.51  6.71  3.67 69.76 30.8
## 316 73.85  5.21 81.54  7.70  2.55 71.74 27.2
## 317 78.51  4.79 43.57  7.70  9.04 71.77 22.1
## 318 77.17  9.25 45.82  8.05 12.71 71.45  0.0
## 319 76.17  8.18 38.35  7.89 12.07 72.41 24.8
## 320 74.43  8.16 41.91  8.16 22.35 72.88 16.7
## 321 81.24  6.28 40.03  8.15  4.09 74.20 32.7
## 322 76.96  9.97 54.82  7.60  7.32 73.77 31.0
## 323 73.84  5.90 67.93  7.18  7.16 72.74 12.2
## 324 59.56 11.12 46.91  7.63 10.67 73.32 35.3
## 325 76.53  9.13 60.21  6.58  7.70 69.22 22.9
## 326 68.90  4.23 85.45  7.50  5.49 71.26 25.4
## 327 72.55  4.45 57.92 10.34  0.03 73.87 16.7
## 328 68.27  4.70 47.34  8.50  0.30 72.81 20.1
## 329 62.27  4.18 13.52  8.94  8.01 71.28 17.9
## 330 73.03  5.69 26.11  7.92  8.45 70.39 35.5
## 331 82.66  5.21 36.50  8.50 11.12 69.23 16.2
## 332 67.09  4.72 34.12  9.40  6.39 67.75 23.9
## 333 81.65  5.35 19.30  8.95  9.96 71.68 15.3
## 334 77.99  4.99 34.52  9.25 21.48 66.43 34.0
## 335 65.03  7.12 30.94  7.78 18.29 69.63 25.8
## 336 61.78  3.96 23.05  8.51  8.22 72.03 29.1
## 337 59.34  3.12 24.79  8.63 12.59 69.84 13.2
## 338 56.38  5.47 43.53  9.48 10.31 70.96 12.9
## 339 81.88  4.58 44.92  8.58 14.03 68.60 24.0
## 340 51.29  6.44 49.56  8.38 23.69 69.94 21.0
## 341 81.16  6.63 33.78  9.96  4.63 68.91 21.7
## 342 80.69  3.44  8.72 11.69  1.13 73.70 28.0
## 343 80.59  3.73 28.97  8.09  2.79 70.11 41.7
## 344 75.34  4.32 22.59  7.66  8.06 69.77 20.1
## 345 81.54  2.44 28.92  8.18  2.01 68.01 30.1
## 346 82.85  4.60 35.70  7.90  2.63 66.80 15.9
## 347 88.58  3.19 24.05  8.13  2.40 71.16 14.4
## 348 83.19  4.01 30.53  8.19  1.31 66.90 25.4
## 349 81.30  5.84 40.01  8.46  1.25 66.86 13.0
## 350 81.20  6.25 27.66  8.06  0.95 64.97 36.0
## 351 85.94  5.77 20.34  9.21  3.12 71.28 18.1
## 352 83.15  4.12 11.33  8.53  2.95 70.94 25.1
## 353 82.70  5.22 12.79  8.36  2.35 68.40 33.4
## 354 85.62  4.63  0.01 10.05  0.02 71.89 26.5
## 355 86.34  3.92 13.93 11.05  0.18 72.62 12.4
## 356 80.04  9.11 16.49  9.35  7.27 72.99 22.4
## 357 87.17  7.61  2.51  9.15 10.69 72.75 17.6
## 358 81.91  5.54  6.56  9.54 14.55 72.41 23.0
## 359 60.87  9.72 21.44  8.90 10.26 73.19 22.0
## 360 61.64  9.06 12.47  9.40 13.67 73.57 29.0
## 361 88.11  6.97  4.31  8.65  3.81 71.83 24.6
## 362 56.53 11.38 12.76  9.10 47.25 72.46  0.0
## 363 91.23  2.31  2.06 10.67  0.13 74.89 21.6
## 364 89.68  4.81  0.89 11.41  0.16 74.68 24.4
## 365 88.89  4.11  0.01 11.12  0.13 74.67 27.4
## 366 76.61  8.99 18.80  9.06 13.78 72.78 22.6
## 367 74.67  6.54 27.49  9.22 42.89 71.51 20.5
## 368 78.80  5.53 30.10  8.53 13.26 71.42 15.8
## 369 61.25  4.62 16.79  8.66 10.43 71.53 15.1
## 370 87.53  6.10  3.61 10.57  0.17 74.08 14.8
## 371 84.02  7.37 28.53  8.81  3.02 70.07 24.8
## 372 79.61  6.87 20.89 10.61  0.71 71.82 23.1
## 373 60.47 11.01 27.43  9.23  0.65 70.78 19.0
## 374 79.36  8.46 29.79 10.01  1.41 70.91 19.3
## 375 72.82  8.89 21.34  9.76  2.02 70.71 26.4
## 376 78.79  6.65 10.85 10.49  0.78 71.99 10.9
## 377 75.82 11.84 13.73  9.18  1.40 70.86 15.0
## 378 80.12  7.90 26.84  8.92  2.91 68.33 27.8
## 379 53.11  8.76 49.95  9.68  0.44 71.59 24.9
## 380 75.22  5.80 23.25  8.61  1.14 68.51 28.4
## 381 71.81 12.04 27.48  8.65  3.16 64.95 33.0
## 382 87.56  5.79  2.91 11.25  0.03 72.50 21.8
## 383 82.00  6.56  4.42 10.11  0.29 71.68 19.5
## 384 83.92  5.60 19.78 11.24  0.19 72.84 10.5
## 385 80.21  5.03 17.60 10.08  0.11 71.34 20.5
## 386 85.14  6.94 30.04  8.83  3.99 71.02 29.1
## 387 84.60 15.16 15.74  9.53  5.38 71.33 26.5
## 388 73.97 16.25 39.70  8.20  4.74 67.86 34.1
## 389 79.39 12.85 31.23  8.87  2.60 66.78 29.0
## 390 79.97 13.36 17.55  9.58  4.27 69.73 30.0
## 391 81.44 12.31 14.99  8.86  2.97 69.37 26.0
## 392 66.50 12.90 14.24  8.79  2.79 66.87 27.7
## 393 78.91 14.91 30.86  8.34  3.29 64.62 28.5
## 394 73.78 16.74 13.32  8.93  4.41 66.41 21.3
## 395 80.06 12.83 43.58  9.39  4.20 70.35 26.4
## 396 51.91 14.15 25.14  8.61  0.96 66.08 25.6
## 397 81.21 12.85 26.66  8.88  8.65 69.97 24.7
## 398 82.43  6.56 13.53 11.43  0.10 71.45 22.1
## 399 72.03 12.27 14.34  8.62  0.77 69.04 31.3
## 400 83.73  7.22 22.48  8.38  0.51 68.84 33.7
## 401 86.59  9.18 12.43  7.53  0.28 71.11 15.8
## 402 81.67 13.06 11.07  7.75  0.39 66.99 36.3
## 403 84.63  8.29 10.38  8.00  0.27 67.90 35.4
## 404 87.53  7.42 20.29  8.84  0.74 70.89 21.1
## 405 82.31  8.55 22.62  8.19  0.48 67.92 33.5
## 406 85.66 10.53 22.10  7.85  1.26 67.85 26.0
## 407 83.73  9.65 21.50  8.15  0.74 69.45 34.7
## 408 81.00 13.40 24.18  8.87  0.40 67.36 30.0
## 409 86.67  8.46 19.02  8.91  0.99 69.55 22.1
## 410 87.90  7.48 22.95  8.58  0.86 70.50 24.0
## 411 86.65  6.73 20.04  7.98  1.47 68.10 27.4
## 412 87.92  5.14 24.51  8.43  0.99 70.74 26.4
## 413 86.94  8.90 22.62  8.82  0.91 70.49 17.6
## 414 80.31 12.69 26.74  8.96  1.23 71.34 34.9
## 415 82.23 12.71 34.16  9.19  1.23 71.00 32.1
## 416 76.88 12.48 48.81  8.63  1.49 73.99 36.9
## 417 85.66 12.66 20.67  8.52  4.12 69.36 15.5
## 418 87.73  6.93 20.83  8.83  3.09 71.19 26.0
## 419 80.25 12.12 40.06  9.03  0.84 73.83 28.7
## 420 87.95  5.07  2.39 11.33  0.01 72.60 25.6
## 421 82.76  5.34  6.50 10.82  0.07 71.78 26.7
## 422 83.05  7.69  3.66 11.29  0.14 71.39 25.5
## 423 83.69 11.80 17.27  9.82  1.94 71.42 23.8
## 424 85.89 13.02 17.39  9.64  2.07 70.44 27.8
## 425 71.93 14.07 27.59  8.24  0.83 70.56 29.2
## 426 72.59 13.77 17.89  8.81  1.64 68.56 37.2
## 427 84.41 11.26 10.60  8.71  3.16 71.02 33.6
## 428 85.33 10.73  5.66  8.39  3.27 69.34 30.4
## 429 62.54 14.81 30.22  8.62  0.50 70.72 31.9
## 430 70.26 13.57  9.23  9.22  2.58 70.47 31.8
## 431 79.71 13.48 12.53  9.54  4.72 69.68 24.7
## 432 81.40 14.06 11.93  8.94  2.36 71.02 33.9
## 433 85.54 14.04 19.30  8.83  4.62 73.01 31.3
## 434 54.01 15.90 21.11  9.33  1.80 68.52 31.3
## 435 79.06 14.03 34.15  8.58  1.15 70.46 24.4
## 436 67.07 15.43 10.97  6.88  1.07 67.90 36.8
## 437 70.01 14.76 48.86  7.89  0.56 67.86 37.1
## 438 89.67  4.59  3.79 12.08  0.08 74.07 25.7
## 439 80.49  7.53  5.69 11.10  0.24 71.51 29.7
## 440 79.50 17.48 16.35  8.63  1.06 68.09 34.7
## 441 81.91 18.38 16.23  8.21  1.97 69.92 16.0
## 442 80.32 15.51 11.21  8.91  1.84 69.24 27.1
## 443 81.71 17.64  3.40  8.28  4.97 64.95 18.4
## 444 78.88 17.03 13.44  7.85  2.24 66.67 30.5
## 445 86.50  5.64  3.53 10.58  0.04 73.25 23.6
## 446 57.34  4.79 17.14  8.51  4.10 67.33 27.9
## 447 81.47  7.57 24.96  8.31  2.25 68.66 32.8
## 448 73.19 14.31 70.51  8.58  2.49 71.45 37.6
## 449 75.87 16.08 30.23  8.01  0.90 63.20 28.1
## 450 65.80 14.54  9.18  9.66  0.77 62.56 30.5
## 451 78.29  7.32 20.96  7.88  2.99 69.37 27.9
## 452 71.92 17.84 22.59 10.13  4.12 67.04 29.4
## 453 49.43 21.79 32.96  9.74  1.27 65.78 34.0
## 454 49.94 24.47 24.47 10.35  4.93 63.99 25.1
## 455 80.21 16.53 28.66  9.34  4.57 67.03 20.3
## 456 70.57 21.08 39.59  8.88  4.38 60.46 27.5
## 457 61.29 22.39 45.87  9.78  4.36 62.61 31.4
## 458 43.15 24.21 30.55  9.43 11.36 63.57 40.6
## 459 65.95 28.78 39.73  9.31  5.56 63.39 29.9
## 460 53.32 15.28 36.60  8.92  4.08 66.96 35.5
## 461 84.56  5.25 13.20 12.05  0.09 71.37 20.7
## 462 59.11 20.68 12.48 10.70  0.35 66.65 32.0
## 463 53.07  8.74 42.60  8.65  3.39 66.91 26.1
## 464 52.96 11.44 35.58  9.48  3.12 65.06 29.5
## 465 62.34  4.62 27.66  8.87  2.80 70.11 24.3
## 466 52.69  5.68 38.45  8.41  4.27 66.50 30.4
## 467 51.76  8.17 47.20  9.34  4.27 63.94 18.8
## 468 79.63 12.47 36.14  8.88  8.88 69.90 19.0
## 469 60.71  5.38 33.98  7.91  4.00 68.10 11.7
## 470 48.28  7.31 45.09  8.62  5.23 62.79 30.6
## 471 88.24  3.39  6.54 11.74  0.12 71.70 21.1
## 472 64.68  6.35 37.75 10.17  1.44 70.10 21.3
## 473 84.07 10.01 23.56 10.06 32.29 67.60 23.8
## 474 30.40 34.71 77.16  6.19  3.68 60.50 33.2
## 475 66.89 11.45 38.66  9.99 13.14 67.78 26.9
## 476 66.97 23.35 21.23 10.45 10.20 68.73 22.2
## 477 46.80 25.89 27.44  9.16  3.34 69.63 39.9
## 478 49.23 23.53 39.30 10.17  1.82 68.74 33.7
## 479 24.19 35.60 88.21  4.51 29.20 65.90  0.0
## 480 22.27 35.39 99.01  3.97  7.96 67.22  0.0
## 481 83.64 13.55 20.61  9.96  9.57 72.83 24.7
## 482 63.07 13.21 40.22 10.03 37.92 67.07 26.5
## 483 54.21 15.68 75.39  8.41 18.50 67.24 34.4
## 484 25.07 29.79 79.27  3.52 39.40 64.99  0.0
## 485 25.62 36.08 66.40  4.13 45.09 66.42  0.0
## 486 22.83 31.57 97.09  2.38 10.42 66.33  0.0
## 487 47.38 29.16 59.99  8.86 35.11 66.92 26.2
## 488 43.19 19.80 39.30  9.16 35.64 60.97 31.4
## 489 35.44 25.72 81.80  6.96 45.27 65.90 28.6
## 490 45.99 24.36 83.74  6.30 40.28 59.19  0.0
## 491 32.69 36.99 63.52  9.27  1.64 66.66 37.7
## 492 23.09 29.63 98.98  8.59 86.82 58.54 40.0
## 493 21.51 35.42 99.00  5.00 32.55 64.14 33.0
## 494 37.80 30.97 50.98  6.78 17.30 65.95  0.0
## 495 21.33 36.94 99.62  4.28  8.67 66.51 39.5
## 496 17.10 37.09 98.15  4.64 26.28 55.72  0.0
## 497 30.12 36.44 21.79  1.43 53.48 66.40  0.0
## 498 31.37 29.20 66.66  4.30 12.95 66.39  0.0
## 499 14.14 40.01 92.00  1.28 60.62 66.12  0.0
## 500 21.35 38.66 92.00  2.23 20.93 65.93 50.2
## 501 78.35 10.50  9.55 11.68  0.35 71.07 21.3
## 502 50.88 26.88 52.18  9.07  6.37 66.89 27.3
## 503 71.81 18.73 43.21  9.64  2.07 69.55  0.0
## 504 48.20 21.38 50.37 10.78 10.15 69.02 30.5
## 505 40.39 18.11 79.81  8.23 10.30 67.01 31.3
## 506 54.42 16.76 49.35  8.55  9.53 65.41 30.9
## 507 43.12 28.24 42.97  9.90 24.62 61.76 19.6
## 508 36.76 28.90 72.04  8.44 10.80 60.86 19.7
## 509 48.19 14.57 43.79  9.86 24.48 65.62 25.7
## 510 45.92 31.23 47.00  8.33 56.66 61.14 31.8
## 511 41.27 30.28 61.00  9.97 15.17 65.82  0.0
## 512 74.91 27.80 18.33  8.48  5.89 68.09 20.4
## 513 35.53 32.29 58.55  6.35 20.75 67.71 34.7
## 514 76.32 14.41  5.16 11.63  0.17 71.92 31.0

Statistika Deskriptif dan Deteksi Multikolinieritas

stat.desc(data)
##                         Y           X1           X2           X3           X4
## nbr.val      5.140000e+02  514.0000000 5.140000e+02 5.140000e+02  514.0000000
## nbr.null     0.000000e+00    0.0000000 1.000000e+00 0.000000e+00    1.0000000
## nbr.na       0.000000e+00    0.0000000 0.000000e+00 0.000000e+00    0.0000000
## min          1.414000e+01    2.2700000 0.000000e+00 1.280000e+00    0.0000000
## max          9.637000e+01   40.0100000 9.962000e+01 1.274000e+01   86.8200000
## range        8.223000e+01   37.7400000 9.962000e+01 1.146000e+01   86.8200000
## sum          3.860677e+04 5910.9500000 1.474862e+04 4.549390e+03 2072.5100000
## median       7.902500e+01    9.6150000 2.500500e+01 8.800000e+00    1.2600000
## mean         7.511045e+01   11.4999027 2.869381e+01 8.850953e+00    4.0321206
## SE.mean      6.364823e-01    0.3155689 8.844743e-01 6.816275e-02    0.3855870
## CI.mean.0.95 1.250432e+00    0.6199663 1.737637e+00 1.339125e-01    0.7575239
## var          2.082264e+02   51.1860318 4.020996e+02 2.388127e+00   76.4201684
## std.dev      1.443005e+01    7.1544414 2.005242e+01 1.545357e+00    8.7418630
## coef.var     1.921178e-01    0.6221306 6.988412e-01 1.745977e-01    2.1680559
##                        X5           X6
## nbr.val      5.140000e+02 5.140000e+02
## nbr.null     0.000000e+00 1.500000e+01
## nbr.na       0.000000e+00 0.000000e+00
## min          5.572000e+01 0.000000e+00
## max          7.793000e+01 5.020000e+01
## range        2.221000e+01 5.020000e+01
## sum          3.608291e+04 1.148700e+04
## median       7.045000e+01 2.220000e+01
## mean         7.020021e+01 2.234825e+01
## SE.mean      1.493169e-01 4.045886e-01
## CI.mean.0.95 2.933478e-01 7.948544e-01
## var          1.145990e+01 8.413767e+01
## std.dev      3.385248e+00 9.172659e+00
## coef.var     4.822276e-02 4.104419e-01
rumus = reformulate(nama_x, response = "Y")       # Y ~ X1 + X2 + ... + X6
model = eval(bquote(lm(.(rumus), data = data)))
model
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4 + X5 + X6, data = data)
## 
## Coefficients:
## (Intercept)           X1           X2           X3           X4           X5  
##    26.47106     -0.61512     -0.21398     -0.21664     -0.42017      0.92267  
##          X6  
##     0.03101
summary(model)
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4 + X5 + X6, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -24.041  -3.610   2.047   5.431  21.434 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 26.47106   11.16110   2.372   0.0181 *  
## X1          -0.61512    0.07038  -8.740  < 2e-16 ***
## X2          -0.21398    0.02453  -8.721  < 2e-16 ***
## X3          -0.21664    0.29665  -0.730   0.4656    
## X4          -0.42017    0.04933  -8.518  < 2e-16 ***
## X5           0.92267    0.14182   6.506 1.85e-10 ***
## X6           0.03101    0.04248   0.730   0.4657    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.209 on 507 degrees of freedom
## Multiple R-squared:  0.6801, Adjusted R-squared:  0.6763 
## F-statistic: 179.7 on 6 and 507 DF,  p-value: < 2.2e-16
vif(model)
##       X1       X2       X3       X4       X5       X6 
## 1.930060 1.842417 1.599757 1.415399 1.754443 1.155668

Scatterplot

label_x = setNames(nama_x, nama_x)    # label bawaan: nama kolomnya sendiri

for (v in names(label_x)) {
  plot(data[[v]], data$Y,
       main = paste0("Scatterplot Y dan ", label_x[[v]]),
       xlab = ifelse(label_x[[v]] == v, v, paste0(label_x[[v]], " (", v, ")")),
       ylab = "Y",
       col  = "black")
  abline(lm(data$Y ~ data[[v]]), col = "darkred", lwd = 3)
}

Fungsi Bersama

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
  })
}
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, ..., Xm, knot Xm
  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                                                             
## 60.891404 15.000000 13.823061 30.495918  4.788163 26.577551 62.518980 15.367347 
## Nilai GCV 10 terkecil pertama 
##            GCV knot_ke                                                      
##  [1,] 60.89140      15 13.82306 30.49592 4.788163 26.57755 62.51898 15.36735
##  [2,] 60.90658      16 14.59327 32.52898 5.022041 28.34939 62.97224 16.39184
##  [3,] 60.93708      17 15.36347 34.56204 5.255918 30.12122 63.42551 17.41633
##  [4,] 61.00914      18 16.13367 36.59510 5.489796 31.89306 63.87878 18.44082
##  [5,] 61.03068      19 16.90388 38.62816 5.723673 33.66490 64.33204 19.46531
##  [6,] 61.03475      14 13.05286 28.46286 4.554286 24.80571 62.06571 14.34286
##  [7,] 61.08612      20 17.67408 40.66122 5.957551 35.43673 64.78531 20.48980
##  [8,] 61.22630      21 18.44429 42.69429 6.191429 37.20857 65.23857 21.51429
##  [9,] 61.33258      22 19.21449 44.72735 6.425306 38.98041 65.69184 22.53878
## [10,] 61.42555      13 12.28265 26.42980 4.320408 23.03388 61.61245 13.31837
## 
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 1 
## ============================================== 
##               [,1]
##  [1,] 55.235597520
##  [2,] -0.060206537
##  [3,] -0.139780329
##  [4,]  4.602967603
##  [5,] -0.613837239
##  [6,]  0.008921615
##  [7,]  0.059789517
##  [8,] -0.866308131
##  [9,] -0.081699055
## [10,] -5.057603076
## [11,]  0.720183134
## [12,]  1.020919184
## [13,] -0.129832245

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 gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.3823136 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.6125029 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 5.01488e-06 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.003176344 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2180514 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.005062559 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.003447805 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 2.682681e-13 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 1.318247e-05 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.9926651 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.3073097 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.6523863 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.4409103 
## nilai t hitung 
## ============================================= 
##               [,1]
##  [1,]  0.874410733
##  [2,] -0.506821734
##  [3,] -4.614364413
##  [4,] -2.964484125
##  [5,] -1.233275258
##  [6,]  2.815465394
##  [7,] -2.938712046
##  [8,] -7.512624632
##  [9,]  4.400886530
## [10,]  0.009197679
## [11,]  1.021924740
## [12,]  0.450720116
## [13,] -0.771270353
## Analysis of Variance 
## ============================================= 
## Sumber df SS MS Fhit 
## Regresi  12   77085.11   6423.759   111.0412 
## Error  501   29735.03   57.85024 
## Total  513   106820.1 
## ============================================= 
## s= 7.605935  Rsq= 72.16346 
## pvalue(F)= 1.284362e-132

Pemilihan 2 Titik Knot

hasil_gcv2 = GCV2(data)
## HASIL GCV terkecil dengan 2 knot 
## ============================================== 
##        GCV    knot_ke                                                        
##  59.653741 245.000000   6.891224  22.295306  12.198367  52.859592   2.683265 
##                                                                              
##   7.360816  10.631020  46.067755  58.439592  67.504898   6.146939  26.636735 
## Nilai GCV 10 terkecil pertama 
##            GCV knot_ke                                                       
##  [1,] 59.65374     245  6.891224 22.29531 12.19837 52.85959 2.683265 7.360816
##  [2,] 59.71889     239  6.891224 17.67408 12.19837 40.66122 2.683265 5.957551
##  [3,] 59.71968     246  6.891224 23.06551 12.19837 54.89265 2.683265 7.594694
##  [4,] 59.72621     244  6.891224 21.52510 12.19837 50.82653 2.683265 7.126939
##  [5,] 59.72924     238  6.891224 16.90388 12.19837 38.62816 2.683265 5.723673
##  [6,] 59.73756     905 23.065510 29.22714 54.89265 71.15714 7.594694 9.465714
##  [7,] 59.76477     237  6.891224 16.13367 12.19837 36.59510 2.683265 5.489796
##  [8,] 59.76563     241  6.891224 19.21449 12.19837 44.72735 2.683265 6.425306
##  [9,] 59.76975     240  6.891224 18.44429 12.19837 42.69429 2.683265 6.191429
## [10,] 59.77079     242  6.891224 19.98469 12.19837 46.76041 2.683265 6.659184
##                                                             
##  [1,] 10.63102 46.06776 58.43959 67.50490  6.146939 26.63673
##  [2,] 10.63102 35.43673 58.43959 64.78531  6.146939 20.48980
##  [3,] 10.63102 47.83959 58.43959 67.95816  6.146939 27.66122
##  [4,] 10.63102 44.29592 58.43959 67.05163  6.146939 25.61224
##  [5,] 10.63102 33.66490 58.43959 64.33204  6.146939 19.46531
##  [6,] 47.83959 62.01429 67.95816 71.58429 27.661224 35.85714
##  [7,] 10.63102 31.89306 58.43959 63.87878  6.146939 18.44082
##  [8,] 10.63102 38.98041 58.43959 65.69184  6.146939 22.53878
##  [9,] 10.63102 37.20857 58.43959 65.23857  6.146939 21.51429
## [10,] 10.63102 40.75224 58.43959 66.14510  6.146939 23.56327
## 
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 2 
## ============================================== 
##               [,1]
##  [1,] 232.61514834
##  [2,]  -0.21284620
##  [3,]  -0.47339109
##  [4,]  -3.37097474
##  [5,]  -0.93861870
##  [6,]  -2.77940374
##  [7,]   0.78647431
##  [8,]  -0.04625130
##  [9,]  -1.12800600
## [10,]   0.33226449
## [11,]  -0.04946566
## [12,]   6.15885749
## [13,]  -4.00900376
## [14,]   0.87768543
## [15,]   0.02702941
## [16,]   4.11508131
## [17,]  -0.43791153
## [18,]  -0.91535404
## [19,]   0.05822887

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.1949366 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.5730392 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.9134512 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.0001626914 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.001378341 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.03853496 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.572904 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.532033 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.3080653 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.001830059 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 2.080419e-11 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 5.261028e-06 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.915596 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.3636415 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1943984 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2950837 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.09515428 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.06836395 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.6972897 
## nilai t hitung 
## ============================================= 
##             [,1]
##  [1,]  1.2978695
##  [2,] -0.5639565
##  [3,] -0.1087420
##  [4,] -3.8000365
##  [5,] -3.2173950
##  [6,]  2.0746519
##  [7,] -0.5641552
##  [8,] -0.6253448
##  [9,]  1.0203407
## [10,] -3.1334547
## [11,] -6.8586885
## [12,]  4.6045876
## [13,]  0.1060370
## [14,] -0.9092863
## [15,]  1.2994383
## [16,] -1.0481441
## [17,]  1.6720100
## [18,] -1.8265873
## [19,]  0.3892079
## Analysis of Variance 
## ============================================= 
## Sumber df SS MS Fhit 
## Regresi  18   78383.06   4354.614   78.70963 
## Error  495   28437.08   55.32505 
## Total  513   106820.1 
## ============================================= 
## s= 7.438081  Rsq= 73.37854 
## pvalue(F)= 2.131265e-132

Pemilihan 3 Titik Knot

hasil_gcv3 = GCV3(data)
## HASIL GCV terkecil dengan 3 knot 
## ============================================== 
##          GCV      knot_ke                                                     
##    57.871554 11127.000000    13.052857    24.605918    28.456939    28.462857 
##                                                                               
##    58.958776    69.124082     4.554286     8.062449     9.231837    24.805714 
##                                                                               
##    51.383265    60.242449    62.065714    68.864694    71.131020    14.342857 
##                           
##    29.710204    34.832653 
## Nilai GCV 10 terkecil pertama 
##            GCV knot_ke                                                      
##  [1,] 57.87155   11127 13.05286 24.60592 28.45694 28.46286 58.95878 69.12408
##  [2,] 57.90291   11144 13.05286 25.37612 27.68673 28.46286 60.99184 67.09102
##  [3,] 57.91615   11126 13.05286 24.60592 27.68673 28.46286 58.95878 67.09102
##  [4,] 57.97474   11655 13.82306 24.60592 28.45694 30.49592 58.95878 69.12408
##  [5,] 58.00390   11672 13.82306 25.37612 27.68673 30.49592 60.99184 67.09102
##  [6,] 58.01200   11654 13.82306 24.60592 27.68673 30.49592 58.95878 67.09102
##  [7,] 58.01834   10566 12.28265 24.60592 28.45694 26.42980 58.95878 69.12408
##  [8,] 58.05155   11145 13.05286 25.37612 28.45694 28.46286 60.99184 69.12408
##  [9,] 58.07181   10583 12.28265 25.37612 27.68673 26.42980 60.99184 67.09102
## [10,] 58.08304   10565 12.28265 24.60592 27.68673 26.42980 58.95878 67.09102
##                                                                              
##  [1,] 4.554286 8.062449 9.231837 24.80571 51.38327 60.24245 62.06571 68.86469
##  [2,] 4.554286 8.296327 8.997959 24.80571 53.15510 58.47061 62.06571 69.31796
##  [3,] 4.554286 8.062449 8.997959 24.80571 51.38327 58.47061 62.06571 68.86469
##  [4,] 4.788163 8.062449 9.231837 26.57755 51.38327 60.24245 62.51898 68.86469
##  [5,] 4.788163 8.296327 8.997959 26.57755 53.15510 58.47061 62.51898 69.31796
##  [6,] 4.788163 8.062449 8.997959 26.57755 51.38327 58.47061 62.51898 68.86469
##  [7,] 4.320408 8.062449 9.231837 23.03388 51.38327 60.24245 61.61245 68.86469
##  [8,] 4.554286 8.296327 9.231837 24.80571 53.15510 60.24245 62.06571 69.31796
##  [9,] 4.320408 8.296327 8.997959 23.03388 53.15510 58.47061 61.61245 69.31796
## [10,] 4.320408 8.062449 8.997959 23.03388 51.38327 58.47061 61.61245 68.86469
##                                          
##  [1,] 71.13102 14.34286 29.71020 34.83265
##  [2,] 70.67776 14.34286 30.73469 33.80816
##  [3,] 70.67776 14.34286 29.71020 33.80816
##  [4,] 71.13102 15.36735 29.71020 34.83265
##  [5,] 70.67776 15.36735 30.73469 33.80816
##  [6,] 70.67776 15.36735 29.71020 33.80816
##  [7,] 71.13102 13.31837 29.71020 34.83265
##  [8,] 71.13102 14.34286 30.73469 34.83265
##  [9,] 70.67776 13.31837 30.73469 33.80816
## [10,] 70.67776 13.31837 29.71020 33.80816
## 
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 3 
## ============================================== 
##                [,1]
##  [1,] 167.379164922
##  [2,]   0.006721307
##  [3,]  -0.162048384
##  [4,]   3.088515434
##  [5,]  -0.572073896
##  [6,]  -1.828642791
##  [7,]   0.121548312
##  [8,]  -0.884363855
##  [9,]   0.860349570
## [10,]  -2.205508264
## [11,]  -0.027020113
## [12,]  -0.313063519
## [13,]   0.513304370
## [14,]  -1.193279344
## [15,]  -6.518365931
## [16,]   6.397219439
## [17,]   0.756445243
## [18,]   0.935416563
## [19,]  -2.197128367
## [20,]   3.616134314
## [21,]  -2.564442076
## [22,]   2.261039366
## [23,]  -0.235273051
## [24,]  -0.185090874
## [25,]   0.665478503

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 ditolak yakni variabel bebas signifikan dengan pvalue 0.02695704 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.9579384 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.0006105365 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.3263093 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.05081603 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.002327222 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.7574694 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.3076411 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2065955 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1473908 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.6420861 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 9.598424e-05 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 5.960785e-06 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 5.23671e-10 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.001553233 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.4114474 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1098641 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1205471 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.006341778 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.0003854574 
## Ho ditolak yakni variabel bebas signifikan dengan pvalue 0.001164353 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.4163265 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.2427505 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.5914032 
## Ho gagal ditolak yakni variabel tidak signifikan dengan pvalue 0.1599552 
## nilai t hitung 
## ============================================= 
##              [,1]
##  [1,]  2.21882403
##  [2,]  0.05276785
##  [3,] -3.44934857
##  [4,]  0.98256129
##  [5,] -1.95784874
##  [6,] -3.06101342
##  [7,] -0.30897866
##  [8,] -1.02124963
##  [9,]  1.26466026
## [10,]  1.45110871
## [11,] -0.46507314
## [12,] -3.93309811
## [13,]  4.57802900
## [14,] -6.33977235
## [15,]  3.18246116
## [16,]  0.82205286
## [17,] -1.60171625
## [18,] -1.55519260
## [19,]  2.74140614
## [20,] -3.57468507
## [21,]  3.26674442
## [22,]  0.81350144
## [23,] -1.16955336
## [24,] -0.53715743
## [25,]  1.40736246
## Analysis of Variance 
## ============================================= 
## Sumber df SS MS Fhit 
## Regresi  24   79897.37   3329.057   63.55718 
## Error  489   26922.77   52.37893 
## Total  513   106820.1 
## ============================================= 
## s= 7.237329  Rsq= 74.79617 
## pvalue(F)= 1.37111e-133