Soal 1 Analisis Korelasi dan Visualisasi

Masalah

Sarah adalah seorang manajer penjualan di wilayah tertentu untuk perusahaan yang menjual bahan bakar minyak untuk pemanas rumah. Akhir-akhir ini, hasil pemasaran semakin buruk, padahal biaya untuk kegiatan pemasaran justru semakin besar. Sarah merasa perlu mencari tahu apa saja perilaku dan faktor yang bisa memengaruhi permintaan masyarakat terhadap minyak pemanas rumah. Ia tahu bahwa banyak hal yang bisa memengaruhi seberapa banyak orang menggunakan minyak pemanas. Sarah percaya bahwa dengan mempelajari hubungan antara faktor-faktor tersebut, ia bisa lebih mudah memantau dan memprediksi permintaan minyak pemanas, serta bisa membuat strategi pemasaran yang lebih tepat di masa depan.

Langkah 1: Corelation Matrix

Tujuan:

Menganalisis hubungan antar variabel numerik untuk mengetahui faktor-faktor yang paling berkorelasi dengan Heating_Oil sebagai variabel target.

Variabel yang Digunakan - Heating_Oil (Jumlah konsumsi minyak pemanas) - Insulation (Kualitas isolasi rumah) - Temperature (Suhu lingkungan rata-rata) - Num_Occupants (Jumlah penghuni rumah) - Avg_Age (Usia rata-rata penghuni rumah) - Home_Size (Ukuran rumah)

Kode R: Membuat Correlation Matrix dan Heatmap

# Memanggil library
library(readr)
library(ggplot2)
library(reshape2)
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.4.3
## corrplot 0.95 loaded
# Membaca dataset
data <- read_csv("HeatingOil.csv")
## Rows: 1218 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (6): Insulation, Temperature, Heating_Oil, Num_Occupants, Avg_Age, Home_...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Memilih variabel yang relevan
data_selected <- data[, c("Heating_Oil", "Insulation", "Temperature", "Num_Occupants", "Avg_Age", "Home_Size")]

# Menghitung matriks korelasi
cor_matrix <- cor(data_selected)

# Menampilkan korelasi dalam bentuk tabel
print(round(cor_matrix, 2))
##               Heating_Oil Insulation Temperature Num_Occupants Avg_Age
## Heating_Oil          1.00       0.74       -0.77         -0.04    0.85
## Insulation           0.74       1.00       -0.79         -0.01    0.64
## Temperature         -0.77      -0.79        1.00          0.01   -0.67
## Num_Occupants       -0.04      -0.01        0.01          1.00   -0.05
## Avg_Age              0.85       0.64       -0.67         -0.05    1.00
## Home_Size            0.38       0.20       -0.21         -0.02    0.31
##               Home_Size
## Heating_Oil        0.38
## Insulation         0.20
## Temperature       -0.21
## Num_Occupants     -0.02
## Avg_Age            0.31
## Home_Size          1.00
# Visualisasi korelasi dalam bentuk heatmap berwarna
corrplot(cor_matrix, method = "color", type = "upper",
         col = colorRampPalette(c("blue", "white", "red"))(200),
         addCoef.col = "black", tl.col = "black", number.cex = 0.8)

Tabel Interpretasi Korelasi

Variabel Korelasi dengan Heating_Oil Interpretasi
Temperature 🔵 Negatif Kuat Semakin dingin suhunya, konsumsi minyak meningkat drastis
Insulation 🔵 Negatif Sedang Isolasi yang lebih baik → penggunaan minyak lebih rendah
Avg_Age 🔴 Positif Sedang Rumah dengan penghuni lebih tua → cenderung pakai lebih banyak pemanas
Num_Occupants 🔴 Positif Lemah–Sedang Lebih banyak orang → kebutuhan kenyamanan termal lebih tinggi
Home_Size 🔴 Positif Lemah Rumah lebih besar → lebih banyak ruang untuk dipanaskan

🔵 = Korelasi negatif (semakin biru → semakin negatif)

🔴 = Korelasi positif (semakin merah → semakin positif)

⚪ = Korelasi mendekati nol (tidak signifikan)

Kesimpulan

1.Terdapat dua variabel dengan hubungan paling signifikan terhadap konsumsi Heating_Oil:

  • Temperature (korelasi negatif kuat)

  • (korelasi negatif sedang)

2.Rumah yang lebih dingin dan tidak terinsulasi dengan baik cenderung menggunakan lebih banyak minyak pemanas.

3.Faktor demografis seperti usia penghuni dan jumlah penghuni juga memiliki kontribusi, meskipun tidak sekuat dua faktor utama di atas.

Langkah 2: Interpretasi

Variabel yang memiliki korelasi signifikan dengan Heating_Oil:

1.Insulation (Isolasi rumah) - Korelasi negatif yang kuat dengan Heating_Oil (warna biru tua). - Artinya: Semakin baik isolasi rumah, semakin sedikit konsumsi Heating_Oil. - Penjelasan: Rumah yang terisolasi dengan baik lebih efisien dalam menjaga suhu, sehingga tidak memerlukan banyak pemanasan tambahan.

2 Temperature (Suhu lingkungan) - Korelasi negatif yang sangat kuat dengan Heating_Oil (warna biru sangat pekat). - Artinya: Semakin tinggi suhu lingkungan, semakin rendah konsumsi Heating_Oil. - Penjelasan: Jika suhu sudah cukup hangat, kebutuhan untuk pemanas (Heating_Oil) akan menurun secara alami.

3 Num_Occupants (Jumlah penghuni rumah) - Korelasi positif dengan Heating_Oil (warna merah sedang). - Artinya: Semakin banyak orang yang tinggal di rumah, semakin besar konsumsi Heating_Oil. - Penjelasan: Lebih banyak orang biasanya berarti lebih banyak ruangan yang digunakan dan lebih besar kebutuhan kenyamanan suhu.

Kesimpulan

Dari hasil korelasi ini, terdapat dua faktor utama yang menurunkan konsumsi Heating_Oil, yaitu suhu lingkungan yang lebih hangat dan isolasi rumah yang baik. Sebaliknya, jumlah penghuni rumah dapat meningkatkan konsumsi Heating_Oil. Maka, jika ingin menghemat pemakaian Heating_Oil, fokus utama bisa diarahkan pada peningkatan isolasi rumah dan memanfaatkan suhu alami secara optimal.

Langkah 3: Scatter Plot 1

Tujuan:

Melihat apakah terdapat pola atau hubungan antara:

  • X = Heating_Oil (jumlah konsumsi minyak pemanas)
  • Y = Avg_Age (usia rata-rata penghuni rumah)
  • Warna Titik: Menunjukkan intensitas nilai Heating_Oil (semakin merah, semakin tinggi)

Membuat Scatter Plot

Hasil dan Interpretasi Scatter Plot 1

Scatter plot menunjukkan pola yang jelas di mana semakin tinggi usia rata-rata penghuni rumah, maka semakin tinggi pula konsumsi minyak pemanas (Heating_Oil). Titik-titik data membentuk pola naik (tren positif), yang menunjukkan adanya korelasi positif antara Avg_Age dan Heating_Oil.

Penggunaan gradasi warna dari biru ke merah memperkuat visualisasi bahwa nilai Heating_Oil meningkat seiring bertambahnya Avg_Age.

Kesimpulan

Terdapat hubungan positif antara usia rata-rata penghuni rumah dengan jumlah konsumsi minyak pemanas. Rumah dengan penghuni yang lebih tua cenderung menggunakan lebih banyak Heating_Oil, kemungkinan karena mereka lebih sensitif terhadap suhu dingin dan membutuhkan kenyamanan termal yang lebih tinggi.

Langkah 4: Scatter Plot 2

Tujuan:

Melihat apakah ada pola hubungan antara suhu lingkungan (Temperature) dan kualitas insulasi rumah (Insulation) terhadap jumlah konsumsi minyak pemanas (Heating_Oil).

Membuat Scatter Plot

ggplot(data, aes(x = Temperature, y = Insulation, color = Heating_Oil)) +
  geom_point() +
  scale_color_gradient(low = "blue", high = "red") +
  labs(title = "Scatter Plot: Temperature vs Insulation",
       x = "Temperature (Rata-rata Suhu Lingkungan)",
       y = "Insulation (Kualitas Peredam Panas)",
       color = "Heating_Oil") +
  theme_minimal()

Penjelasan Hasil Scatter Plot 2

  • Sumbu X: Temperature (rata-rata suhu lingkungan rumah)
  • Sumbu Y: Insulation (skor kualitas insulasi rumah, dari 1 sampai 10)
  • Warna Titik: menunjukkan intensitas konsumsi Heating_Oil, dari biru (rendah) ke merah (tinggi)

Pola yang Terlihat: Titik-titik dengan warna merah terang (konsumsi Heating_Oil tinggi) umumnya muncul pada: - Temperature rendah (suhu dingin) - Insulation rendah (insulasi buruk)

Sebaliknya, pada titik dengan suhu tinggi dan insulasi baik, konsumsi Heating_Oil cenderung lebih rendah (warna biru atau ungu).

Kesimpulan:

Scatter plot menunjukkan bahwa rumah yang berada di lingkungan dengan suhu lebih dingin dan memiliki insulasi yang buruk cenderung mengonsumsi minyak pemanas lebih banyak. Artinya, suhu lingkungan yang rendah dan kualitas insulasi yang buruk memang berpengaruh terhadap meningkatnya kebutuhan Heating_Oil, sehingga dua variabel ini merupakan faktor penting dalam memprediksi konsumsi energi pemanas.

Langkah 5: Rekomendasi

Berdasarkan hasil analisis sebelumnya, ditemukan bahwa:

1.Konsumsi Heating_Oil meningkat pada rumah dengan penghuni yang lebih tua (Avg_Age tinggi). 2.Konsumsi Heating_Oil lebih tinggi di wilayah bersuhu dingin (Temperature rendah). 3.Rumah dengan insulasi buruk (skor rendah) cenderung menggunakan lebih banyak Heating_Oil.

Rekomendasi Strategi Pemasaran

1.Fokus pada Segmen Lansia atau Rumah dengan Usia Penghuni Tinggi - Target: Rumah yang rata-rata penghuninya berusia 50 tahun ke atas. - Strategi: Berikan edukasi tentang pentingnya menjaga kehangatan rumah di musim dingin dan tawarkan paket hemat Heating_Oil yang ramah lansia. - Contoh Promosi: “Paket Nyaman Musim Dingin untuk Keluarga Anda – Spesial untuk Rumah dengan Penghuni Senior.”

2.Targetkan Rumah di Daerah Bersuhu Rendah - Target: Wilayah dengan rata-rata suhu tahunan lebih rendah. - Strategi: Fokuskan kampanye pemasaran dan distribusi stok Heating_Oil di wilayah dingin menjelang musim dingin. - Pendekatan: Gunakan pesan yang menekankan pentingnya persiapan musim dingin sejak dini.

3.Sasar Rumah dengan Insulasi Buruk - Target: Rumah dengan skor insulasi rendah (misalnya, di bawah 5). - Strategi: Tawarkan paket Heating_Oil reguler atau berlangganan, karena mereka cenderung memiliki kebutuhan pemanasan lebih besar. - Pendekatan: “Rumah Anda cepat dingin? Kami punya solusinya!”

4.Personalisasi Komunikasi Berdasarkan Karakteristik Pelanggan - Kirimkan email atau notifikasi berbeda tergantung usia penghuni, suhu wilayah, dan skor insulasi. - Gunakan bahasa yang sesuai: hangat, nyaman, dan mudah dipahami oleh kelompok usia yang lebih tua.

Kesimpulan

Dengan memahami pola konsumsi Heating_Oil dari data, Sarah dapat membuat strategi pemasaran yang lebih tepat sasaran: fokus pada lansia, wilayah dingin, dan rumah dengan insulasi rendah. Pendekatan yang lebih personal dan berbasis data ini berpotensi meningkatkan efektivitas pemasaran serta mengurangi biaya promosi yang tidak tepat sasaran.

SOAL 2 - Prediksi dan Model Distribusi

Prediksi Jumlah Konsumsi Minyak Pemanas Rumah Sarah, yang sebelumnya sukses dengan bantuan saran yang anda berikan, kini sarah dipromosikan menjadi VP Marketing. Ia bertanggung jawab atas ratusan marketer yang tersebar di berbagai wilayah. Salah satu tantangan yang dihadapinya adalah Data HeatingOil.csv bersifat rahasia dan hanya dapat diakses oleh Sarah (VP). Para marketer tidak boleh langsung melihat dataset tersebut, namun tetap diminta untuk memperkirakan kebutuhan minyak calon pelanggan baru.

Sarah ingin masing-masing marketer membuat proses yang dapat mengestimasi kebutuhan konsumsi minyak dari client yang mereka approach, dengan menggunakan model yang sebelumnya dihasilkan oleh Sarah, meskipun tanpa mengakses dataset (HeatingOil.csv)

Asumsikan bahwa data HeatingOil-Marketing.csv adalah data calon pelanggan yang berhasil di approach oleh salah satu marketingnya. Untuk mengatasi ini, Sarah ingin membuat model regresi prediktif, menyimpannya, dan mendistribusikan model tersebut ke semua marketer.

Langkah Sarah (Buat dan Simpan Model)

1. Membaca dataset: HeatingOil.csv

Sarah perlu memuat dataset asli yang berisi data historis yang digunakan untuk membangun model regresi.

library(readr)

data <- read_csv("HeatingOil.csv")
## Rows: 1218 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (6): Insulation, Temperature, Heating_Oil, Num_Occupants, Avg_Age, Home_...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

2. Membuat model regresi untuk memprediksi konsumsi minyak (Heating_Oil)

Sarah akan membuat model regresi linier untuk memprediksi konsumsi minyak berdasarkan beberapa variabel seperti Insulasi, Suhu, Jumlah Penghuni, Usia Rata-rata, dan Ukuran Rumah.

# Memilih variabel yang dibutuhkan
data_selected <- data[, c("Heating_Oil", "Insulation", "Temperature", "Num_Occupants", "Avg_Age", "Home_Size")]

# Membuat model regresi linier
library(caret)
## Warning: package 'caret' was built under R version 4.4.3
## Loading required package: lattice
set.seed(123)
model <- train(Heating_Oil ~ ., data = data_selected, method = "lm")

3.Menyimpan model agar dapat digunakan oleh marketer tanpa harus membagikan data HeatingOil.csv

Sarah menyimpan model yang sudah dibuat dalam format .rds agar model dapat didistribusikan ke marketer tanpa memberikan akses langsung ke dataset yang digunakan untuk pelatihan.

saveRDS(model, "model_heating_oil.rds")

Langkah Marketer (Load dan Prediksi)

1.Membaca model yang sudah disimpan oleh Sarah

Marketer perlu memuat model yang sudah disimpan oleh Sarah untuk digunakan dalam proses prediksi.

model_loaded <- readRDS("model_heating_oil.rds")

2. Membaca Data Calon Pelanggan Baru: HeatingOil-Marketing.csv

Marketer perlu memuat dataset calon pelanggan baru yang telah di-approach, yang berisi informasi yang akan digunakan untuk memprediksi kebutuhan minyak pemanas rumah.

marketing_data <- read_csv("HeatingOil-Marketing.csv")
## Rows: 4 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl (5): Insulation, Temperature, Num_Occupants, Avg_Age, Home_Size
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

3. Menerapkan Model ke Data Calon Pelanggan Baru untuk Memprediksi Kebutuhan Minyak Pemanas Rumah

Marketer kemudian menggunakan model yang sudah dimuat untuk memprediksi konsumsi minyak (Heating_Oil) berdasarkan data calon pelanggan baru.

# Melakukan prediksi menggunakan model yang sudah dimuat
prediksi <- predict(model_loaded, newdata = marketing_data)

# Menambahkan hasil prediksi ke dataset
marketing_data$Prediksi_Heating_Oil <- prediksi

# Menampilkan hasil prediksi
head(marketing_data)

Ringkasan Langkah-Langkah yang Harus Dilakukan:

Sarah:

1.Membaca dataset HeatingOil.csv. 2.Membuat model regresi linier untuk memprediksi konsumsi minyak (Heating_Oil). 3.Menyimpan model dalam format .rds agar dapat didistribusikan ke marketer tanpa akses ke dataset asli.

Marketer:

1.Membaca model yang sudah disimpan oleh Sarah (model_heating_oil.rds). 2.Membaca data calon pelanggan baru (HeatingOil-Marketing.csv). 3.Menerapkan model yang sudah dimuat untuk memprediksi kebutuhan minyak pemanas rumah pada data calon pelanggan.

Dengan proses ini, Sarah dapat mendistribusikan model prediksi kepada marketer tanpa membagikan data asli, menjaga kerahasiaan data, sekaligus memungkinkan para marketer untuk melakukan prediksi yang diperlukan.

Referensi

1.Istiawan, D. (2025). Regression Model. Retrieved May 3, 2025, from https://regmod.netlify.app/

2.James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning with Applications in R.

3.Montgomery, D. C., Peck, E. A., & Vining, G. G. (2012). Introduction to Linear Regression Analysis.

4.Gelman, A., & Hill, J. (2006). Data Analysis Using Regression and Multilevel/Hierarchical Models.