Lompat ke konten Lompat ke sidebar Lompat ke footer

Praktikum Modul 4: Regresi Linear dan Prediksi Bisnis

 


Pembelajaran pada modul 4 ini kita belajar tentang regersi linear dan penerapanya dalam sebuah bisnis. Dalam bisnis yang semakin didorong  oleh kebutuhan data, kemampuan untuk mengidentifikasi dan mengukur hubungan sebab-akibat menjadi aset yang sangat penting. Perusahaan tidak lagi hanya mengandalkan intuisi; mereka mencari bukti kuantitatif untuk memandu keputusan strategis. Di sinilah Regresi Linear mengambil peran sentral. Metode statistika fundamental ini memungkinkan kita memodelkan hubungan antara dua variabel: satu variabel independen (prediktor) dan satu variabel dependen (respons).

Oleh karena itu, penguasaan model ini bukan hanya latihan akademis, tetapi sebuah kompetensi praktis yang esensial bagi analis, manajer, dan siapa pun yang bertekad untuk mengekstrak nilai nyata dari himpunan data untuk mendorong pertumbuhan dan keunggulan kompetitif. Kita akan menjelajahi langkah-langkah praktis untuk membangun, menginterpretasikan, dan mengevaluasi model regresi guna mendapatkan wawasan yang dapat ditindaklanjuti.

1. Persiapan Praktikum

Sebelum memulai praktikum kita harus mempersiapkan tools yang akan digunakan  yaitu google colab. Google colab dapat diakses melalui https://colab.research.google.com/. Cara menggunakan google colab sangatlah mudah anda tinggal masuk kesitus colab diatas, lalu login dengan akun google yang anda miliki, setelah itu opsi open notebook akan muncul, pilih pada pojok kiri yaitu opsi new notebook, maka anda telah selesai untuk membuat notebook baru yang akan anda gunakan. Oh yaaa, jika opsi open notebook tidak muncul otomatis, anda bisa pergi ke opsi file di pojok kiri atas dan pilih open notebook. Setelah anda membuat laman notebook baru anda bisa mengganti nama file/laman notebook anda dengan format .ipynb.

2. Memulai Praktikum

1. Import Library

# Versi Python (opsional)
!python --version
# Import library utama
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error

# Pengaturan tampilan pandas (opsional)
pd.set_option('display.max_columns', None)
pd.set_option('display.precision', 3)

Kode tersebut digunakan untuk menyiapkan lingkungan analisis data dan pemodelan regresi linear. Baris pertama menampilkan versi Python yang digunakan agar sesuai dengan kebutuhan program. Selanjutnya, library utama seperti NumPy, Pandas, dan Matplotlib diimpor untuk melakukan perhitungan numerik, pengolahan data, serta visualisasi. Modul dari scikit-learn seperti train_test_split, LinearRegression, dan metrik evaluasi (r2_score, mean_absolute_error, mean_squared_error) digunakan untuk membangun serta menilai kinerja model regresi linear. Terakhir, pengaturan tampilan Pandas dilakukan agar seluruh kolom data terlihat dan angka desimal ditampilkan dengan tiga digit presisi.

2. Buat Data Dummy

data = {
    "bulan": np.arange(1, 13),
    "iklan": [10, 12, 15, 13, 17, 20, 22, 25, 27, 30, 32, 35],
    "harga": [50, 52, 52, 51, 53, 55, 55, 56, 57, 58, 58, 59],
    "penjualan": [100, 120, 135, 130, 150, 170, 180, 210, 220, 250, 260, 280]
}
df = pd.DataFrame(data)
df

Kode tersebut digunakan untuk membuat dataset dalam bentuk DataFrame menggunakan library Pandas. Pertama, variabel data berisi tiga kolom utama yaitu iklan, harga, dan penjualan, serta kolom tambahan bulan yang dihasilkan dengan np.arange(1, 13) untuk merepresentasikan bulan ke-1 hingga ke-12. Setiap kolom berisi daftar angka yang merepresentasikan data penjualan dalam satu tahun. Selanjutnya, perintah pd.DataFrame(data) mengubah struktur dictionary tersebut menjadi objek DataFrame bernama df, sehingga data dapat ditampilkan dan diolah dengan lebih mudah dalam analisis selanjutnya.

3. Lakukan Perhitungan dengan Regresi Linear Sederhana

# Pilih dataset yang akan digunakan (pilih salah satu):
# df_used = df_rand   # gunakan untuk dataset acak
df_used = df

# Fitur & target
X = df_used[['iklan']]  # fitur tunggal
y = df_used['penjualan']  # target

# Split data
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Model
model_sederhana = LinearRegression()
model_sederhana.fit(X_train, y_train)

# Prediksi
y_pred = model_sederhana.predict(X_test)

# Evaluasi
r2 = r2_score(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)

print("--- Evaluasi: Regresi Linear Sederhana ---")
print(f"r2 : {round(r2, 3)}")
print(f"MAE : {round(mae, 3)}")
print(f"MSE : {round(mse, 3)}")
print(f"RMSE : {round(rmse, 3)}")

# Koefisien & intercept
print("\nKoefisien (slope):", model_sederhana.coef_[0])
print("Intercept (a):", model_sederhana.intercept_)

# Visualisasi garis regresi
plt.scatter(X, y, label='Data Aktual')
plt.plot(X, model_sederhana.predict(X), label='Garis Regresi')
plt.xlabel("Biaya Iklan (juta)")
plt.ylabel("Penjualan (unit)")
plt.title("Regresi Linear Sederhana: Penjualan vs Iklan")
plt.legend()
plt.show()

Kode ini digunakan untuk membangun dan mengevaluasi model regresi linear sederhana guna memprediksi penjualan berdasarkan biaya iklan. Pertama, dataset yang digunakan ditentukan melalui variabel df_used, di mana df dipilih sebagai sumber data. Variabel independen (X) adalah kolom “iklan”, sedangkan variabel dependen (y) adalah kolom “penjualan”. Data kemudian dibagi menjadi dua bagian, yaitu data latih (80%) dan data uji (20%) menggunakan fungsi train_test_split. Model regresi linear dibuat dengan LinearRegression() dan dilatih menggunakan fit() pada data latih. Setelah itu, model digunakan untuk memprediksi nilai penjualan (y_pred) pada data uji. Kinerja model diukur dengan beberapa metrik evaluasi seperti , MAE, MSE, dan RMSE untuk melihat tingkat akurasi dan kesalahan prediksi. Nilai koefisien (slope) dan intercept (a) ditampilkan untuk menunjukkan persamaan garis regresi. Terakhir, grafik scatter antara biaya iklan dan penjualan ditampilkan dengan garis regresi untuk memvisualisasikan hubungan linier antara keduanya.

4. Lakukan Perhitungan Regresi Linear Berganda

# Gunakan dataset tetap 12 baris (df) untuk contoh ini
X_multi = df[['iklan', 'harga']]
y_multi = df['penjualan']

# split
X_train_m, X_test_m, y_train_m, y_test_m = train_test_split(
    X_multi, y_multi, test_size=0.2, random_state=42
)

# Model
model_ganda = LinearRegression()
model_ganda.fit(X_train_m, y_train_m)

# Prediksi
y_pred_m = model_ganda.predict(X_test_m)

# Evaluasi
r2_m = r2_score(y_test_m, y_pred_m)
mae_m = mean_absolute_error(y_test_m, y_pred_m)
mse_m = mean_squared_error(y_test_m, y_pred_m)
rmse_m = np.sqrt(mse_m)

print("--- Evaluasi: Regresi Linear Berganda ---")
print("R² :", round(r2_m, 3))
print("MAE :", round(mae_m, 3))
print("MSE :", round(mse_m, 3))
print("RMSE :", round(rmse_m, 3))

# Koefisien & intercept
coef_series = pd.Series(model_ganda.coef_, index=X_multi.columns, name='Koefisien')
display(coef_series.to_frame())
print("Intercept (a):", model_ganda.intercept_)

# Tabel perbandingan aktual vs prediksi
hasil = pd.DataFrame({"Aktual": y_test_m.values, "Prediksi": np.round(y_pred_m, 2)})
hasil.reset_index(drop=True, inplace=True)
hasil

Kode ini digunakan untuk membangun model regresi linear berganda yang memprediksi penjualan berdasarkan dua variabel independen, yaitu iklan dan harga. Pertama, fitur (X) terdiri dari dua kolom — “iklan” dan “harga” — sedangkan target (y) adalah kolom “penjualan”. Data dibagi menjadi data latih (80%) dan data uji (20%) menggunakan train_test_split. Model regresi berganda dibuat dengan LinearRegression() lalu dilatih menggunakan data latih melalui fit(). Selanjutnya, model melakukan prediksi terhadap data uji (y_pred_m). Kinerja model dinilai menggunakan metrik , MAE, MSE, dan RMSE untuk mengukur tingkat kesesuaian dan kesalahan prediksi. Nilai koefisien regresi ditampilkan dalam bentuk tabel untuk menunjukkan pengaruh masing-masing variabel (iklan dan harga) terhadap penjualan, serta intercept (a) yang merepresentasikan nilai penjualan saat kedua variabel independen bernilai nol. Terakhir, dibuat tabel perbandingan antara nilai aktual dan prediksi guna melihat seberapa dekat hasil model dengan data sebenarnya.

5. Menyimpan Hasil Prediksi Ke CSV

# Simpan hasil regresi sederhana
hasil_sederhana = pd.DataFrame({
    "Aktual": y_test.values,
    "Prediksi": np.round(y_pred, 2)
})
hasil_sederhana.to_csv("hasil_regresi_sederhana.csv", index=False)

# Simpan hasil regresi berganda
hasil_berganda = pd.DataFrame({
    "Aktual": y_test_m.values,
    "Prediksi": np.round(y_pred_m, 2)
})
hasil_berganda.to_csv("hasil_regresi_berganda.csv", index=False)
print("File tersimpan: hasil_regresi_sederhana.csv, hasil_regresi_berganda.csv")

Kode ini berfungsi untuk menyimpan hasil prediksi regresi dalam bentuk file CSV agar dapat dianalisis lebih lanjut atau dilaporkan. Pertama, dibuat DataFrame hasil_sederhana yang berisi dua kolom, yaitu nilai Aktual dan Prediksi dari model regresi linear sederhana. Data ini kemudian disimpan ke file bernama “hasil_regresi_sederhana.csv” tanpa menambahkan indeks. Langkah serupa dilakukan untuk model regresi berganda, di mana hasil prediksinya disimpan ke dalam file “hasil_regresi_berganda.csv”. Terakhir, perintah print() digunakan untuk menampilkan pesan bahwa kedua file CSV tersebut telah berhasil disimpan.

3. Kesimpulan

Dari seluruh proses perhitungan dan analisis regresi yang dilakukan, dapat disimpulkan bahwa baik model regresi linear sederhana maupun regresi linear berganda mampu memprediksi nilai penjualan berdasarkan variabel-variabel input dengan tingkat akurasi yang cukup baik. Model regresi sederhana menunjukkan hubungan positif antara biaya iklan dan penjualan, di mana peningkatan anggaran iklan cenderung diikuti oleh kenaikan jumlah penjualan. Sementara itu, model regresi berganda memberikan hasil yang lebih komprehensif dengan mempertimbangkan pengaruh gabungan antara iklan dan harga, sehingga menghasilkan prediksi yang lebih akurat. Nilai metrik evaluasi seperti R², MAE, MSE, dan RMSE menunjukkan bahwa kesalahan prediksi relatif kecil dan model memiliki kemampuan generalisasi yang baik terhadap data. Hasil akhir juga disimpan dalam format CSV agar dapat digunakan untuk analisis lanjutan. 

 

Link Praktikum & Latihan

1. Praktikum

2. Latihan



Referensi

Sumber utama:

Link Flipbook: Flipbook

Atau anda bisa mengakses langsung dari blog pribadi penulis: Adi Muhamad Muhsidi

Posting Komentar untuk "Praktikum Modul 4: Regresi Linear dan Prediksi Bisnis"