Harga mobil merupakan salah satu faktor penting dalam industri otomotif karena memengaruhi keputusan konsumen dan strategi pemasaran perusahaan. Harga mobil dipengaruhi oleh berbagai spesifikasi kendaraan seperti ukuran mesin, tenaga mesin, efisiensi bahan bakar, jenis bahan bakar, serta dimensi kendaraan. Perusahaan otomotif perlu mengetahui faktor-faktor yang paling memengaruhi harga mobil agar dapat:
Pada analisis ini digunakan metode Lasso Regression untuk memprediksi harga mobil berdasarkan karakteristik kendaraan. Tujuan utama analisisini, yaitu:
Dataset yang digunakan adalah dataset Car Price Prediction dari Kaggle yang berisi informasi spesifikasi berbagai mobil beserta harga mobil tersebut. Menurut penjelasan Kaggle, dataset ini dikumpulkan oleh sebuah perusahaan konsultan otomotif untuk membantu perusahaan mobil China bernama Geely Auto dalam memahami faktor yang memengaruhi harga mobil di pasar Amerika.
Dataset terdiri dari:
Dataset dapat diakses melalui tautan berikut: https://www.kaggle.com/datasets/hellbuoy/car-price-prediction
Berikut tampilan Datasetnya:
library(readxl)
# Dataset
data <- read_excel("C:/Users/Lenovo/Downloads/hargamobil.xlsx")
View(data)
colnames(data)
## [1] "car_ID" "symboling" "CarName" "fueltype"
## [5] "aspiration" "doornumber" "carbody" "drivewheel"
## [9] "enginelocation" "wheelbase" "carlength" "carwidth"
## [13] "carheight" "curbweight" "enginetype" "cylindernumber"
## [17] "enginesize" "fuelsystem" "boreratio" "stroke"
## [21] "compressionratio" "horsepower" "peakrpm" "citympg"
## [25] "highwaympg" "price"
Tahap preprocessing dilakukan agar data siap digunakan dalam pemodelan machine learning.
Tahapan preprocessing:
Berikut struktur dataset harga mobil:
# Struktur Data
str(data)
## tibble [205 × 26] (S3: tbl_df/tbl/data.frame)
## $ car_ID : num [1:205] 1 2 3 4 5 6 7 8 9 10 ...
## $ symboling : num [1:205] 3 3 1 2 2 2 1 1 1 0 ...
## $ CarName : chr [1:205] "alfa-romero giulia" "alfa-romero stelvio" "alfa-romero Quadrifoglio" "audi 100 ls" ...
## $ fueltype : chr [1:205] "gas" "gas" "gas" "gas" ...
## $ aspiration : chr [1:205] "std" "std" "std" "std" ...
## $ doornumber : chr [1:205] "two" "two" "two" "four" ...
## $ carbody : chr [1:205] "convertible" "convertible" "hatchback" "sedan" ...
## $ drivewheel : chr [1:205] "rwd" "rwd" "rwd" "fwd" ...
## $ enginelocation : chr [1:205] "front" "front" "front" "front" ...
## $ wheelbase : num [1:205] 88.6 88.6 94.5 99.8 99.4 ...
## $ carlength : num [1:205] 169 169 171 177 177 ...
## $ carwidth : num [1:205] 64.1 64.1 65.5 66.2 66.4 66.3 71.4 71.4 71.4 67.9 ...
## $ carheight : num [1:205] 48.8 48.8 52.4 54.3 54.3 53.1 55.7 55.7 55.9 52 ...
## $ curbweight : num [1:205] 2548 2548 2823 2337 2824 ...
## $ enginetype : chr [1:205] "dohc" "dohc" "ohcv" "ohc" ...
## $ cylindernumber : chr [1:205] "four" "four" "six" "four" ...
## $ enginesize : num [1:205] 130 130 152 109 136 136 136 136 131 131 ...
## $ fuelsystem : chr [1:205] "mpfi" "mpfi" "mpfi" "mpfi" ...
## $ boreratio : num [1:205] 3.47 3.47 2.68 3.19 3.19 3.19 3.19 3.19 3.13 3.13 ...
## $ stroke : num [1:205] 2.68 2.68 3.47 3.4 3.4 3.4 3.4 3.4 3.4 3.4 ...
## $ compressionratio: num [1:205] 9 9 9 10 8 8.5 8.5 8.5 8.3 7 ...
## $ horsepower : num [1:205] 111 111 154 102 115 110 110 110 140 160 ...
## $ peakrpm : num [1:205] 5000 5000 5000 5500 5500 5500 5500 5500 5500 5500 ...
## $ citympg : num [1:205] 21 21 19 24 18 19 19 19 17 16 ...
## $ highwaympg : num [1:205] 27 27 26 30 22 25 25 25 20 22 ...
## $ price : num [1:205] 13495 16500 16500 13950 17450 ...
Berdasarkan output struktur data menggunakan fungsi str(data), dapat diketahui bahwa dataset harga mobil terdiri dari 205 observasi dan 26 variabel dengan tipe data tbl_df, tbl, dan data.frame. Dataset memiliki kombinasi variabel numerik (num) dan karakter (chr) yang menggambarkan spesifikasi mobil serta harga mobil sebagai variabel target.
Variabel numerik meliputi symboling, wheelbase, carlength, carwidth, carheight, curbweight, enginesize, boreratio, stroke, compressionratio, horsepower, peakrpm, citympg, highwaympg, dan price. Variabel-variabel tersebut berisi data kuantitatif yang dapat langsung digunakan dalam pemodelan regresi. Sementara itu, variabel seperti carid, carname fueltype, aspiration, doornumber, carbody, drivewheel, enginelocation, enginetype, cylindernumber, dan fuelsystem bertipe karakter (chr) yang menunjukkan data kategorik.
Output tersebut menunjukkan bahwa variabel target dalam penelitian adalah price, sedangkan variabel lainnya digunakan sebagai variabel prediktor untuk memprediksi harga mobil. Adanya variabel kategorik mengindikasikan bahwa sebelum dilakukan pemodelan LASSO Regression, data perlu melalui proses transformasi menjadi dummy variable agar dapat diproses oleh model regresi. Selain itu, keberadaan banyak variabel numerik yang berkaitan dengan spesifikasi kendaraan menunjukkan bahwa dataset memiliki potensi multikolinearitas, sehingga metode LASSO Regression cocok digunakan karena mampu melakukan seleksi variabel sekaligus mengurangi pengaruh multikolinearitas pada model.
Berikut statistik deksriptif dari dataset harga mobil:
## Statistik Deskriptif
summary(data)
## car_ID symboling CarName fueltype
## Min. : 1 Min. :-2.0000 Length:205 Length:205
## 1st Qu.: 52 1st Qu.: 0.0000 Class :character Class :character
## Median :103 Median : 1.0000 Mode :character Mode :character
## Mean :103 Mean : 0.8341
## 3rd Qu.:154 3rd Qu.: 2.0000
## Max. :205 Max. : 3.0000
## aspiration doornumber carbody drivewheel
## Length:205 Length:205 Length:205 Length:205
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## enginelocation wheelbase carlength carwidth
## Length:205 Min. : 86.60 Min. :141.1 Min. :60.30
## Class :character 1st Qu.: 94.50 1st Qu.:166.3 1st Qu.:64.10
## Mode :character Median : 97.00 Median :173.2 Median :65.50
## Mean : 98.76 Mean :174.0 Mean :65.91
## 3rd Qu.:102.40 3rd Qu.:183.1 3rd Qu.:66.90
## Max. :120.90 Max. :208.1 Max. :72.30
## carheight curbweight enginetype cylindernumber
## Min. :47.80 Min. :1488 Length:205 Length:205
## 1st Qu.:52.00 1st Qu.:2145 Class :character Class :character
## Median :54.10 Median :2414 Mode :character Mode :character
## Mean :53.72 Mean :2556
## 3rd Qu.:55.50 3rd Qu.:2935
## Max. :59.80 Max. :4066
## enginesize fuelsystem boreratio stroke
## Min. : 61.0 Length:205 Min. :2.54 Min. :2.070
## 1st Qu.: 97.0 Class :character 1st Qu.:3.15 1st Qu.:3.110
## Median :120.0 Mode :character Median :3.31 Median :3.290
## Mean :126.9 Mean :3.33 Mean :3.255
## 3rd Qu.:141.0 3rd Qu.:3.58 3rd Qu.:3.410
## Max. :326.0 Max. :3.94 Max. :4.170
## compressionratio horsepower peakrpm citympg
## Min. : 7.00 Min. : 48.0 Min. :4150 Min. :13.00
## 1st Qu.: 8.60 1st Qu.: 70.0 1st Qu.:4800 1st Qu.:19.00
## Median : 9.00 Median : 95.0 Median :5200 Median :24.00
## Mean :10.14 Mean :104.1 Mean :5125 Mean :25.22
## 3rd Qu.: 9.40 3rd Qu.:116.0 3rd Qu.:5500 3rd Qu.:30.00
## Max. :23.00 Max. :288.0 Max. :6600 Max. :49.00
## highwaympg price
## Min. :16.00 Min. : 5118
## 1st Qu.:25.00 1st Qu.: 7788
## Median :30.00 Median :10295
## Mean :30.75 Mean :13277
## 3rd Qu.:34.00 3rd Qu.:16503
## Max. :54.00 Max. :45400
Berdasarkan hasil statistik deskriptif, dataset harga mobil terdiri
dari 205 observasi dengan karakteristik kendaraan yang cukup beragam.
Variabel numerik seperti wheelbase, carlength,
curbweight, enginesize, dan
horsepower menunjukkan rentang nilai yang cukup besar,
menandakan adanya variasi spesifikasi antar mobil. Variabel target
price memiliki rata-rata sebesar 13.277 dengan harga
minimum 5.118 dan maksimum 45.400, sehingga menunjukkan perbedaan harga
mobil yang cukup tinggi. Selain itu, terdapat beberapa variabel
kategorik yang perlu diubah menjadi dummy variable sebelum dilakukan
pemodelan. Secara umum, dataset sudah cukup baik dan memiliki keragaman
data yang sesuai untuk analisis LASSO Regression.
Berikut pengecekan missing value, data duplikat dan penghapusan data yang tidak digunakan dalam analisis:
#Cek Missing Value
colSums(is.na(data))
## car_ID symboling CarName fueltype
## 0 0 0 0
## aspiration doornumber carbody drivewheel
## 0 0 0 0
## enginelocation wheelbase carlength carwidth
## 0 0 0 0
## carheight curbweight enginetype cylindernumber
## 0 0 0 0
## enginesize fuelsystem boreratio stroke
## 0 0 0 0
## compressionratio horsepower peakrpm citympg
## 0 0 0 0
## highwaympg price
## 0 0
# Cek Data Duplikat
sum(duplicated(data))
## [1] 0
# Hapus variabel yang tidak Diperlukan
data <-data <- data[, !(names(data) %in% c("car_ID", "CarName"))]
Berdasarkan hasil preprocessing tersebut, diketahui bahwa dataset harga mobil berada dalam kondisi yang baik untuk digunakan pada analisis LASSO Regression. Hasil pengecekan missing value menunjukkan bahwa seluruh variabel memiliki nilai 0, sehingga dapat disimpulkan tidak terdapat data hilang pada dataset. Hal ini menunjukkan bahwa data sudah lengkap dan tidak memerlukan penanganan missing value seperti imputasi ataupun penghapusan observasi. Selanjutnya, pengecekan data duplikat menghasilkan nilai 0, yang berarti tidak terdapat data yang terduplikasi sehingga setiap observasi pada dataset bersifat unik.
Pada tahap preprocessing juga dilakukan penghapusan variabel car_ID dan CarName karena kedua variabel tersebut tidak relevan dalam proses pemodelan. Variabel car_ID hanya berfungsi sebagai identitas data, sedangkan CarName berupa nama mobil yang tidak memiliki pengaruh langsung terhadap prediksi harga mobil dan berpotensi menambah kompleksitas model. Dengan demikian, hasil preprocessing menunjukkan bahwa dataset telah bersih dan siap digunakan untuk proses analisis LASSO Regression.
Berikut proses pengubahan dari data kategorik menjadi numerik (variabel dummy):
# Ubah Variabel Kategorik menjadi Numerik
x <- model.matrix(price ~ ., data)[,-1]
# variabel target
y <- data$price
# melihat dimensi data
dim(x)
## [1] 205 43
Berdasarkan output tersebut, dilakukan proses transformasi variabel kategorik menjadi numerik menggunakan fungsi model.matrix(). Proses ini diperlukan karena metode LASSO Regression hanya dapat memproses data numerik. Variabel kategorik wajib diubah menjadi variabel dummy sehingga dapat digunakan dalam pemodelan. Variabel price digunakan sebagai variabel respon yang akan diprediksi.
Hasil dim(x) menunjukkan ukuran data prediktor sebesar 205 × 43, yang berarti terdapat 205 observasi dan 43 variabel prediktor setelah proses variabel dummy dilakukan. Jumlah variabel meningkat dari sebelumnya karena setiap kategori pada variabel kategorik diubah menjadi beberapa variabel dummy.
Berikut proses membagi data testing dan data trainig:
#Membagi Data Training dan Testing
set.seed(123)
train_index <- sample(
1:nrow(x),
0.8 * nrow(x)
)
x_train <- x[train_index, ]
x_test <- x[-train_index, ]
y_train <- y[train_index]
y_test <- y[-train_index]
Fungsi membagi data menjadi training dan testing adalah untuk memisahkan data yang digunakan dalam proses pembentukan model dan data yang digunakan untuk evaluasi model.
Pembagian data ini bertujuan agar model tidak hanya baik pada data pelatihan saja, tetapi juga mampu melakukan prediksi dengan baik pada data yang belum pernah digunakan sebelumnya. Selain itu, pembagian training dan testing dapat membantu mengurangi risiko overfitting pada model. Pada penelitian ini, data dibagi sebesar 80% untuk training dan 20% untuk testing.
Pada tahap ini dilakukan pembangunan model menggunakan metode Lasso Regression dengan package glmnet. Berikut proses membangun model LASSO regression:
library(glmnet)
## Loading required package: Matrix
## Loaded glmnet 4.1-10
# Membangun Model LASSO Regression
lasso_model <- cv.glmnet(
x_train,
y_train,
alpha = 1 # penalty LASSO
)
#lambda terbaik
lasso_model$lambda.min
## [1] 90.06334
Hasil pengujian menunjukkan bahwa nilai lambda terbaik (lambda.min) diperoleh sebesar 90.06334. Pada nilai tersebut model menghasilkan nilai MSE paling rendah sehingga dianggap sebagai parameter optimal dalam pembentukan model LASSO Regression.
Berikut Visualisasi data cross validation LASSO regression:
# visualisasi cross validation
plot(lasso_model)
title("Cross Validation LASSO Regression", line=3)
Grafik tersebut menunjukkan hubungan antara nilai lambda dan error model. Pada grafik juga menunjukkan hasil cross validation pada model LASSO Regression untuk menentukan nilai lambda terbaik. Sumbu horizontal menggambarkan nilai log(lambda), sedangkan sumbu vertikal menunjukkan nilai Mean Squared Error (MSE). Titik-titik merah pada grafik merepresentasikan rata-rata nilai error dari proses cross validation untuk setiap nilai lambda, sementara garis abu-abu menunjukkan standar error dari masing-masing nilai tersebut.
Berdasarkan grafik, terlihat bahwa pada saat nilai lambda masih kecil, nilai MSE relatif tinggi kemudian mengalami penurunan seiring meningkatnya nilai lambda hingga mencapai titik minimum. Setelah melewati titik minimum tersebut, nilai MSE kembali cenderung meningkat. Hal ini menunjukkan bahwa terdapat nilai lambda optimal yang mampu memberikan performa prediksi terbaik pada model.
Dua garis vertikal putus-putus pada grafik menunjukkan posisi (lambda.min) dan (lambda.1se). Garis pertama menunjukkan nilai lambda dengan error minimum, sedangkan garis kedua menunjukkan nilai lambda yang lebih sederhana namun masih berada dalam batas satu standar error dari error minimum. Model pada lambda.1se umumnya dipilih apabila peneliti menginginkan model yang lebih sederhana dan stabil.
Angka yang terdapat pada bagian atas grafik menunjukkan jumlah variabel yang masih memiliki koefisien tidak nol pada setiap nilai lambda. Semakin besar nilai lambda, jumlah variabel yang dipertahankan dalam model semakin sedikit. Hal ini menunjukkan bahwa metode LASSO mampu melakukan seleksi variabel secara otomatis dengan mengurangi atau menghilangkan variabel yang kurang berpengaruh terhadap model.
Berikut Koefien model
# Koefien Model
coef_lasso <- coef(
lasso_model,
s = "lambda.min"
)
coef_lasso
## 44 x 1 sparse Matrix of class "dgCMatrix"
## lambda.min
## (Intercept) -2.972294e+04
## symboling .
## fueltypegas -2.802926e+02
## aspirationturbo 1.590480e+03
## doornumbertwo .
## carbodyhardtop -6.038193e+02
## carbodyhatchback -8.766833e+02
## carbodysedan .
## carbodywagon -8.653122e+02
## drivewheelfwd -3.075452e+02
## drivewheelrwd 7.400753e+02
## enginelocationrear 8.685063e+03
## wheelbase 1.100188e+01
## carlength .
## carwidth 4.404617e+02
## carheight .
## curbweight 2.187921e+00
## enginetypedohcv 9.408865e+02
## enginetypel -3.979602e+02
## enginetypeohc 1.721417e+03
## enginetypeohcf .
## enginetypeohcv -1.962472e+03
## enginetyperotor 4.269916e+03
## cylindernumberfive .
## cylindernumberfour -2.599131e+03
## cylindernumbersix -1.096497e+03
## cylindernumberthree .
## cylindernumbertwelve -8.556026e+03
## cylindernumbertwo 8.757015e-01
## enginesize 1.319812e+02
## fuelsystem2bbl .
## fuelsystem4bbl 1.826442e+01
## fuelsystemidi 8.024117e+00
## fuelsystemmfi -1.530834e+03
## fuelsystemmpfi .
## fuelsystemspdi -5.414695e+02
## fuelsystemspfi .
## boreratio -1.143883e+03
## stroke -3.379590e+03
## compressionratio .
## horsepower .
## peakrpm 1.284457e+00
## citympg .
## highwaympg .
Hasil tersebut menampilkan nilai koefisien untuk setiap variabel prediktor pada model. Pada metode LASSO, variabel yang dianggap kurang berpengaruh akan memiliki koefisien sama dengan nol sehingga secara otomatis dieliminasi dari model.
Berdasarkan output, terlihat bahwa beberapa variabel masih memiliki nilai koefisien, sedangkan beberapa variabel lainnya bernilai nol yang ditandai dengan tanda titik (.). Variabel yang memiliki tanda titik berarti tidak dipilih oleh model karena kontribusinya dianggap tidak signifikan terhadap variabel target. Terdapat 15 variabel yang bernilai 0 seperti symboling, doornumbertwo,carbodysedan, carlength, carheight,enginetypeohcf, cylindernumberfive, cylindernumberthree, fuelsystem2bbl, fuelsystemmpfi, fuelsystemspfi, compressionratio, horsepower, citympg, dan highwaympg sehingga tidak dipertahankan dalam model akhir. Hal ini menunjukkan bahwa variabel-variabel tersebut tidak memberikan kontribusi penting setelah dilakukan penalti LASSO (Alpha= 1).
Koefisien bernilai positif menunjukkan bahwa variabel tersebut memiliki hubungan searah dengan variabel respon. Artinya, apabila nilai variabel meningkat maka nilai prediksi target juga cenderung meningkat. Sebaliknya, koefisien bernilai negatif menunjukkan hubungan berlawanan arah, yaitu peningkatan variabel akan menurunkan nilai prediksi target.
Dengan demikian, hasil LASSO Regression menunjukkan bahwa model berhasil melakukan seleksi variabel secara otomatis dengan mempertahankan variabel yang paling berpengaruh dan menghilangkan variabel yang kurang relevan melalui penyusutan koefisien menjadi nol.
Penghapusan variabel yang memiliki koefisien 0 ( tidak berpengaruh)
# Mengambil Variabel Penting
coef_lasso <- as.matrix(coef(lasso_model, s = "lambda.min"))
selected_features <- rownames(coef_lasso)[
coef_lasso[,1] != 0 & rownames(coef_lasso) != "(Intercept)"
]
selected_features
## [1] "fueltypegas" "aspirationturbo" "carbodyhardtop"
## [4] "carbodyhatchback" "carbodywagon" "drivewheelfwd"
## [7] "drivewheelrwd" "enginelocationrear" "wheelbase"
## [10] "carwidth" "curbweight" "enginetypedohcv"
## [13] "enginetypel" "enginetypeohc" "enginetypeohcv"
## [16] "enginetyperotor" "cylindernumberfour" "cylindernumbersix"
## [19] "cylindernumbertwelve" "cylindernumbertwo" "enginesize"
## [22] "fuelsystem4bbl" "fuelsystemidi" "fuelsystemmfi"
## [25] "fuelsystemspdi" "boreratio" "stroke"
## [28] "peakrpm"
Hasil analisis menggunakan Lasso Regression menunjukkan bahwa model secara otomatis memilih sejumlah variabel yang paling berpengaruh terhadap harga mobil (price). Variabel yang terpilih tidak lagi mencakup seluruh variabel awal, karena Lasso melakukan proses seleksi dengan memberikan penalti pada koefisien sehingga beberapa variabel bernilai nol dan tidak digunakan lagi didalam model akhir.
Setelah dilakukan pemilihan fitur yang dianggap penting, terdapat 28 variabel dari 44 variabel yang berhasil dipilih oleh LASSO regression. Intercept tidak termasuk dalam variabel penting karena intercept bukan merupakan variabel prediktor, melainkan konstanta dalam model regresi. Dalam persamaan regresi, intercept berfungsi sebagai nilai dasar dari variabel target ketika seluruh variabel independen bernilai nol. Oleh karena itu, intercept tidak memiliki makna sebagai fitur atau karakteristik mobil, sehingga tidak dianalisis sebagai variabel yang memengaruhi harga.
Dalam Lasso Regression, seleksi variabel hanya dilakukan pada variabel independen (X), sedangkan intercept tidak dikenai penalti dan tidak diperlakukan sebagai fitur yang dapat dipilih atau dihilangkan. Selain itu, pada tahap pengolahan hasil koefisien, intercept memang sengaja dihapus dari daftar variabel agar hanya tersisa variabel prediktor yang relevan untuk interpretasi model.
Tahap evaluasi dilakukan untuk mengetahui performa model prediksi.Evaluasi dilakukan menggunakan RMSE,MAE dan R-Squared.
Berikut hasil prediksi
# Prediksi
prediksi <- predict(
lasso_model,
s = "lambda.min",
newx = x_test
)
head(prediksi)
## lambda.min
## 10 19396.8239
## 15 21188.1528
## 18 30391.8350
## 19 235.3302
## 28 9403.9434
## 33 4961.4402
Tahap prediksi merupakan proses penggunaan model Lasso Regression yang telah dibentuk untuk memperkirakan nilai variabel target, yaitu harga mobil (price), berdasarkan karakteristik atau spesifikasi kendaraan yang terdapat pada data testing.
Pada tahap ini, model yang sebelumnya telah dilatih menggunakan data training akan digunakan untuk menghasilkan estimasi harga mobil pada data yang belum pernah dilihat oleh model. Hasil prediksi kemudian dibandingkan dengan nilai aktual untuk mengetahui tingkat akurasi model. Angka pada bagian kiri, seperti 10, 15, 18, dan seterusnya merupakan indeks atau nomor observasi pada data uji, sedangkan nilai pada kolom lambda.min merupakan hasil prediksi dari model.
Sebagai contoh:
Nilai-nilai tersebut merupakan estimasi target yang diprediksi oleh model berdasarkan kombinasi variabel independen yang digunakan dalam model LASSO Regression.
Perbedaan nilai prediksi antar observasi menunjukkan bahwa model memberikan hasil estimasi yang berbeda sesuai dengan karakteristik masing-masing data. Hasil prediksi ini selanjutnya dapat digunakan pada tahap evaluasi model dengan membandingkan nilai prediksi terhadap nilai aktual untuk mengetahui tingkat akurasi model.
Berikut tahap evaluasi setelah prediksi dengan RMSE,MAE dan R-Squared
# RMSE
RMSE <- sqrt(
mean((y_test - prediksi)^2)
)
RMSE
## [1] 2425.277
# MAE
MAE <- mean(
abs(y_test - prediksi)
)
MAE
## [1] 1777.158
# R-Square
R2 <- 1 - (
sum((y_test - prediksi)^2) /
sum((y_test - mean(y_test))^2)
)
R2
## [1] 0.9008978
Hasil evaluasi model LASSO Regression menunjukkan bahwa model memiliki performa prediksi yang cukup baik berdasarkan nilai RMSE, MAE, dan R-Square yang diperoleh.
Nilai Root Mean Squared Error (RMSE) sebesar 2425.277 menunjukkan bahwa rata-rata kesalahan prediksi model terhadap nilai aktual berada pada kisaran 2425.277 satuan. Nilai RMSE digunakan untuk mengukur besar error prediksi dengan memberikan penalti lebih besar pada error yang tinggi. Semakin kecil nilai RMSE, maka kemampuan prediksi model semakin baik.
Nilai Mean Absolute Error (MAE) sebesar 1777.158 menunjukkan bahwa rata-rata selisih absolut antara nilai prediksi dan nilai aktual adalah sebesar 1777.158 satuan. Nilai MAE menggambarkan tingkat kesalahan prediksi secara umum tanpa memperhatikan arah kesalahan. Semakin kecil nilai MAE, maka model semakin akurat dalam melakukan prediksi.
Sementara itu, nilai R-Square sebesar 0.9008978 menunjukkan bahwa model mampu menjelaskan sekitar 90% variasi data pada variabel dependen. Hal ini menunjukkan bahwa variabel independen yang dipilih dalam model LASSO Regression memiliki kemampuan yang sangat baik dalam menjelaskan perubahan variabel target, sedangkan sisanya sekitar 10.8% dipengaruhi oleh faktor lain di luar model.
Secara keseluruhan, hasil evaluasi menunjukkan bahwa model LASSO Regression memiliki performa yang baik dalam melakukan prediksi, ditunjukkan oleh nilai R-Square yang tinggi serta nilai RMSE dan MAE yang relatif rendah.
Berdasarkan hasil analisis menggunakan metode LASSO Regression pada dataset harga mobil, dapat disimpulkan bahwa model berhasil digunakan untuk memprediksi harga mobil berdasarkan karakteristik kendaraan dengan performa yang cukup baik.
Pada tahap preprocessing, data telah dipastikan dalam kondisi bersih
tanpa missing value maupun data duplikat. Variabel yang tidak relevan
seperti car_ID dan CarName telah dihapus
sehingga data lebih sesuai untuk pemodelan. Selain itu, variabel
kategorik berhasil diubah menjadi variabel dummy menggunakan
model.matrix(), sehingga seluruh variabel dapat diproses
dalam model regresi.
Metode LASSO Regression mampu melakukan seleksi variabel secara otomatis dengan cara memberikan penalti pada koefisien. Dari total variabel yang tersedia, hanya variabel yang memiliki kontribusi signifikan yang dipertahankan dalam model, sedangkan variabel lain memiliki koefisien nol dan dihilangkan. Hal ini menunjukkan bahwa LASSO efektif dalam mengurangi kompleksitas model sekaligus mengatasi potensi multikolinearitas.
Hasil evaluasi model menunjukkan performa yang baik dengan nilai RMSE sebesar 2425.277, MAE sebesar 1777.158, dan R-Square sebesar 0.9008978. Nilai R-Square yang tinggi menunjukkan bahwa sekitar 90% variasi harga mobil dapat dijelaskan oleh variabel independen dalam model, sehingga model memiliki kemampuan prediksi yang kuat.
Dengan demikian, dapat disimpulkan bahwa metode LASSO Regression tidak hanya efektif untuk membangun model prediksi harga mobil, tetapi juga sangat berguna dalam melakukan seleksi variabel secara otomatis sehingga menghasilkan model yang lebih sederhana, efisien, dan interpretatif.