๐Simple Linear Regression
Pengantar
Regresi linier sederhana (simple linear regession) adalah suatu teknik analisis statistik yang digunakan untuk memahami dan memodelkan hubungan linier antara dua variabel: variabel independen (X) dan variabel dependen (Y). Teknik ini bermanfaat ketika kita ingin memprediksi atau menjelaskan bagaimana perubahan dalam variabel independen dapat memengaruhi variabel dependen.
Simple linear regression memodelkan hubungan antara satu variable independen (X) dengan satu variable dependen (Y). Hubungan linear dalam bentuk persamaan garis lurus antara dua variable ini dapat dirumuskan sebagai berikut ini:
Y adalah variabel dependen yang ingin diprediksi atau dimengerti.
X adalah variabel independen yang digunakan untuk melakukan prediksi atau menjelaskan variasi dalam Y.
adalah intercept (konstanta), yaitu nilai Y ketika X sama dengan 0.
adalah koefisien regresi, yang mengukur sejauh mana perubahan dalam X memengaruhi perubahan dalam Y. Ini adalah kemiringan (slope) dari garis regresi.
Dalam rumus ini, kita menyederhanakan model menjadi hubungan linier antara X dan Y yang membantu kita memahami dan memprediksi variabel dependen berdasarkan variabel independen.
Estimasi Parameter Model Simple Linear Regression
Dalam Simple Linear Regression, kita perlu mengestimasi dua parameter utama: intercept dan koefisien regresi . Berikut adalah bagaimana kita dapat mengestimasi parameter-parameter ini:
Intercept : intercept adalah nilai dari Y ketika X sama dengan 0. Untuk mengestimasinya, kita dapat menggunakan rumus berikut:
Di mana adalah rata-rata dari variabel dependen (Y), adalah rata-rata dari variabel independen (X), dan adalah koefisien regresi.
Koefisien Regresi : Koefisien regresi mengukur sejauh mana perubahan dalam X memengaruhi perubahan dalam Y. Untuk mengestimasinya, kita dapat menggunakan rumus berikut:
Di mana dan adalah nilai-nilai individu dari X dan Y dalam dataset, adalah rata-rata dari X, adalah rata-rata dari Y, dan adalah jumlah pengamatan.
Contoh Penerapan: Hubungan Diameter Pizza dengan Harga Pizza
Misalkan kita ingin memahami hubungan antara diameter pizza (dalam inci) dan harga pizza (dalam dolar). Kita mengumpulkan data dari beberapa toko pizza dan memutuskan untuk menggunakan Simple Linear Regression untuk memodelkan hubungan ini. Berikut adalah data yang kita miliki:
6
7
8
9
10
13
14
17.5
18
18
Langkah-langkah Estimasi Parameter & Prediksi Harga:
Hitung rata-rata dari Diameter Pizza dan Harga Pizza .
inci dollar
Hitung koefisien regresi menggunakan rumus di atas dengan menggunakan nilai-nilai dari X dan Y dalam dataset, Rumus untuk menghitung adalah:
Kita memiliki data sebagai berikut:
X (Diameter Pizza) dalam inci: [6, 8, 10, 14, 18]
Y (Harga Pizza) dalam dolar: [7, 9, 13, 17.5, 18]
Rata-rata inci Rata-rata dolar
Mari kita hitung :
Setelah mendapatkan nilai , kita dapat mengestimasi intercept menggunakan rumus berikut
Kita sudah memiliki , dan .
Mari kita hitung :
Jadi, hasil estimasi parameter untuk model Simple Linear Regression antara diameter pizza (X) dan harga pizza (Y) adalah:
(intercept)
(koefisien regresi)
Setelah estimasi ini selesai, kita memiliki model Simple Linear Regression yang memungkinkan kita untuk memprediksi harga pizza berdasarkan diameter pizza. Misalnya, jika diameter pizza adalah 12 inci, kita dapat menggunakan model ini untuk memprediksi harga pizza yang sesuai berdasarkan estimasi dan
Dengan nilai estimasi parameter (intercept) dan (koefisien regresi), kita dapat membentuk model Simple Linear Regression antara diameter pizza (X) dan harga pizza (Y) sebagai berikut:
Dalam model ini:
(HargaPizza) adalah harga pizza yang ingin diprediksi.
(DiameterPizza) adalah diameter pizza dalam inci yang digunakan sebagai variabel independen.
Dengan model ini, kita dapat memasukkan nilai (DiameterPizza) untuk memprediksi (HargaPizza). Ini memungkinkan kita untuk memahami bagaimana perubahan dalam diameter pizza memengaruhi harga pizza secara linier.
Sebagai contoh, jika kita memiliki pizza dengan diameter 12 inci, kita dapat menggunakan model ini untuk memprediksi harganya:
Jadi, menurut model ini, pizza dengan diameter 12 inci kemungkinan memiliki harga sekitar 14.58 dolar. Model ini dapat digunakan untuk memprediksi harga pizza berdasarkan diameter yang berbeda.
jika di visualisasikan ke dalam grafik menggunakan code python berikut maka didapatkan hasil grafik Simple Linier Regression sebagaimana pada Gambar 7.1
import numpy as np
import matplotlib.pyplot as plt
# Data
diameter_pizza = np.array([6, 8, 10, 14, 18])
harga_pizza = np.array([7, 9, 13, 17.5, 18])
# Estimasi parameter
beta_0 = 1.82
beta_1 = 0.974
# Model regresi
harga_prediksi = beta_0 + beta_1 * diameter_pizza
# Membuat plot
plt.scatter(diameter_pizza, harga_pizza, label='Data Asli')
plt.plot(diameter_pizza, harga_prediksi, color='red', label='Model Regresi')
plt.xlabel('Diameter Pizza (inci)')
plt.ylabel('Harga Pizza (dolar)')
plt.title('Simple Linear Regression: Hubungan Diameter Pizza dengan Harga Pizza')
plt.legend()
plt.grid(True)
plt.show()

Berdasarkan gambar dapat dilihat bahwa ada hubungan antara diameter pizza dan harganya, Ketika diameter pizza bertambah maka harga dari pizza juga akan naik.
Pada simple linear regression mengasumsikan bahwa ada hubungan linier antara independent / explanatory variabel dengan dependent variabel melalui garis linier yang disebut sebagai hyperplane. Pada gambar 3.1 hyperplane divisualisasikan dengan warna merah.
Evaluasi Model dengan Cost Function
Garis regresi yang dihasilkan oleh beberapa nilai parameter (ฮฑ dan ฮฒ) yang berbeda diplot pada Gambar 7.2. Berbeda nilai ฮฑ dan ฮฒ maka akan menghasilkan garis regresi yang berbeda. Bagaimana menentukan parameter yang tepat yang menghasilkan garis regresi yang paling sesuai?

Untuk meminimalkan kesalahan prediksi dapat dihitung terlebih dahulu cost function dihasilkan oleh model yang telah dibuat. Cost function digunakan untuk mendefinisikan dan mengukur kesalahan model, atau ukuran seberapa salah model dalam hal kemampuannya untuk memperkirakan hubungan antara X dan y. Perbedaan antara harga yang diprediksi oleh model dan harga pizza yang sebenarnya (actual data) dalam data training disebut sebagai residual. Sedangkan Perbedaan antara nilai yang diprediksi dan harga pizza yang sebenarnya (actual data) dalam data testing disebut sebagai kesalahan prediksi (prediction errors). Perhatikan gambar 3.3 dibawah ini, garis hijau adalah garis regresi yang dihasilkan dari data training. Titik-titik hitam adalah data actual sehingga garis merah vertical merupakan residual perbedaan antara nilai yang diprediksi dan harga pizza yang sebenarnya (actual data) pada data training.

Model terbaik dapat dihasilkan dengan meminimalkan sum of the residual dalam artian bahwa model yang dibuat tepat jika nilai yang diprediksi mendekati nilai actual untuk keseluruhan data training. Ukuran mengukur ketepatan model yang dibuat dapat menggunakan cost function yaitu Residual sum of squares (RSS). RRS merupakan salah satu cost function yang dapat digunkan untuk mengukur kesesuaian model yang telah dibuat dengan cara menjumlahkan kuadrat residual untuk semua data training. RSS dihitung dengan rumus dalam persamaan berikut, di mana yi adalah nilai yang diamati dan f (xi) adalah nilai prediksi:
RSS (Residual Sum of Squares) adalah salah satu metrik evaluasi yang digunakan dalam Simple Linear Regression untuk mengukur seberapa baik model regresi sesuai dengan data observasi yang sebenarnya. RSS mengukur jumlah kuadrat dari selisih antara nilai sebenarnya (Y) dan nilai yang diprediksi oleh model (Y prediksi). Berikut adalah rumus RSS:
Di mana:
adalah jumlah pengamatan.
adalah nilai sebenarnya dari variabel dependen (harga pizza) untuk pengamatan ke-.
adalah nilai yang diprediksi oleh model regresi (harga pizza yang diprediksi) untuk pengamatan ke-.
RSS mengukur seberapa besar kesalahan prediksi model terhadap data sebenarnya. Semakin kecil nilai RSS, semakin baik model kita dalam menjelaskan variasi dalam data.
Berikut adalah contoh cara menghitung RSS menggunakan Python beserta output hasilnya:
import numpy as np
# Data
harga_pizza_asli = np.array([7, 9, 13, 17.5, 18])
harga_pizza_prediksi = np.array([1.82 + 0.974 * 6, 1.82 + 0.974 * 8, 1.82 + 0.974 * 10, 1.82 + 0.974 * 14, 1.82 + 0.974 * 18])
# Menghitung RSS
RSS = np.sum((harga_pizza_asli - harga_pizza_prediksi) ** 2)
print("RSS:", RSS)
RSS: 8.89488
Dalam contoh ini, kita memiliki data harga pizza yang sebenarnya harga_pizza_asli
dan harga pizza yang diprediksi oleh model harga_pizza_prediksi
. Semakin kecil nilai RSS, semakin baik model regresi dalam memprediksi data sebenarnya. RSS adalah salah satu metrik evaluasi yang digunakan untuk mengevaluasi kualitas model regresi.
Evaluasi Model Dengan R-squared (R2)
Evaluasi model dengan menggunakan R-squared adalah salah satu cara yang lebih umum digunakan untuk mengukur seberapa baik model regresi cocok dengan data. mengukur sejauh mana variasi dalam variabel dependen (Y) yang dapat dijelaskan oleh variabel independen (X) dalam model. Semakin tinggi , semakin baik model dalam menjelaskan variasi dalam data.
memiliki nilai antara 0 hingga 1, dengan nilai 1 menunjukkan bahwa model cocok sempurna dengan data, dan nilai 0 menunjukkan bahwa model tidak menjelaskan variasi sama sekali. Secara matematis, dapat dihitung dengan rumus berikut:
Di mana:
(
RSS
) adalah Residual Sum of Squares, yang telah dijelaskan sebelumnya.(
TSS
) adalah Total Sum of Squares, yang merupakan jumlah kuadrat deviasi nilai sebenarnya dari rata-rata variabel dependen.
Berikut adalah contoh penggunaan Python untuk menghitung dari model regresi yang telah kita estimasi sebelumnya dan melakukan prediksi dapat menggunakan metod predict. Nilai R-squared mendekati 1 maka dianggap model dapat memprediksi dengan baik. Selain menggunakan R-squared maka juga dapat digunakan matrix MAE
dan MSE
.
import numpy as np
from sklearn.metrics import mean_absolute_error, mean_squared_error
# Data
harga_pizza_asli = np.array([7, 9, 13, 17.5, 18])
diameter_pizza = np.array([6, 8, 10, 14, 18])
# Estimasi parameter
beta_0 = 1.82
beta_1 = 0.974
# Prediksi harga pizza
harga_pizza_prediksi = beta_0 + beta_1 * diameter_pizza
# Menghitung RSS (Residual Sum of Squares)
RSS = np.sum((harga_pizza_asli - harga_pizza_prediksi) ** 2)
# Menghitung TSS (Total Sum of Squares)
TSS = np.sum((harga_pizza_asli - np.mean(harga_pizza_asli)) ** 2)
# Menghitung R-squared (R2)
R2 = 1 - (RSS / TSS)
# Menampilkan predicted price in dollar
print("Predicted Price in Dollar:", harga_pizza_prediksi)
# Menghitung MAE (Mean Absolute Error)
mae = mean_absolute_error(harga_pizza_asli, harga_pizza_prediksi)
# Menghitung MSE (Mean Squared Error)
mse = mean_squared_error(harga_pizza_asli, harga_pizza_prediksi)
print("Residual Sum of Squares (RSS)", RSS)
print("Total Sum of Squares (TSS)", TSS)
print("R-squared (R2):", R2)
print("MAE (Mean Absolute Error):", mae)
print("MSE (Mean Squared Error):", mse)
Output
Predicted Price in Dollar: [ 7.664 9.612 11.56 15.456 19.352]
Residual Sum of Squares (RSS) 8.89488
Total Sum of Squares (TSS) 97.19999999999999
R-squared (R2): 0.9084888888888889
MAE (Mean Absolute Error): 1.2224
MSE (Mean Squared Error): 1.7789760000000001
Last updated