Pada dokumen ini, kita akan membandingkan dua model regresi — Regresi Linear dan Support Vector Regression (SVR) — dalam memprediksi efisiensi bahan bakar mobil (mpg) berdasarkan tenaga mesin (hp) menggunakan dataset mtcars.

Dataset mtcars berisi data teknis dari 32 mobil, termasuk mpg (mile per gallon), hp (horsepower), dan fitur lainnya.

MEMBUAT LIBRARY

library(e1071)
## Warning: package 'e1071' was built under R version 4.4.3
library(ggplot2)

MEMUAT DAN MEMBAGI DATA

data("mtcars")
set.seed(123)
index <- sample(1:nrow(mtcars), 0.7 * nrow(mtcars))
train_data <- mtcars[index, ]
test_data <- mtcars[-index, ]

MODEL REGRESI LINEAR

lm_model <- lm(mpg ~ hp, data = train_data)
lm_pred <- predict(lm_model, newdata = test_data)

Model SVR (Support Vector Regression)

svr_model <- svm(mpg ~ hp, data = train_data, type = "eps-regression")
svr_pred <- predict(svr_model, newdata = test_data)

VISUALISASI HASIL

ggplot() +
  geom_point(aes(x = test_data$hp, y = test_data$mpg), color = "black", size = 2) +
  geom_line(aes(x = test_data$hp, y = lm_pred), color = "blue", linetype = "dashed", size = 1) +
  geom_line(aes(x = test_data$hp, y = svr_pred), color = "red", linetype = "solid", size = 1) +
  labs(title = "Perbandingan SVR vs Regresi Linear dalam Prediksi mpg",
       x = "Horsepower",
       y = "Miles per Gallon (mpg)")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

EVALUASI MODEL DENGAN MSE

# Menghitung Mean Squared Error (MSE)
lm_mse <- mean((lm_pred - test_data$mpg)^2)
svr_mse <- mean((svr_pred - test_data$mpg)^2)

# Menampilkan hasil
print(paste("MSE Regresi Linear:", round(lm_mse, 2)))
## [1] "MSE Regresi Linear: 9.55"
print(paste("MSE SVR:", round(svr_mse, 2)))
## [1] "MSE SVR: 5.94"

Interpretasi Hasil: Visualisasi: - Titik-titik hitam = data aktual. - Garis biru putus-putus = hasil regresi linear. - Garis merah solid = hasil SVR. - Kalau pola data agak “membelok”, SVR biasanya bisa mengikuti lekukannya lebih baik.

MSE: - Menunjukkan rata-rata kesalahan kuadrat. Makin kecil nilainya, makin bagus prediksinya. - Berdasarkan hasil yang diperoleh, MSE Regresi Linear 9.55 > MSE SVR 5.94 sehingga dapat disimpulkan untuk data(mtcars) SVR adalah metode yang lebih baik daripada regresi.

Kesimpulan: - Regresi Linear lebih sederhana dan mungkin lebih mudah diinterpretasikan, namun hanya efektif jika hubungan antara variabel bersifat linear. - SVR lebih fleksibel dan dapat menangani hubungan non-linear, yang seringkali lebih sesuai dalam data nyata yang lebih kompleks.

View(mtcars)