BAB I PENDAHULUAN

1.1 Latar Belakang

Ensemble learning merupakan pendekatan machine learning yang menggabungkan beberapa model untuk menghasilkan prediksi. Salah satu metodenya adalah bagging (Bootstrap Aggregating), yaitu membangun model dari sejumlah sampel bootstrap yang diambil dari data pelatihan, kemudian menggabungkan hasil prediksi model-model tersebut. Breiman (1996) menjelaskan bahwa bagging dapat meningkatkan kestabilan prediksi dengan menggabungkan hasil dari sejumlah model yang dibangun pada sampel bootstrap. Pada regresi, hasil prediksi umumnya digabungkan dengan menghitung rata-rata prediksi dari seluruh model.

Praktikum ini menerapkan Bagging Regression pada dataset Friedman. Dataset Friedman merupakan data simulasi yang digunakan untuk menguji metode regresi pada hubungan prediktor dan respons yang nonlinier. Model dibangun menggunakan jumlah model gabungan (nbagg) sebesar 25, 50, dan 100. Kinerja masing-masing model dibandingkan menggunakan metrik evaluasi regresi untuk mengetahui jumlah bagging yang menghasilkan prediksi lebih baik. Evaluasi dilakukan pada data yang tidak digunakan untuk melatih model agar penilaian kinerja mencerminkan kemampuan prediksi pada data baru (James et al., 2021).

1.2 Rumusan Masalah

  1. Bagaimana menerapkan metode Bagging Regression pada dataset Friedman menggunakan R?
  2. Bagaimana perbandingan kinerja model dengan nbagg = 25, nbagg = 50, dan nbagg = 100 berdasarkan metrik evaluasi regresi?

1.3 Tujuan

  1. Menerapkan metode Bagging Regression pada dataset Friedman.
  2. Membandingkan hasil model dengan jumlah bagging 25, 50, dan 100.
  3. Menentukan model dengan kinerja prediksi terbaik berdasarkan metrik evaluasi pada data testing.

BAB II TINJAUAN PUSTAKA

2.1 Regresi

Regresi merupakan metode supervised learning yang digunakan untuk memprediksi nilai respons numerik berdasarkan satu atau lebih variabel prediktor. Dalam pemodelan prediktif, data umumnya dipisahkan menjadi data pelatihan dan pengujian; data pengujian digunakan untuk menilai kemampuan model pada observasi yang tidak digunakan selama pelatihan (James et al., 2021).

2.2 Ensemble Learning dan Bagging Regression

Ensemble learning menggabungkan beberapa model untuk menghasilkan prediksi akhir. Bagging membentuk sampel bootstrap dari data training, melatih model pada setiap sampel, kemudian menggabungkan prediksinya. Dalam regresi, prediksi akhir biasanya berupa rata-rata prediksi seluruh model. Menurut Breiman (1996), pendekatan ini dapat mengurangi varians prediksi, khususnya pada metode yang sensitif terhadap perubahan data pelatihan. Namun, penambahan jumlah model tidak selalu menghasilkan peningkatan kinerja yang besar.

Parameter nbagg pada fungsi bagging menunjukkan jumlah model yang dibangun. Pada praktikum ini, nilai nbagg yang dibandingkan adalah 25, 50, dan 100. Data training yang sama digunakan untuk setiap model agar hasil perbandingan lebih adil.

2.3 Dataset Friedman

Dataset Friedman yang digunakan dalam praktikum ini merupakan data simulasi yang dibangkitkan menggunakan fungsi mlbench.friedman1() dari package mlbench (Leisch & Dimitriadou, n.d.). Dataset ini memiliki sepuluh variabel prediktor dan satu variabel respons numerik. Hubungan antara prediktor dan respons bersifat nonlinier sehingga dapat digunakan untuk mengevaluasi kemampuan model regresi dalam menangkap pola data.

2.4 Metrik Evaluasi Regresi

Evaluasi dilakukan dengan membandingkan nilai aktual dan prediksi pada data testing menggunakan metrik berikut.

  • RMSE (Root Mean Squared Error) mengukur akar rata-rata kuadrat kesalahan prediksi. Nilai yang lebih kecil menunjukkan kesalahan prediksi yang lebih rendah.
  • MAE (Mean Absolute Error) mengukur rata-rata nilai absolut kesalahan prediksi. Nilai yang lebih kecil menunjukkan prediksi yang lebih dekat dengan nilai aktual.
  • R-squared (R²) menunjukkan proporsi variasi respons yang dapat dijelaskan model. Nilai yang lebih tinggi umumnya menunjukkan kecocokan yang lebih baik.
  • MAPE (Mean Absolute Percentage Error) mengukur rata-rata kesalahan absolut dalam bentuk persentase. Metrik ini perlu ditafsirkan dengan hati-hati apabila nilai aktual mendekati nol.

Penggunaan beberapa metrik memberikan gambaran evaluasi yang lebih lengkap karena setiap metrik memiliki karakteristik yang berbeda. Hyndman dan Koehler (2006) membahas keterbatasan sejumlah ukuran akurasi prediksi, sehingga pemilihan dan interpretasi metrik perlu disesuaikan dengan karakteristik data.

Rumus metrik yang digunakan adalah:

\[ RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2} \]

\[ MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i| \]

\[ R^2=1-\frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2} \]

\[ MAPE=\frac{100\%}{n}\sum_{i=1}^{n}\left|\frac{y_i-\hat{y}_i}{y_i}\right| \]

BAB III METODE PENELITIAN

3.1 Sumber Data

Data yang digunakan adalah dataset simulasi Friedman yang dibangkitkan melalui fungsi mlbench.friedman1() dari package mlbench di R. Data dibuat secara reproducible dengan menetapkan random seed sehingga hasil pembangkitan data dan pembagian data dapat diulang.

3.2 Variabel Penelitian

Variabel respons adalah y, sedangkan variabel prediktor terdiri atas x1 sampai x10.

Variabel Keterangan
y Variabel respons numerik yang diprediksi
x1–x10 Sepuluh variabel prediktor pada dataset Friedman

3.3 Langkah-Langkah Analisis

  1. Memanggil package yang diperlukan dan membangkitkan dataset Friedman.
  2. Memeriksa struktur, dimensi, ringkasan, dan nilai hilang pada data.
  3. Membagi data menjadi 70% data training dan 30% data testing.
  4. Membangun model Bagging Regression dengan nbagg = 25, 50, dan 100 menggunakan data training yang sama.
  5. Memprediksi variabel respons pada data testing untuk setiap model.
  6. Menghitung RMSE, MAE, R², dan MAPE.
  7. Membandingkan hasil evaluasi melalui tabel dan grafik.
  8. Menentukan model terbaik berdasarkan RMSE dan MAE yang lebih rendah serta R² yang lebih tinggi. MAPE digunakan sebagai metrik tambahan.

BAB IV HASIL DAN PEMBAHASAN

4.1 Memuat Package dan Dataset

knitr::opts_chunk$set(echo = FALSE)
# Jalankan sekali jika package belum terpasang:
# install.packages(c("mlbench", "ipred", "ggplot2", "tidyr", "scales"))

library(mlbench)
library(ipred)
library(ggplot2)
library(tidyr)
library(scales)

# Membuat dataset Friedman
set.seed(123)
data_friedman <- as.data.frame(mlbench.friedman1(n = 1000, sd = 1))

# Memastikan nama variabel respons dan prediktor
names(data_friedman)[ncol(data_friedman)] <- "y"

# Pemeriksaan awal data
dim(data_friedman)
## [1] 1000   11
str(data_friedman)
## 'data.frame':    1000 obs. of  11 variables:
##  $ x.1 : num  0.288 0.788 0.409 0.883 0.94 ...
##  $ x.2 : num  0.274 0.594 0.16 0.853 0.848 ...
##  $ x.3 : num  0.16 0.145 0.149 0.514 0.493 ...
##  $ x.4 : num  0.206 0.943 0.379 0.626 0.184 ...
##  $ x.5 : num  0.304 0.833 0.594 0.807 0.294 ...
##  $ x.6 : num  0.249 0.989 0.717 0.652 0.241 ...
##  $ x.7 : num  0.4403 0.3974 0.3715 0.5288 0.0738 ...
##  $ x.8 : num  0.9303 0.591 0.0797 0.845 0.0298 ...
##  $ x.9 : num  0.578 0.489 0.742 0.226 0.749 ...
##  $ x.10: num  0.798 0.879 0.242 0.56 0.905 ...
##  $ y   : num  7.85 27.19 10.12 18.77 10.17 ...
summary(data_friedman)
##       x.1                 x.2                x.3                x.4           
##  Min.   :0.0004654   Min.   :0.001156   Min.   :0.003516   Min.   :6.534e-05  
##  1st Qu.:0.2536404   1st Qu.:0.253137   1st Qu.:0.233550   1st Qu.:2.434e-01  
##  Median :0.4899502   Median :0.498370   Median :0.496463   Median :5.054e-01  
##  Mean   :0.4972778   Mean   :0.498256   Mean   :0.498604   Mean   :5.040e-01  
##  3rd Qu.:0.7468051   3rd Qu.:0.745485   3rd Qu.:0.745841   3rd Qu.:7.685e-01  
##  Max.   :0.9994045   Max.   :0.999524   Max.   :0.999651   Max.   :9.995e-01  
##       x.5                x.6                x.7                x.8           
##  Min.   :0.000829   Min.   :0.001636   Min.   :0.000863   Min.   :0.0008261  
##  1st Qu.:0.254085   1st Qu.:0.269757   1st Qu.:0.264754   1st Qu.:0.2504367  
##  Median :0.485769   Median :0.493714   Median :0.490621   Median :0.4978823  
##  Mean   :0.489129   Mean   :0.505534   Mean   :0.496102   Mean   :0.4980242  
##  3rd Qu.:0.733984   3rd Qu.:0.761554   3rd Qu.:0.734836   3rd Qu.:0.7471687  
##  Max.   :0.999941   Max.   :0.999688   Max.   :0.997738   Max.   :0.9981033  
##       x.9                x.10                 y          
##  Min.   :0.001941   Min.   :9.374e-05   Min.   : 0.6104  
##  1st Qu.:0.253597   1st Qu.:2.471e-01   1st Qu.:10.7249  
##  Median :0.491687   Median :4.894e-01   Median :14.4085  
##  Mean   :0.489310   Mean   :4.993e-01   Mean   :14.3998  
##  3rd Qu.:0.729686   3rd Qu.:7.498e-01   3rd Qu.:17.9296  
##  Max.   :0.999716   Max.   :9.998e-01   Max.   :27.5047
head(data_friedman)
##         x.1       x.2       x.3       x.4       x.5        x.6        x.7
## 1 0.2875775 0.2736227 0.1596740 0.2058269 0.3044642 0.24862988 0.44026102
## 2 0.7883051 0.5938669 0.1445159 0.9425390 0.8328188 0.98946318 0.39739215
## 3 0.4089769 0.1601848 0.1491804 0.3793238 0.5936475 0.71712190 0.37154765
## 4 0.8830174 0.8534302 0.5144343 0.6262401 0.8071966 0.65172829 0.52880857
## 5 0.9404673 0.8477392 0.4928273 0.1835024 0.2940508 0.24055621 0.07378541
## 6 0.0455565 0.4778868 0.6163428 0.6592076 0.1410852 0.08679275 0.71684977
##          x.8       x.9        x.10         y
## 1 0.93034086 0.5779101 0.797964158  7.849800
## 2 0.59104489 0.4888454 0.879135979 27.194434
## 3 0.07974532 0.7421904 0.242462305 10.119632
## 4 0.84501857 0.2256090 0.559528822 18.774356
## 5 0.02978437 0.7488911 0.904773553 10.169495
## 6 0.81465972 0.8248685 0.008198569  8.586764

Dataset Friedman yang digunakan dalam penelitian ini terdiri atas 1.000 observasi dengan 11 variabel, yaitu 10 variabel prediktor dari x.1 hingga x.10 dan satu variabel respons, yaitu y. Berdasarkan statistik deskriptif, variabel prediktor memiliki nilai minimum dan maksimum yang berada pada rentang 0 hingga 1. Sementara itu, variabel respons y memiliki nilai minimum sebesar 0,6104, maksimum sebesar 27,5047, dan rata-rata sebesar 14,3998. Nilai median sebesar 14,4085 juga menunjukkan bahwa nilai tengah variabel respons berada dekat dengan rata-ratanya. Statistik deskriptif ini memberikan gambaran awal mengenai karakteristik data yang akan digunakan dalam pemodelan Bagging Regression.

4.2 Pemeriksaan Data

##  x.1  x.2  x.3  x.4  x.5  x.6  x.7  x.8  x.9 x.10    y 
##    0    0    0    0    0    0    0    0    0    0    0
## [1] 0
## Jumlah observasi: 1000
## Jumlah variabel: 11

Berdasarkan hasil pemeriksaan, seluruh variabel dalam dataset Friedman tidak memiliki nilai hilang (missing value). Hal ini ditunjukkan oleh hasil pemeriksaan setiap kolom yang seluruhnya bernilai nol serta jumlah keseluruhan nilai hilang sebesar nol. Dataset juga memiliki 1.000 observasi dan 11 variabel. Dengan demikian, seluruh data dapat digunakan dalam proses pemodelan tanpa memerlukan penanganan nilai hilang. Kondisi ini membantu menjaga kelengkapan data dalam proses pelatihan dan evaluasi model Bagging Regression.

4.3 Membagi Data Training dan Testing

## Jumlah data training: 700
## Jumlah data testing : 300

Pembagian dataset Friedman dilakukan dengan proporsi 70% untuk data training dan 30% untuk data testing. Berdasarkan hasil pembagian, sebanyak 700 observasi digunakan sebagai data training, sedangkan 300 observasi digunakan sebagai data testing. Data training digunakan untuk membangun model Bagging Regression, sementara data testing digunakan untuk mengevaluasi kemampuan model dalam memprediksi observasi yang tidak digunakan selama pelatihan. Pembagian data yang sama diterapkan pada seluruh variasi jumlah bagging agar perbandingan kinerja model dapat dilakukan secara konsisten.

4.4 Membangun Model Bagging Regression

##   nbagg OOB_Error
## 1    25  2.768357
## 2    50  2.699588
## 3   100  2.660957

Hasil pemodelan Bagging Regression menunjukkan bahwa nilai kesalahan out-of-bag (OOB) berbeda pada setiap jumlah bagging. Model dengan nbagg = 25 menghasilkan nilai OOB sebesar 2,768357, sedangkan model dengan nbagg = 50 menghasilkan nilai sebesar 2,699588. Selanjutnya, model dengan nbagg = 100 menghasilkan nilai OOB sebesar 2,660957. Hasil tersebut menunjukkan bahwa nilai kesalahan OOB cenderung menurun seiring dengan bertambahnya jumlah bagging. Model dengan nbagg = 100 memiliki nilai OOB terkecil di antara ketiga model yang diuji, sehingga memberikan indikasi kinerja yang lebih baik berdasarkan ukuran kesalahan tersebut. Meskipun demikian, penentuan model terbaik tetap perlu mempertimbangkan metrik evaluasi pada data testing.

4.5 Prediksi pada Data Testing

##     Aktual Prediksi_25 Prediksi_50 Prediksi_100
## 1  7.84980    9.542980    9.753074     9.584796
## 2 10.11963    9.077582    9.184279     9.282199
## 3 18.77436   18.339040   18.613508    18.602960
## 4 22.01049   19.631795   19.946386    19.995622
## 5 17.11289   15.045061   15.128269    15.222272
## 6 18.57653   15.786754   15.843290    15.679965

Berdasarkan hasil prediksi pada data testing, setiap model Bagging Regression menghasilkan nilai prediksi yang berbeda untuk observasi yang sama. Sebagai contoh, pada observasi pertama, nilai aktual variabel y adalah 7,84980, sedangkan prediksi model dengan nbagg = 25, nbagg = 50, dan nbagg = 100 masing-masing sebesar 9,54298, 9,75307, dan 9,58480. Perbedaan tersebut menunjukkan bahwa jumlah bagging dapat memengaruhi hasil prediksi model. Pada beberapa observasi lainnya, nilai prediksi juga berbeda dari nilai aktual dengan tingkat selisih yang bervariasi. Namun, tabel yang ditampilkan baru menunjukkan beberapa contoh hasil prediksi sehingga belum cukup untuk menentukan model dengan kinerja terbaik. Oleh karena itu, diperlukan perhitungan metrik evaluasi, seperti RMSE, MAE, R², dan MAPE, untuk membandingkan ketepatan prediksi ketiga model secara menyeluruh.

4.6 Menghitung Metrik Evaluasi

Perbandingan metrik evaluasi Bagging Regression
nbagg RMSE MAE R2 MAPE
25 2.7012 2.2074 0.7064 20.02
50 2.6333 2.1466 0.7210 19.65
100 2.6304 2.1454 0.7216 19.55

Berdasarkan hasil evaluasi model Bagging Regression dengan jumlah bagging sebanyak 25, 50, dan 100, diperoleh nilai RMSE masing-masing sebesar 2,7012; 2,6333; dan 2,6304. Nilai MAE yang diperoleh secara berurutan adalah 2,2074; 2,1466; dan 2,1454. Sementara itu, nilai R² meningkat dari 0,7064 menjadi 0,7210 dan 0,7216, sedangkan nilai MAPE menurun dari 20,02% menjadi 19,65% dan 19,55%. Hasil tersebut menunjukkan bahwa peningkatan jumlah bagging cenderung memperbaiki kinerja model, yang ditandai dengan penurunan nilai RMSE, MAE, dan MAPE serta peningkatan nilai R². Berdasarkan keempat metrik evaluasi tersebut, model dengan 100 bagging memberikan hasil terbaik karena memiliki tingkat kesalahan prediksi paling rendah dan kemampuan menjelaskan variasi data yang paling tinggi di antara ketiga model yang dibandingkan..

4.7 Perbandingan Kinerja Model

Berdasarkan grafik perbandingan kinerja model Bagging Regression, terlihat bahwa peningkatan jumlah bagging dari 25 menjadi 100 menghasilkan perbaikan pada seluruh metrik evaluasi. Nilai MAE menurun dari sekitar 2,2074 menjadi 2,1454, sedangkan nilai RMSE menurun dari 2,7012 menjadi 2,6304. Penurunan tersebut menunjukkan bahwa rata-rata kesalahan prediksi model semakin kecil. Di sisi lain, nilai R² meningkat dari 0,7064 menjadi 0,7216, yang menunjukkan bahwa kemampuan model dalam menjelaskan variasi variabel respons semakin baik. Nilai MAPE juga mengalami penurunan dari 20,02% menjadi 19,55%. Dengan demikian, model dengan 100 bagging menunjukkan kinerja terbaik dibandingkan model dengan 25 dan 50 bagging. Namun, perbaikan kinerja setelah jumlah bagging mencapai 50 relatif kecil sehingga penambahan jumlah bagging perlu dipertimbangkan berdasarkan peningkatan akurasi dan kebutuhan komputasi.

4.8 Menentukan Model Terbaik

## Model dengan RMSE terkecil:
##   nbagg     RMSE      MAE        R2     MAPE
## 3   100 2.630381 2.145369 0.7215805 19.55222
##   nbagg     RMSE      MAE        R2     MAPE
## 3   100 2.630381 2.145369 0.7215805 19.55222
## 2    50 2.633315 2.146580 0.7209591 19.64595
## 1    25 2.701155 2.207406 0.7063963 20.01882

Penentuan model terbaik dilakukan berdasarkan nilai RMSE terkecil dari ketiga model Bagging Regression yang diuji. Berdasarkan hasil evaluasi, model dengan jumlah bagging sebanyak 100 menghasilkan nilai RMSE sebesar 2,6304, MAE sebesar 2,1454, R² sebesar 0,7216, dan MAPE sebesar 19,55%. Model dengan 50 bagging memperoleh nilai RMSE sebesar 2,6333, sedangkan model dengan 25 bagging memperoleh nilai RMSE sebesar 2,7012. Oleh karena itu, model dengan 100 bagging dipilih sebagai model terbaik karena memiliki nilai RMSE paling rendah. Hasil ini menunjukkan bahwa penggunaan 100 bagging memberikan prediksi yang relatif lebih akurat dibandingkan dengan jumlah bagging lainnya. Meskipun demikian, pemilihan model terbaik berdasarkan RMSE juga perlu mempertimbangkan nilai metrik evaluasi lainnya agar kinerja model dapat dinilai secara menyeluruh.

4.9 Ringkasan Hasil Analisis

## Jumlah observasi: 1000
## Jumlah data training: 700
## Jumlah data testing: 300
##   nbagg     RMSE      MAE        R2     MAPE
## 1    25 2.701155 2.207406 0.7063963 20.01882
## 2    50 2.633315 2.146580 0.7209591 19.64595
## 3   100 2.630381 2.145369 0.7215805 19.55222
## 
## Model terbaik berdasarkan RMSE terkecil: nbagg = 100
## RMSE: 2.6304
## MAE : 2.1454
## R2  : 0.7216
## MAPE: 19.55 %

Berdasarkan keseluruhan hasil analisis, penelitian ini menggunakan 1.000 observasi yang dibagi menjadi 700 data training dan 300 data testing. Evaluasi dilakukan terhadap model Bagging Regression dengan jumlah bagging sebanyak 25, 50, dan 100. Hasil pengujian menunjukkan bahwa model dengan 100 bagging merupakan model terbaik berdasarkan nilai RMSE terkecil, yaitu sebesar 2,6304. Model tersebut juga menghasilkan nilai MAE sebesar 2,1454, R² sebesar 0,7216, dan MAPE sebesar 19,55%. Nilai R² menunjukkan bahwa model mampu menjelaskan sekitar 72,16% variasi pada variabel respons dalam data evaluasi, sedangkan sisanya berkaitan dengan faktor-faktor lain yang tidak dijelaskan oleh model. Secara keseluruhan, hasil analisis menunjukkan bahwa peningkatan jumlah bagging dapat memperbaiki kinerja prediksi, meskipun peningkatannya relatif kecil antara 50 dan 100 bagging. Dengan demikian, model Bagging Regression dengan 100 bagging dipilih sebagai model terbaik berdasarkan hasil evaluasi pada data testing.

BAB V PENUTUP

5.1 Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, dapat disimpulkan bahwa metode Bagging Regression mampu menghasilkan model prediksi dengan kinerja yang cukup baik. Pengujian dilakukan menggunakan tiga variasi jumlah bagging, yaitu 25, 50, dan 100, dengan total 1.000 observasi yang dibagi menjadi 700 data training dan 300 data testing. Hasil evaluasi menunjukkan bahwa model dengan jumlah bagging sebanyak 100 merupakan model terbaik karena menghasilkan nilai RMSE sebesar 2,6304, MAE sebesar 2,1454, R² sebesar 0,7216, dan MAPE sebesar 19,55%. Dibandingkan dengan model yang menggunakan 25 dan 50 bagging, model dengan 100 bagging memiliki tingkat kesalahan prediksi yang lebih rendah serta kemampuan menjelaskan variasi data yang lebih tinggi. Dengan demikian, peningkatan jumlah bagging cenderung meningkatkan kinerja model, meskipun perbaikannya relatif kecil ketika jumlah bagging meningkat dari 50 menjadi 100..

5.2 Saran

Analisis selanjutnya dapat menggunakan pembagian data atau cross-validation yang berbeda untuk menguji kestabilan kinerja model. Selain itu, hasil Bagging Regression dapat dibandingkan dengan metode regresi lain, seperti pohon regresi tunggal, Random Forest Regression, atau Boosting Regression. Perbandingan sebaiknya menggunakan pembagian data dan metrik evaluasi yang sama agar hasilnya lebih adil.

DAFTAR PUSTAKA

Breiman, L. (1996). Bagging predictors. Machine Learning, 24, 123–140. https://doi.org/10.1007/BF00058655

Hyndman, R. J., & Koehler, A. B. (2006). Another look at measures of forecast accuracy. International Journal of Forecasting, 22(4), 679–688. https://doi.org/10.1016/j.ijforecast.2006.03.001

James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An introduction to statistical learning: With applications in R (2nd ed.). Springer. https://doi.org/10.1007/978-1-0716-1418-1

Leisch, F., & Dimitriadou, E. (n.d.). mlbench: Machine learning benchmark problems [R package]. CRAN. https://CRAN.R-project.org/package=mlbench