library(caret)Warning: package 'caret' was built under R version 4.3.3
Loading required package: ggplot2
Loading required package: lattice
library(glmnet)Loading required package: Matrix
Loaded glmnet 4.1-8
library(ggplot2)Sebelum membangkitkan data dan melakukan analisis terlebih dahulu kita menginstal dan memanggil package yang dibutuhkan
library(caret)Warning: package 'caret' was built under R version 4.3.3
Loading required package: ggplot2
Loading required package: lattice
library(glmnet)Loading required package: Matrix
Loaded glmnet 4.1-8
library(ggplot2)Membangkitkan High Dimensional Data dimana High Dimensional Data adalah data yang memiliki variabel prediktor lebih banyak dibandingkan dengan jumlah observasi (p>n).
# Membuat dataset dengan 50 observasi dan 100 fitur
set.seed(4)
n <- 50 # Jumlah observasi
p <- 100 # Jumlah fitur
X <- matrix(rnorm(n * p), nrow = n) # Matriks fitur
beta <- rnorm(p) # Koefisien sebenarnya
Y <- X %*% beta + rnorm(n) # Respon dengan noise# Mengubah ke dalam data frame
data <- data.frame(Y = Y, X)
colnames(data) <- c("Y", paste0("X", 1:p))
head(data) Y X1 X2 X3 X4 X5 X6
1 2.091198 0.2167549 -0.66374314 0.68480194 0.8769847 1.2147301 0.3956022
2 1.022120 -0.5424926 -0.62372649 -0.11511351 -0.8161958 -1.5478003 -0.9213633
3 7.773145 0.8911446 -0.07963243 -0.35647518 1.5392933 -0.3022460 -0.6765726
4 2.964362 0.5959806 0.43562476 -0.10577161 1.3745257 1.0392077 -1.9438953
5 11.016032 1.6356180 1.97090097 0.04488279 -0.4832487 -0.7678417 0.1199832
6 6.547478 0.6892754 -0.59675867 -1.72617323 0.5503500 1.5246726 1.2660773
X7 X8 X9 X10 X11 X12
1 -2.8395831 -0.71583924 -1.1821160 -1.13435201 -1.64468033 -0.88678473
2 1.5114691 0.42260087 0.4562593 -0.06336075 -0.81997592 0.63708824
3 1.4423546 0.43293337 -0.2382873 -0.73257620 -1.67823964 1.49909001
4 0.5053693 0.08453164 0.8121637 1.07403842 0.42416496 -1.50117861
5 -0.7572932 0.55209611 -0.7306545 1.47886441 -0.34878658 2.69071637
6 0.2492381 -0.53776548 -2.1942811 -2.53300932 -0.05233181 -0.02356869
X13 X14 X15 X16 X17 X18
1 -2.1532042 0.29885946 0.5611550 -0.5590896 -0.62460194 0.2664096
2 -0.5727423 0.05603444 -0.4925805 0.4284152 0.99398457 0.3194472
3 0.7410241 -0.07867610 0.9287592 1.0411428 -1.51694287 -0.5224024
4 -0.2328005 -0.63971381 -0.8391556 0.9747173 -0.01582282 0.8801450
5 -1.3468950 -0.33579648 0.6387659 -0.8636018 -1.19966157 -0.5510220
6 -0.8018559 0.05982538 -0.2085062 -0.5048082 0.22345571 -0.3568450
X19 X20 X21 X22 X23 X24
1 -0.85655057 0.1140694 0.1766140 0.3800386 -1.1319941 -1.8783140
2 0.83316749 -0.2013592 1.6890457 0.7554258 -0.6031070 1.5051473
3 0.30131260 0.8119475 -1.3473420 -2.2325162 -0.1051017 -1.5893500
4 0.03953677 0.8753986 1.0756224 0.9016771 -1.8771582 -0.4179477
5 -1.42924102 1.0220232 -0.4562090 -1.2181184 0.5664940 2.3758554
6 0.62213803 0.6422129 -0.6814446 0.8337485 -3.2742948 0.8891183
X25 X26 X27 X28 X29 X30
1 0.03349124 1.8415048 1.3674711 1.05713895 -0.9558132 0.2108975
2 -1.45849674 -1.5548505 0.9731017 -0.30865625 -0.6200614 -0.2770894
3 2.05823333 0.3274960 -0.7746421 -0.14406770 -0.1328299 -1.4928595
4 -0.10141340 -2.3813614 0.4487602 -0.01087518 1.5037602 -0.4127304
5 1.06008873 -0.6762463 0.8743079 0.06489215 -1.3524944 -1.2314822
6 -0.50323913 0.4805412 1.7124423 1.56098382 -0.7486184 0.5945011
X31 X32 X33 X34 X35 X36
1 -0.7407025 -1.12616940 0.1476839 -0.1045861 -0.4151231 -0.5222624
2 -0.1869517 0.00353926 0.2767196 -0.8589762 0.7801822 -1.4249270
3 -0.1342514 -0.33561291 -1.0080757 2.0189189 0.6015845 1.0929428
4 -0.9421407 0.32609499 -0.3935427 0.1404494 -0.4685464 0.8773956
5 -0.3494721 -0.44611484 -0.1163648 -1.7554604 1.3135831 0.1313666
6 1.5568594 0.26589089 0.7636429 -0.5826481 0.3589778 0.6027325
X37 X38 X39 X40 X41 X42
1 -0.508285662 1.2653957 1.1946614 1.2017962 -1.39435937 -0.2229140
2 1.653733498 -1.0335000 -2.0820327 1.1946518 0.05127472 0.4938824
3 1.638213725 -0.6498962 0.3039926 -0.5257046 1.09701990 1.0105000
4 -0.005652903 1.0192268 -0.5512309 0.1176178 -0.20297368 0.6007656
5 -0.663376790 0.8922975 2.3676371 -1.8732506 -0.42776051 -0.2971910
6 -1.059202039 -1.0148619 1.3844704 0.9492217 -0.42851671 0.3111199
X43 X44 X45 X46 X47 X48
1 1.54432610 -0.8108742 -0.3503439 0.02308401 0.54100302 -0.3863098
2 0.07915112 -2.2758338 -0.5670894 -0.11431794 -2.25804321 0.7550744
3 -0.14018556 -1.2520160 1.0695106 1.22314400 1.03095476 -0.3567135
4 -0.83848163 -0.7397987 0.5336084 -0.34796837 0.10338470 0.6569884
5 -0.55121827 -2.0803020 0.4978123 -0.27291525 -0.99746478 1.4039734
6 1.24861665 0.6591871 1.6756695 1.24764354 0.04477032 0.3447434
X49 X50 X51 X52 X53 X54
1 -0.2886730 -0.4507642 0.6860869 1.10912146 0.1285375 0.96916711
2 -2.5155468 -1.3280826 -0.7716132 -1.24084806 1.7717138 -1.20505834
3 0.9757407 0.4712651 0.4994783 -0.38550512 0.3537376 0.07991105
4 1.7341173 0.9146380 1.1332841 -0.99629132 1.7333971 -0.33157904
5 -0.2983519 0.9562234 -1.6327327 0.06261724 -1.6385044 -0.16339068
6 0.2286913 -0.6905775 -0.3040525 0.30946293 0.7232139 -1.49068604
X55 X56 X57 X58 X59 X60 X61
1 -2.1685180 -0.4476224 -0.4224992 -0.3033593 -0.06036912 0.1254543 0.8565420
2 -1.4651846 0.6178473 -0.2582333 0.7605534 0.74544165 1.0911814 0.1272281
3 -0.5021542 -0.1699967 0.4294924 -1.0239304 1.06824604 0.9534492 0.5711275
4 0.7121580 -1.2705051 0.5311146 -0.4302856 0.36994627 -0.3796534 -0.1563883
5 -0.6762043 0.7104356 -0.6537411 0.7486111 -0.05669593 1.4440794 -0.8233831
6 0.2692877 -0.3719463 -0.8976903 1.9088707 -0.22026962 0.7312755 0.6558651
X62 X63 X64 X65 X66 X67 X68
1 0.8500492 -0.4648501 -0.56988303 -0.1592822 1.0927954 -1.5151028 0.5462649
2 -1.0244080 1.2166747 0.18702282 0.9732088 -0.5082020 -0.7155276 -1.4926848
3 1.1075040 -0.5166571 1.24422937 -0.2090810 1.2361112 -1.4412784 -2.7380208
4 1.7629345 -0.6018340 -0.02532564 2.1511598 0.9097096 0.9046135 0.6956646
5 -1.4066224 0.9900587 -0.19382610 0.7131085 0.3335478 0.2720992 0.7077290
6 -1.1222022 -2.1402576 -0.47427743 1.4513982 -0.8441256 -0.2049255 0.6084623
X69 X70 X71 X72 X73 X74
1 -0.12451742 -0.2698384 0.8157347 -0.06684089 -0.1498813 0.7065524
2 -0.64310457 -1.1664208 0.2768949 -0.06192968 0.4945106 0.6108402
3 1.26727592 1.4792675 1.6145702 -0.43489524 0.2430760 -0.4602193
4 0.25827106 -0.3708818 -1.0707223 0.26054478 -0.7463864 -0.4005009
5 -0.58061458 -0.4172875 -0.6491449 -0.26175536 0.2343198 1.1407488
6 0.05580977 -0.4954837 1.0081776 0.82628528 -0.1810466 0.8438454
X75 X76 X77 X78 X79 X80
1 -0.6895872 1.6058593 0.9392960 0.80663191 -1.7284028 -0.33497852
2 -0.0119665 2.1279437 1.0724297 -0.75608815 -1.2197018 0.24384556
3 1.1823622 -0.1665949 -0.8866102 -0.08444098 -0.8263891 -1.02174732
4 1.4967564 -1.1079829 1.1053040 1.16653457 -1.2144283 0.50925516
5 0.5850341 -0.7121835 -2.9266939 -0.02427581 0.2273202 0.02509264
6 -0.6786129 -0.5581186 -0.2521770 0.01623869 -0.7721258 -0.20026684
X81 X82 X83 X84 X85 X86
1 -0.08169317 -0.172548462 -1.58330556 0.6853028 0.003707947 -0.2943130
2 -0.85455117 0.455137342 -0.56019658 2.4613006 -1.008261078 -1.5713491
3 -0.94360110 -0.409387384 0.01258543 1.0661056 -0.580078713 -2.4038252
4 1.16230454 -0.002037362 1.77679153 0.1611182 0.087877719 1.1456582
5 -1.15672230 0.527526293 0.04659051 -2.3595352 0.488061728 -0.9393311
6 -1.38196869 0.148288377 -0.23602244 -0.4184855 -0.081827849 -0.7182127
X87 X88 X89 X90 X91 X92
1 0.1267700 -0.15754415 0.3506164 1.2791707 -0.5287586 0.47451293
2 0.4896448 0.55151822 0.9896884 -2.3033346 -1.4891622 -1.15412589
3 -0.9686689 1.91756177 -1.0723485 -0.6805169 1.0831477 -0.25255568
4 -0.7217680 0.84287264 -0.1808508 -0.1245596 -1.4422766 -0.06105225
5 0.6227866 -0.03845555 -0.5001877 -0.2056928 -0.2367194 0.01650693
6 0.5830694 -0.03963838 -0.5828170 -0.9473909 0.4452406 -1.19797832
X93 X94 X95 X96 X97 X98
1 0.16880455 0.3201131 -0.13315155 -0.08096087 -0.8500702 -1.38086907
2 2.18957370 -0.5753853 0.08508669 -1.02240980 1.3910851 0.02804937
3 -1.02333662 0.1999023 -0.37738518 0.23762104 0.1475909 -0.47501710
4 0.62161405 0.1081278 0.66234548 0.22930116 1.4676380 -0.43860268
5 0.06478683 0.2921734 -0.90262787 -0.19756741 1.2092559 1.43470844
6 -0.14757877 0.8885889 0.95236212 1.85940045 0.9500346 0.85288902
X99 X100
1 -0.3392388 1.031385
2 -1.3968572 -1.026085
3 0.3867600 1.770532
4 -1.9040992 1.401735
5 -1.4949127 -1.092702
6 -1.2007310 1.279054
Memisahkan data menjadi data latih dan data uji memiliki fungsi untuk:
Mengukur kemampuan generalisasi model.
Menghindari overfitting.
Memastikan model yang dibangun dapat berfungsi dengan baik pada data baru yang belum pernah dilihat.
# Memisahkan data menjadi data latih dan data uji
set.seed(4)
index <- createDataPartition(data$Y, p = 0.8, list = FALSE)
train_data <- data[index, ]
head(train_data) Y X1 X2 X3 X4 X5 X6
1 2.091198 0.2167549 -0.66374314 0.68480194 0.8769847 1.2147301 0.3956022
2 1.022120 -0.5424926 -0.62372649 -0.11511351 -0.8161958 -1.5478003 -0.9213633
3 7.773145 0.8911446 -0.07963243 -0.35647518 1.5392933 -0.3022460 -0.6765726
4 2.964362 0.5959806 0.43562476 -0.10577161 1.3745257 1.0392077 -1.9438953
5 11.016032 1.6356180 1.97090097 0.04488279 -0.4832487 -0.7678417 0.1199832
6 6.547478 0.6892754 -0.59675867 -1.72617323 0.5503500 1.5246726 1.2660773
X7 X8 X9 X10 X11 X12
1 -2.8395831 -0.71583924 -1.1821160 -1.13435201 -1.64468033 -0.88678473
2 1.5114691 0.42260087 0.4562593 -0.06336075 -0.81997592 0.63708824
3 1.4423546 0.43293337 -0.2382873 -0.73257620 -1.67823964 1.49909001
4 0.5053693 0.08453164 0.8121637 1.07403842 0.42416496 -1.50117861
5 -0.7572932 0.55209611 -0.7306545 1.47886441 -0.34878658 2.69071637
6 0.2492381 -0.53776548 -2.1942811 -2.53300932 -0.05233181 -0.02356869
X13 X14 X15 X16 X17 X18
1 -2.1532042 0.29885946 0.5611550 -0.5590896 -0.62460194 0.2664096
2 -0.5727423 0.05603444 -0.4925805 0.4284152 0.99398457 0.3194472
3 0.7410241 -0.07867610 0.9287592 1.0411428 -1.51694287 -0.5224024
4 -0.2328005 -0.63971381 -0.8391556 0.9747173 -0.01582282 0.8801450
5 -1.3468950 -0.33579648 0.6387659 -0.8636018 -1.19966157 -0.5510220
6 -0.8018559 0.05982538 -0.2085062 -0.5048082 0.22345571 -0.3568450
X19 X20 X21 X22 X23 X24
1 -0.85655057 0.1140694 0.1766140 0.3800386 -1.1319941 -1.8783140
2 0.83316749 -0.2013592 1.6890457 0.7554258 -0.6031070 1.5051473
3 0.30131260 0.8119475 -1.3473420 -2.2325162 -0.1051017 -1.5893500
4 0.03953677 0.8753986 1.0756224 0.9016771 -1.8771582 -0.4179477
5 -1.42924102 1.0220232 -0.4562090 -1.2181184 0.5664940 2.3758554
6 0.62213803 0.6422129 -0.6814446 0.8337485 -3.2742948 0.8891183
X25 X26 X27 X28 X29 X30
1 0.03349124 1.8415048 1.3674711 1.05713895 -0.9558132 0.2108975
2 -1.45849674 -1.5548505 0.9731017 -0.30865625 -0.6200614 -0.2770894
3 2.05823333 0.3274960 -0.7746421 -0.14406770 -0.1328299 -1.4928595
4 -0.10141340 -2.3813614 0.4487602 -0.01087518 1.5037602 -0.4127304
5 1.06008873 -0.6762463 0.8743079 0.06489215 -1.3524944 -1.2314822
6 -0.50323913 0.4805412 1.7124423 1.56098382 -0.7486184 0.5945011
X31 X32 X33 X34 X35 X36
1 -0.7407025 -1.12616940 0.1476839 -0.1045861 -0.4151231 -0.5222624
2 -0.1869517 0.00353926 0.2767196 -0.8589762 0.7801822 -1.4249270
3 -0.1342514 -0.33561291 -1.0080757 2.0189189 0.6015845 1.0929428
4 -0.9421407 0.32609499 -0.3935427 0.1404494 -0.4685464 0.8773956
5 -0.3494721 -0.44611484 -0.1163648 -1.7554604 1.3135831 0.1313666
6 1.5568594 0.26589089 0.7636429 -0.5826481 0.3589778 0.6027325
X37 X38 X39 X40 X41 X42
1 -0.508285662 1.2653957 1.1946614 1.2017962 -1.39435937 -0.2229140
2 1.653733498 -1.0335000 -2.0820327 1.1946518 0.05127472 0.4938824
3 1.638213725 -0.6498962 0.3039926 -0.5257046 1.09701990 1.0105000
4 -0.005652903 1.0192268 -0.5512309 0.1176178 -0.20297368 0.6007656
5 -0.663376790 0.8922975 2.3676371 -1.8732506 -0.42776051 -0.2971910
6 -1.059202039 -1.0148619 1.3844704 0.9492217 -0.42851671 0.3111199
X43 X44 X45 X46 X47 X48
1 1.54432610 -0.8108742 -0.3503439 0.02308401 0.54100302 -0.3863098
2 0.07915112 -2.2758338 -0.5670894 -0.11431794 -2.25804321 0.7550744
3 -0.14018556 -1.2520160 1.0695106 1.22314400 1.03095476 -0.3567135
4 -0.83848163 -0.7397987 0.5336084 -0.34796837 0.10338470 0.6569884
5 -0.55121827 -2.0803020 0.4978123 -0.27291525 -0.99746478 1.4039734
6 1.24861665 0.6591871 1.6756695 1.24764354 0.04477032 0.3447434
X49 X50 X51 X52 X53 X54
1 -0.2886730 -0.4507642 0.6860869 1.10912146 0.1285375 0.96916711
2 -2.5155468 -1.3280826 -0.7716132 -1.24084806 1.7717138 -1.20505834
3 0.9757407 0.4712651 0.4994783 -0.38550512 0.3537376 0.07991105
4 1.7341173 0.9146380 1.1332841 -0.99629132 1.7333971 -0.33157904
5 -0.2983519 0.9562234 -1.6327327 0.06261724 -1.6385044 -0.16339068
6 0.2286913 -0.6905775 -0.3040525 0.30946293 0.7232139 -1.49068604
X55 X56 X57 X58 X59 X60 X61
1 -2.1685180 -0.4476224 -0.4224992 -0.3033593 -0.06036912 0.1254543 0.8565420
2 -1.4651846 0.6178473 -0.2582333 0.7605534 0.74544165 1.0911814 0.1272281
3 -0.5021542 -0.1699967 0.4294924 -1.0239304 1.06824604 0.9534492 0.5711275
4 0.7121580 -1.2705051 0.5311146 -0.4302856 0.36994627 -0.3796534 -0.1563883
5 -0.6762043 0.7104356 -0.6537411 0.7486111 -0.05669593 1.4440794 -0.8233831
6 0.2692877 -0.3719463 -0.8976903 1.9088707 -0.22026962 0.7312755 0.6558651
X62 X63 X64 X65 X66 X67 X68
1 0.8500492 -0.4648501 -0.56988303 -0.1592822 1.0927954 -1.5151028 0.5462649
2 -1.0244080 1.2166747 0.18702282 0.9732088 -0.5082020 -0.7155276 -1.4926848
3 1.1075040 -0.5166571 1.24422937 -0.2090810 1.2361112 -1.4412784 -2.7380208
4 1.7629345 -0.6018340 -0.02532564 2.1511598 0.9097096 0.9046135 0.6956646
5 -1.4066224 0.9900587 -0.19382610 0.7131085 0.3335478 0.2720992 0.7077290
6 -1.1222022 -2.1402576 -0.47427743 1.4513982 -0.8441256 -0.2049255 0.6084623
X69 X70 X71 X72 X73 X74
1 -0.12451742 -0.2698384 0.8157347 -0.06684089 -0.1498813 0.7065524
2 -0.64310457 -1.1664208 0.2768949 -0.06192968 0.4945106 0.6108402
3 1.26727592 1.4792675 1.6145702 -0.43489524 0.2430760 -0.4602193
4 0.25827106 -0.3708818 -1.0707223 0.26054478 -0.7463864 -0.4005009
5 -0.58061458 -0.4172875 -0.6491449 -0.26175536 0.2343198 1.1407488
6 0.05580977 -0.4954837 1.0081776 0.82628528 -0.1810466 0.8438454
X75 X76 X77 X78 X79 X80
1 -0.6895872 1.6058593 0.9392960 0.80663191 -1.7284028 -0.33497852
2 -0.0119665 2.1279437 1.0724297 -0.75608815 -1.2197018 0.24384556
3 1.1823622 -0.1665949 -0.8866102 -0.08444098 -0.8263891 -1.02174732
4 1.4967564 -1.1079829 1.1053040 1.16653457 -1.2144283 0.50925516
5 0.5850341 -0.7121835 -2.9266939 -0.02427581 0.2273202 0.02509264
6 -0.6786129 -0.5581186 -0.2521770 0.01623869 -0.7721258 -0.20026684
X81 X82 X83 X84 X85 X86
1 -0.08169317 -0.172548462 -1.58330556 0.6853028 0.003707947 -0.2943130
2 -0.85455117 0.455137342 -0.56019658 2.4613006 -1.008261078 -1.5713491
3 -0.94360110 -0.409387384 0.01258543 1.0661056 -0.580078713 -2.4038252
4 1.16230454 -0.002037362 1.77679153 0.1611182 0.087877719 1.1456582
5 -1.15672230 0.527526293 0.04659051 -2.3595352 0.488061728 -0.9393311
6 -1.38196869 0.148288377 -0.23602244 -0.4184855 -0.081827849 -0.7182127
X87 X88 X89 X90 X91 X92
1 0.1267700 -0.15754415 0.3506164 1.2791707 -0.5287586 0.47451293
2 0.4896448 0.55151822 0.9896884 -2.3033346 -1.4891622 -1.15412589
3 -0.9686689 1.91756177 -1.0723485 -0.6805169 1.0831477 -0.25255568
4 -0.7217680 0.84287264 -0.1808508 -0.1245596 -1.4422766 -0.06105225
5 0.6227866 -0.03845555 -0.5001877 -0.2056928 -0.2367194 0.01650693
6 0.5830694 -0.03963838 -0.5828170 -0.9473909 0.4452406 -1.19797832
X93 X94 X95 X96 X97 X98
1 0.16880455 0.3201131 -0.13315155 -0.08096087 -0.8500702 -1.38086907
2 2.18957370 -0.5753853 0.08508669 -1.02240980 1.3910851 0.02804937
3 -1.02333662 0.1999023 -0.37738518 0.23762104 0.1475909 -0.47501710
4 0.62161405 0.1081278 0.66234548 0.22930116 1.4676380 -0.43860268
5 0.06478683 0.2921734 -0.90262787 -0.19756741 1.2092559 1.43470844
6 -0.14757877 0.8885889 0.95236212 1.85940045 0.9500346 0.85288902
X99 X100
1 -0.3392388 1.031385
2 -1.3968572 -1.026085
3 0.3867600 1.770532
4 -1.9040992 1.401735
5 -1.4949127 -1.092702
6 -1.2007310 1.279054
test_data <- data[-index, ]
head(test_data) Y X1 X2 X3 X4 X5
9 -8.066554 1.8965399 -0.15566396 -1.0985075 -2.09707753 1.1055339
24 -1.758924 1.2882569 0.18051729 -0.3373884 -2.25793822 0.2240893
30 -1.212214 1.2401808 -0.05169693 -2.3822428 -1.12798602 -0.1001847
32 3.501836 1.0519326 -0.21414966 0.6682451 0.07107173 0.6579243
35 4.090951 0.8611319 -1.03273843 -0.5847739 1.90054267 -0.9368292
41 17.839594 1.3437086 -1.27765990 1.0004999 -0.69012768 -0.9839442
X6 X7 X8 X9 X10 X11
9 0.616393044 -0.2116086 1.0718372 0.7696422 -0.9701006 -1.3055200
24 -0.167633779 -0.9607200 -1.0606860 0.1310862 -0.4254430 0.8729256
30 -1.504148789 1.0576665 -0.1439235 0.6650744 -1.6597763 0.7017399
32 -0.008936688 1.2379969 1.2169697 3.1741867 0.3128825 0.5859914
35 -0.846030811 -0.3678351 -0.8890899 2.3036544 -0.3510310 0.8201874
41 0.681617710 0.5931282 0.1417910 -0.6959671 -0.1074024 -1.2422333
X12 X13 X14 X15 X16 X17
9 0.4573882 -1.01593272 -1.1419633 -1.71371955 -0.58440849 -0.07826443
24 0.3441692 0.02884007 1.5460758 0.13787665 -2.42334442 2.09009774
30 1.3273958 0.43783890 -1.1493655 2.44921249 1.24779393 -0.21131465
32 0.4830591 0.45415062 0.2708819 -0.06967568 -0.07648675 -1.59739222
35 -0.7941988 1.03884902 0.7470113 0.15454935 -0.79469838 0.41184480
41 0.5151202 -1.16146312 0.2039769 0.95673460 0.33196155 -0.13755892
X18 X19 X20 X21 X22 X23
9 -1.5249580 -1.6603657 0.8220220 -0.19119950 -0.7863374 0.1662335
24 -1.5954542 -1.3550545 -0.4172911 1.15647975 -0.2998218 1.0078662
30 1.6632220 -1.5421724 -2.4481340 0.46812647 0.2052361 0.6055421
32 -0.1019649 -1.3937465 0.7104087 -0.83533161 0.3416086 -1.4670985
35 0.1086962 -0.2526785 0.5928804 -0.02023719 0.7609246 -1.5651594
41 1.3543128 1.1936794 0.2885354 -0.58101106 1.1164555 1.0157032
X24 X25 X26 X27 X28 X29
9 1.1379348 -0.1142239 -1.5075471 0.69687474 -0.06908903 1.9469659
24 0.9145629 1.2622013 0.1295915 -0.07167963 0.36458591 2.3462548
30 -0.8058012 0.2242466 -0.4236005 1.42856816 0.77520014 -0.5929622
32 -1.9086179 -0.3936096 -0.5511831 -0.76557137 -0.34436531 -0.6143830
35 -1.7359862 -1.2420278 -0.3079511 1.32864750 0.14722505 -0.4672300
41 0.1124214 1.4410974 1.1419371 0.40432899 -0.87277565 -0.1253656
X30 X31 X32 X33 X34 X35
9 1.9462304 -0.2587344 -0.1448773 -0.3451572 1.42943982 0.7733544
24 -0.3816086 -0.8964341 -1.4780493 1.2063325 -0.08366789 0.2595309
30 0.4840686 1.9895696 2.3754104 0.5564482 1.31029759 0.4667587
32 0.3711435 0.9701017 0.5499083 1.1547092 -0.02708634 -1.5913026
35 0.2717229 0.5159045 0.2323446 1.6572233 0.07816647 -1.4682591
41 -0.5056213 0.6123879 0.3950852 -0.2622646 -0.66666512 1.2745554
X36 X37 X38 X39 X40 X41
9 0.88856583 -1.62072237 -1.5695124 -1.02562425 0.7075069 0.9412302
24 -0.06291123 -0.04048736 1.0514422 -0.84328633 -1.2099687 -0.3423451
30 1.08759212 -0.58869492 -0.9505762 0.02615621 -1.0456647 1.8106180
32 -0.89285090 -2.44305799 -0.7276052 -1.37206097 1.1194992 -1.1463106
35 -0.31717876 0.64128219 -0.4879107 1.07812163 -1.4942073 -0.7741773
41 1.10310921 0.71352968 -0.7019232 -0.10840451 1.0749980 -0.1010368
X42 X43 X44 X45 X46 X47
9 0.4234811 -1.05063004 -1.24208981 -0.02879283 0.3905585 0.2150492
24 -2.0886170 0.02532825 0.02077205 1.29389589 -0.8493276 1.0688323
30 0.5567070 1.52410075 0.91278384 0.31669206 -1.7425444 -1.1081970
32 -0.8682660 -1.12546647 -1.90655636 -0.55152207 0.7671294 0.4303743
35 -1.9928450 0.14417606 0.86915078 1.08421780 -0.8893878 -0.6524147
41 -0.5553702 -0.78877241 -2.33888226 -0.90544548 -0.8148679 0.2868039
X48 X49 X50 X51 X52 X53
9 -1.6846769 0.87224113 2.3489897 0.2940840 -0.04185823 0.813608468
24 0.7019340 -0.09308302 0.1458283 0.1389830 0.34933555 -0.004297658
30 -0.5607158 -0.16973846 -0.7039675 1.2064344 -0.15234390 2.132535611
32 0.3843102 0.34833697 -0.4322014 0.7604815 -2.03149946 -0.078964297
35 0.9373833 -0.49950051 -0.5321537 0.4985830 0.79706789 -1.305771067
41 -1.0352928 0.66550313 0.9555771 -0.1260464 1.17284968 1.413468598
X54 X55 X56 X57 X58 X59
9 1.2032821 -1.48213717 1.1532734 0.21614033 -0.12488977 0.88634830
24 -0.5293947 0.41446055 2.3042286 -0.30626523 -1.31385419 0.59266835
30 -0.2399243 0.50575895 -0.7778079 -1.10698785 0.01629495 -1.41135009
32 -1.0883657 -1.44162887 -1.6025382 -1.01208233 -0.30798172 0.07621274
35 -0.9205030 0.10478488 -0.6787302 -0.04781563 -0.40005339 1.07692625
41 -1.8396903 -0.06139124 -0.3767631 0.18871184 0.28464699 0.83234665
X60 X61 X62 X63 X64 X65
9 0.2655156 -1.2383893 0.32375959 -2.24434705 0.4483867 0.9095563
24 0.6663546 0.3892722 0.80887376 -1.09833374 0.2829821 -0.9267589
30 -0.6117569 -0.9762422 0.73007600 -1.61521110 -0.7253106 -0.5475065
32 -0.6559683 1.8769951 -0.19426695 -0.40140333 -1.7158824 0.6681119
35 0.3062344 -0.4111351 -1.59840752 0.07321213 0.4330355 1.1430842
41 -0.2126932 0.7061126 0.04196899 -0.48254992 0.6525485 -1.2519380
X66 X67 X68 X69 X70 X71
9 -0.3180060 0.2648721 -0.07840085 0.41678535 0.01356272 0.5973462
24 -0.3806120 -0.2369552 -1.50097570 0.31829841 -1.01631091 1.8824245
30 -1.5414487 -0.4686448 0.55997925 0.69705668 -1.21596703 -1.2520551
32 -0.6338493 -0.1063483 0.61788464 0.15850812 0.94569584 -0.6197527
35 0.2904673 -0.7880068 0.07966528 0.19828220 -0.70467876 -0.1928619
41 0.9414256 -1.4512564 0.88375865 0.07263767 0.37854678 -0.5488587
X72 X73 X74 X75 X76 X77
9 0.106226718 0.78092389 -1.9791734 0.06274121 1.0824091 1.5543048
24 -0.943393302 0.50137577 -1.8099018 -0.01002347 0.2316924 1.0824553
30 1.012728371 0.72131177 -0.9363939 -0.68743182 0.8625508 -1.0635782
32 1.352492805 0.03768246 0.3305589 0.05464903 -1.2077498 0.6043491
35 1.806034884 0.82011440 -0.9696285 0.81856207 0.9889259 -1.5001144
41 -0.001045249 -0.41834968 1.4856712 -0.41744168 -0.4190303 -0.3196079
X78 X79 X80 X81 X82 X83
9 -1.59492419 -1.5228337 -0.2249824 0.7972276 -0.6553943 1.0389970
24 -0.06109210 -0.2371708 0.2986415 0.2935550 -0.3219224 -0.1034308
30 0.08904691 0.1636031 -1.9036723 0.2343994 -1.5984945 -1.5928591
32 -0.16091189 -1.1790034 0.8345506 0.4653645 -1.9993013 -0.2792177
35 -0.14661989 1.4806635 0.4117957 -0.9251460 -0.1335188 -0.8848379
41 0.83980304 -0.5424590 -0.4660113 0.3949854 1.6484427 2.3770614
X84 X85 X86 X87 X88 X89
9 -2.73969717 0.7866483 -1.56614233 1.1841190 -1.1279309 1.0659905
24 0.14738877 0.8405129 -0.14672060 1.2975543 -1.0091541 -1.6623021
30 1.52487344 1.8332584 0.05385413 0.2095246 0.6531906 1.1441991
32 -0.07230942 -0.2592048 1.47733811 -0.8302220 0.3739554 -1.1768554
35 -0.19886113 -1.0078876 0.10124250 0.7283093 -1.3419418 -0.3120668
41 0.83827145 -1.4048326 0.06044548 1.2017056 0.2383882 -0.4983174
X90 X91 X92 X93 X94 X95
9 0.3498500 -2.6089688 1.5410803 -0.54391577 0.6777670 -0.2372023
24 0.7281475 -0.1201604 -1.0088552 -0.50492053 -0.2741725 1.0806077
30 -0.2160854 0.4863459 -0.1153178 0.01091970 1.0251335 -1.7441323
32 -1.3683390 0.5676410 0.9045220 -0.24064624 -0.5387261 -1.3271239
35 0.0696256 -1.2224369 1.1226814 0.47431581 0.7188144 -0.3866034
41 -0.8458695 -1.2559196 1.1047457 -0.06709917 1.8254662 0.2383070
X96 X97 X98 X99 X100
9 -1.70446601 -0.2473182 0.58627296 0.5004545 -1.48938035
24 0.23176748 -0.7371562 0.21824338 0.2603793 1.14312138
30 1.16615768 0.8510299 -2.30941428 0.6623184 0.82856031
32 0.08081769 -1.4260704 0.06189098 0.6426237 0.26632978
35 -0.37665701 0.8822369 0.48836119 -0.6942307 0.04142827
41 -0.37983483 -0.8760212 -1.33084710 0.8568386 1.28357694
Regresi LASSO merupakan metode regresi berganda yang digunakan untuk menyusutkan koefisien taksiran mendekati angka nol, juga menyeleksi peubah-peubah penjelas sehingga menghasilkan model dengan peubah yang memiliki pengaruh terhadap peubah respon. Peubah penjelas yang tidak memiliki pengaruh terhadap peubah respon (tidak signifikan dalam model) dikeluarkan dari model (Wirdiastuti et al., 2023).
LASSO adalah metode regresi yang melakukan regularisasi L1, yang berarti ia menambahkan penalti terhadap besarnya koefisien regresi, sehingga beberapa koefisien regresi bisa ditekan menjadi nol. Hal ini membuat Lasso berguna untuk seleksi fitur dalam kasus data dengan banyak fitur (dimensi tinggi).
Lasso memperluas model regresi linear dengan menambahkan penalti L1 terhadap fungsi kesalahan (Zhao & Yu, 2006). Fungsi objektif dari regresi Lasso dapat dituliskan sebagai berikut:
\[ \min_{\beta}\left(\frac{1}{2N}\sum_{i=1}^{N}(y_i-X_i\beta)^2+\lambda\sum_{j=1}^{p}|\beta_j|\right) \]
Keterangan:
Komponen MSE:\(\frac{1}{2N}\sum_{i=1}^{N}(y_i-X_i\beta)^2\) komponen ini merupakan Mean Squared Error (MSE) dari regresi linear biasa, di mana \(y_i\) adalah nilai aktual dari variabel respon, \(X_i\) adalah variabel prediktor, dan \(\beta\) adalah koefisien dari variabel prediktor.
Penalti L1: \(\lambda\sum_{j=1}^{p}|beta_j|\) adalah komponen penalti L1, di mana penalti dihitung dari jumlah nilai absolut koefisien \(\beta_j\) , untuk semua variabel prediktor \(j\). Penalti L1 (Lasso) adalah jumlah absolut dari nilai koefisien regresi:
\[\sum_{j=1}^{p}|\beta_j|\]
\(\lambda\) adalah parameter regularisasi yang mengontrol seberapa besar penalti yang diberikan. Jika \(\lambda\) besar, lebih banyak koefisien akan ditekan menuju nol. Nilai optimal \(\lambda\) biasanya ditemukan melalui cross-validation, di mana performa model diuji pada beberapa subset data untuk memilih nilai \(\lambda\) yang menghasilkan model terbaik.
Secara umum, asumsi LASSO sama dengan asumsi regresi linear yaitu normalitas galat, tidak terjadi autokorelasi, dan homogenitas hanya saja LASSO lebih cocok digunakan pada:
# Membuat model Lasso
set.seed(4)
library(glmnet)
x_train <- model.matrix(Y ~ ., train_data)[, -1]
y_train <- train_data$Y
model_lasso <- cv.glmnet(x_train, y_train, alpha = 1, nfolds = 5, type.measure = "mae") # Menggunakan 5-fold
model_lasso
Call: cv.glmnet(x = x_train, y = y_train, type.measure = "mae", nfolds = 5, alpha = 1)
Measure: Mean Absolute Error
Lambda Index Measure SE Nonzero
min 0.5744 51 6.472 0.2726 28
1se 0.9146 41 6.720 0.3841 23
best_lambda <- model_lasso$lambda.min
best_lambda[1] 0.5744055
pred_lasso <- predict(model_lasso, s = best_lambda, newx = model.matrix(Y ~ ., test_data)[, -1])
head(pred_lasso) s1
9 -0.3708249
24 -8.2935232
30 -9.4099534
32 5.1324129
35 -4.9450305
41 3.2398910
Nilai lamda optimum berdasarkan nilai mae terkecil
lambda_op <- broom::glance(model_lasso)
lambda_op# A tibble: 1 × 3
lambda.min lambda.1se nobs
<dbl> <dbl> <int>
1 0.574 0.915 42
Nilai prediksi lasso
pred_lasso <- predict(model_lasso, s = best_lambda, newx = model.matrix(Y ~ ., test_data)[, -1])
pred_lasso s1
9 -0.3708249
24 -8.2935232
30 -9.4099534
32 5.1324129
35 -4.9450305
41 3.2398910
43 9.8403926
48 -8.6282505
Nilai koefisien terpilih dapat dikeluarkan dengan bantuan package broom
broom::tidy(model_lasso)# A tibble: 100 × 6
lambda estimate std.error conf.low conf.high nzero
<dbl> <dbl> <dbl> <dbl> <dbl> <int>
1 5.88 8.64 0.608 8.03 9.25 0
2 5.61 8.61 0.631 7.98 9.24 1
3 5.36 8.58 0.650 7.93 9.23 1
4 5.11 8.54 0.661 7.88 9.21 1
5 4.88 8.51 0.667 7.85 9.18 1
6 4.66 8.47 0.673 7.79 9.14 2
7 4.45 8.41 0.678 7.73 9.09 2
8 4.25 8.36 0.681 7.68 9.04 2
9 4.05 8.31 0.683 7.62 8.99 3
10 3.87 8.26 0.675 7.59 8.94 3
# ℹ 90 more rows
broom::tidy(model_lasso$glmnet.fit)# A tibble: 2,524 × 5
term step estimate lambda dev.ratio
<chr> <dbl> <dbl> <dbl> <dbl>
1 (Intercept) 1 -0.588 5.88 0
2 (Intercept) 2 -0.608 5.61 0.0258
3 (Intercept) 3 -0.627 5.36 0.0492
4 (Intercept) 4 -0.645 5.11 0.0706
5 (Intercept) 5 -0.662 4.88 0.0901
6 (Intercept) 6 -0.679 4.66 0.108
7 (Intercept) 7 -0.719 4.45 0.139
8 (Intercept) 8 -0.756 4.25 0.168
9 (Intercept) 9 -0.787 4.05 0.198
10 (Intercept) 10 -0.813 3.87 0.229
# ℹ 2,514 more rows
Nilai koefisien model lasso secara keseluruhan berdasarkan lambda minimum
coef_min <- coef(model_lasso, s = lambda_op$lambda.min)
coef_min101 x 1 sparse Matrix of class "dgCMatrix"
s1
(Intercept) -0.92084969
X1 .
X2 0.01591708
X3 .
X4 .
X5 .
X6 .
X7 .
X8 .
X9 -0.30543703
X10 -0.13380617
X11 .
X12 .
X13 .
X14 .
X15 .
X16 .
X17 -3.79349717
X18 -2.23928222
X19 .
X20 .
X21 0.12470048
X22 1.13575981
X23 .
X24 .
X25 .
X26 0.79235974
X27 .
X28 .
X29 .
X30 .
X31 .
X32 .
X33 .
X34 -0.50747831
X35 .
X36 1.25243024
X37 0.54510065
X38 0.93825073
X39 .
X40 .
X41 .
X42 0.50109022
X43 -1.23667959
X44 -1.58982382
X45 .
X46 .
X47 0.43919561
X48 -0.40531697
X49 .
X50 .
X51 -2.51973633
X52 .
X53 .
X54 .
X55 .
X56 .
X57 .
X58 .
X59 .
X60 .
X61 .
X62 .
X63 .
X64 0.05824626
X65 2.50706469
X66 .
X67 -0.32698603
X68 .
X69 -0.55398588
X70 .
X71 .
X72 .
X73 .
X74 .
X75 .
X76 .
X77 .
X78 .
X79 .
X80 .
X81 .
X82 0.01844419
X83 .
X84 0.59774997
X85 .
X86 .
X87 .
X88 .
X89 .
X90 -0.11114504
X91 .
X92 0.35883246
X93 0.48971065
X94 .
X95 .
X96 1.80894119
X97 .
X98 .
X99 .
X100 .
Dari hasil yang diperoleh dapat dilihat bahwa hanya terdapat 28 variabel yang memiliki nilai koefisien. Hal tersebut terjadi karena peubah-peubah penjelas yang tidak memiliki pengaruh terhadap peubah respon mengalami menyusutan menjadi 0. Sehingga yang memiliki nilai koefisien hanya variabel penjelas yang memiliki pengaruh saja terhadap peubah respon.
Regresi Linear Berganda ditujukan untuk menguji pengaruh dua atau lebih variabel bebas (independent variable) terhadap satu variabel tak bebas (dependent variable). Model ini mengasumsikan adanya hubungan satu garis lurus/linear antara variabel dependen dengan masing-masing prediktornya (Janie, 2012). Salah satu asumsi yang harus terpenuhi untuk melakukan pengujian hipotesis terhadap parameter dalam analisis regresi linear berganda adalah tidak terjadinya korelasi antar variabel bebas (multikolinear) (Marcus, et al,. 2012). Secara umum model regresi linear berganda dinyatakan sebagai berikut:
\[ Y=\beta_0+\beta_1X_1+\beta_2X_2+\cdots+\beta_nX_n+\varepsilon_i \]
Keterangan:
- \(Y\) = Variabel Tak Bebas
- \(X_n\) = Variabel Bebas
- \(\beta_0\) = Intercept (Konstanta)
- \(\beta_n\) = Koefisien Regresi
- \(\varepsilon_i\) = Galat acak (error term)
Berikut beberapa aspek yang dapat diperhatikan untuk membandingkan model regresi linear berganda dengan regresi LASSO:
Model dengan MSE, MAE, MAPE ataupun RMSE yang lebih rendah umumnya dianggap lebih baik dalam hal prediksi.
# Membuat model regresi linear berganda
model_linear <- lm(Y ~ ., data = train_data)
model_linear
Call:
lm(formula = Y ~ ., data = train_data)
Coefficients:
(Intercept) X1 X2 X3 X4 X5
-6.4655 7.4299 1.9080 4.5786 -13.2341 -4.0899
X6 X7 X8 X9 X10 X11
-7.5860 -2.4785 -1.7356 -2.2383 -10.0847 0.4372
X12 X13 X14 X15 X16 X17
-2.9202 -1.7972 2.3065 -1.9511 -9.1817 -3.0193
X18 X19 X20 X21 X22 X23
-3.0408 -0.4217 0.7553 5.1627 1.0812 -9.1002
X24 X25 X26 X27 X28 X29
4.6892 9.2519 -0.1101 -5.1101 3.2007 3.4262
X30 X31 X32 X33 X34 X35
-9.7326 2.5044 -4.0222 4.8505 4.5970 -6.1081
X36 X37 X38 X39 X40 X41
3.3358 5.7363 0.6175 -4.6442 -5.4785 -4.9243
X42 X43 X44 X45 X46 X47
NA NA NA NA NA NA
X48 X49 X50 X51 X52 X53
NA NA NA NA NA NA
X54 X55 X56 X57 X58 X59
NA NA NA NA NA NA
X60 X61 X62 X63 X64 X65
NA NA NA NA NA NA
X66 X67 X68 X69 X70 X71
NA NA NA NA NA NA
X72 X73 X74 X75 X76 X77
NA NA NA NA NA NA
X78 X79 X80 X81 X82 X83
NA NA NA NA NA NA
X84 X85 X86 X87 X88 X89
NA NA NA NA NA NA
X90 X91 X92 X93 X94 X95
NA NA NA NA NA NA
X96 X97 X98 X99 X100
NA NA NA NA NA
pred_linear <- predict(model_linear, newdata = test_data)Warning in predict.lm(model_linear, newdata = test_data): prediction from
rank-deficient fit; attr(*, "non-estim") has doubtful cases
head(pred_linear) 9 24 30 32 35 41
13.868679 109.763557 -15.928010 -11.427730 1.564326 -1.215505
Terdapat beberapa asumsi atau persyaratan yang harus terpenuhi dalam model regresi yang dibuktikan melalui serangakaian uji asumsi klasik, yaitu:
# Uji Normalitas
# Plot Q-Q plot untuk melihat distribusi normal residual
qqnorm(residuals(model_linear))
qqline(residuals(model_linear), col = "red")# Uji Linearitas
plot(model_linear, which = 1)Dalam analisis regresi linear, ketika jumlah variabel prediktor (p) lebih besar dari jumlah observasi (n), model regresi linear menjadi tidak dapat diestimasi dengan benar. Kondisi ini disebut sebagai masalah underdetermined atau p > n problem.
Jika p > n : Uji asumsi regresi linear tidak dapat dilakukan atau hasilnya tidak valid karena jumlah variabel prediktor lebih banyak daripada jumlah observasi, sehingga model menjadi tidak stabil dan overfitted.
Jika p < n : Uji regresi linear dapat dilakukan dengan hasil yang lebih valid, karena jumlah observasi lebih banyak daripada variabel prediktor, yang memungkinkan model regresi diestimasi dengan benar.
Ketika variabel-variabel bebas berkorelasi tinggi, pengujian hipotesis menggunakan Metode Kuadrat Terkecil (Ordinary Least Square) menghasilkan estimasi yang tidak valid, seperti galat menjadi besar, variansi dan kovariansi parameter tak berhingga, serta koefisien regresi yang tidak stabil. Hal ini dapat menyebabkan variabel-variabel bebas yang seharusnya signifikan menjadi tidak signifikan secara statistik, tanda koefisien bertentangan dengan kondisi sebenarnya, dan prediksi yang tidak akurat. Masalah ini memunculkan kebutuhan akan metode atau Teknik yang mampu mengatasi multikolinearitas dalam analisis regresi linear berganda. Salah satu pendekatan yang dapat digunakan untuk mengatasi masalah ini adalah regresi LASSO.
# Menghitung metrik untuk model linear
MAE_linear <- mean(abs(test_data$Y - pred_linear))
MSE_linear <- mean((test_data$Y - pred_linear)^2)
RMSE_linear <- sqrt(MSE_linear)
MAPE_linear <- mean(abs((test_data$Y - pred_linear) / test_data$Y)) * 100
R2_linear <- summary(model_linear)$r.squared# Menghitung metrik untuk model Lasso
MAE_lasso <- mean(abs(test_data$Y - pred_lasso))
MSE_lasso <- mean((test_data$Y - pred_lasso)^2)
RMSE_lasso <- sqrt(MSE_lasso)
MAPE_lasso <- mean(abs((test_data$Y - pred_lasso) / test_data$Y)) * 100
R2_lasso <- 1 - sum((test_data$Y - pred_lasso)^2) / sum((test_data$Y - mean(test_data$Y))^2)# Menampilkan hasil
results <- data.frame(
Metric = c("MAE", "MSE", "RMSE", "MAPE", "R-squared"),
Linear = c(MAE_linear, MSE_linear, RMSE_linear, MAPE_linear, R2_linear),
Lasso = c(MAE_lasso, MSE_lasso, RMSE_lasso,MAPE_lasso, R2_lasso)
)
print(results) Metric Linear Lasso
1 MAE 28.58949 7.1542187
2 MSE 1850.47058 68.0748754
3 RMSE 43.01710 8.2507500
4 MAPE 1091.93322 193.4433869
5 R-squared 1.00000 0.3036638
Lasso adalah model yang lebih baik jika dilihat dari MAE, MSE, RMSE, dan MAPE, yang semuanya lebih rendah dibandingkan model linear. Ini menunjukkan bahwa model Lasso memberikan prediksi yang lebih akurat dan stabil, terutama dalam hal mengurangi kesalahan rata-rata dan kesalahan kuadrat.
Linear memiliki nilai \(R^2\) yang sempurna, namun ini bisa mengindikasikan overfitting, terutama jika metrik kesalahan lainnya (MAE, MSE, RMSE, dan MAPE) jauh lebih tinggi dibandingkan Lasso. Overfitting berarti model linear mungkin terlalu menyesuaikan diri dengan data latih dan tidak memiliki kemampuan generalisasi yang baik.
Meskipun \(R^2\) model linear terlihat sangat baik, metrik kesalahan yang lebih rendah pada Lasso (MAE, MSE, RMSE, MAPE) menunjukkan bahwa model Lasso lebih baik dalam hal akurasi dan generalisasi, terutama karena Lasso dikenal dapat mengatasi overfitting dengan lebih baik melalui regularisasi.
# Membuat data frame untuk visualisasi
results_df <- data.frame(
Index = 1:length(test_data$Y), # Indeks untuk sumbu x
Data_Aktual = test_data$Y,
Predicted_Linear = pred_linear,
Predicted_Lasso = pred_lasso
)
colnames(results_df) <- c("Index", "Aktual", "Predicted_Linear", "Predicted_Lasso")# Visualisasi Perbandingan Hasil Prediksi Regresi Lasso dan Linear
ggplot(results_df, aes(x = Index)) +
geom_line(aes(y = Aktual, color = "Aktual"), linewidth = 1) +
geom_line(aes(y = Predicted_Linear, color = "Predicted Linear"), linetype = "dashed", linewidth = 1) +
geom_line(aes(y = Predicted_Lasso, color = "Predicted Lasso"), linetype = "dotted", linewidth = 1) +
labs(title = "Diagram Garis: Data Aktual vs. Prediksi",
x = "Index",
y = "Nilai") +
scale_color_manual(name = "Legend",
values = c("Aktual" = "black", "Predicted Lasso" = "red", "Predicted Linear" = "blue")) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))Model Lasso cenderung memberikan prediksi yang lebih stabil dan mendekati data aktual pada sebagian besar indeks. Hal ini mungkin disebabkan oleh regularisasi yang mengurangi efek dari variabel yang kurang signifikan.
Model Linear memberikan prediksi yang jauh lebih ekstrem pada titik tertentu (indeks kedua), yang menunjukkan potensi overfitting, di mana model terlalu mengikuti data pelatihan dan kurang mampu generalisasi.
Dari hasil ini, terlihat bahwa Lasso Regression dapat menjadi pilihan yang lebih baik dalam menangani data yang memiliki nilai ekstrim atau fluktuasi besar, karena regularisasi membantu menjaga model tetap sederhana dan lebih generalisasi.