Blog AWS Indonesia

Membuat Prediksi Konsumsi Energi Yang Akurat dengan Amazon Forecast

Amazon Forecast adalah layanan yang dikelola sepenuhnya yang menggunakan pembelajaran mesin (machine learning / ML) untuk menghasilkan perkiraan yang sangat akurat, tanpa memerlukan pengalaman ML sebelumnya. Amazon Forecast dapat digunakan dalam berbagai kasus penggunaan, termasuk peramalan permintaan energi, memperkirakan permintaan produk, perencanaan tenaga kerja, dan penggunaan infrastruktur komputasi cloud.

Dengan Forecast, tidak ada server yang perlu disiapkan ataupun membangun model ML secara manual. Selain itu, Anda hanya membayar untuk apa yang Anda gunakan, dan tidak ada biaya minimum atau komitmen di muka. Untuk menggunakan Forecast, Anda hanya perlu menyediakan data historis untuk apa yang ingin Anda ramalkan, dan Anda juga memiliki menambahkan data opsional yaitu data tambahan apa pun yang Anda yakini dapat memengaruhi perkiraan Anda. Data terkait ini dapat mencakup data yang bervariasi waktu, seperti harga, kejadian, cuaca, dan data kategoris, seperti warna, genre, atau wilayah. Layanan ini secara otomatis melakukan pelatihan (training dan penerapan (deployment) pada model ML berdasarkan data Anda dan memberi Anda API khusus untuk melakukan forecast.

Perusahan penyedia energi dan utilitas memiliki beberapa kasus penggunaan forecast, tetapi salah satu kasus utama yg penting adalah memprediksi konsumsi energi baik pada pelanggan dan tingkat agregat. Memprediksi konsumsi energi secara akurat sangat penting sehingga pelanggan tidak menghadapi gangguan layanan dan menyediakan sistem grid yang stabil dengan tetap mempertahankan harga yang rendah.

Posting ini mengeksplorasi menggunakan Forecast untuk mengatasi kasus penggunaan ini dengan menggabungkan data historis time series dengan variabel eksternal seperti cuaca.

Latar Belakang Kasus Penggunaan

Peramalan energi yang akurat sangat penting untuk memastikan bahwa perusahaan utilitas dapat menjalankan operasi sehari-hari secara efisien. Ramalan energi sangat menantang karena permintaan yang dinamis dan perubahan cuaca musiman yang berdampak. Berikut ini adalah dua kasus penggunaan yang paling umum:

  • Perkiraan konsumsi daya pada tingkat konsumen – Di banyak negara, daya disediakan di pasar ritel yang kompetitif. Konsumen memiliki pilihan dalam membeli listrik dan dapat beralih penyedia jika mereka menerima tagihan energi tinggi atau memiliki pengalaman pelanggan yang buruk. Sebagai penyedia utilitas, Anda dapat mengurangi kaburnya pelanggan dengan meningkatkan layanan pelanggan dan proaktif menjangkau dengan mengeluarkan pemberitahuan pada tagihan di masa depan. Pemberitahuan didasarkan pada prediksi konsumsi listrik secara akurat pada tingkat pelanggan individu.
  • Perkiraan konsumsi daya pada tingkat agregat untuk mengelola penawaran dan permintaan dengan lebih baik – Sebagai penyedia utilitas, Anda harus menyeimbangkan penawaran dan permintaan agregat. Anda sering harus membeli energi untuk memenuhi permintaan tertinggi atau menjual kelebihan kapasitas di pasar spot. Selain itu, ramalan permintaan telah menjadi lebih menantang dengan sebagai berikut:
    • Pengenalan sumber daya energi terbarukan, seperti angin dan matahari. Ini dimiliki baik oleh utilitas dan konsumen akhir, tergantung pada perubahan cuaca, dan tidak menghasilkan daya yang stabil setiap saat.
    • Munculnya pembelian kendaraan listrik dan sifat yang tidak diketahui ketika kapan pemilik kendaraan akan melakukan pengisian listrik di rumah. Peningkatan forecast memungkinkan Anda untuk merencanakan ke depan untuk menyusun kontrak berjangka yang lebih hemat biaya.

Tulisan ini berfokus pada solusi untuk kasus penggunaan pertama, yaitu di tingkat konsumen.

Langkah pertama adalah menyiapkan data Anda. Danau data (data lake) telah terbukti revolusioner untuk perusahaan utilitas. Sebuah gudang data (data warehouse) adalah repositori untuk data terstruktur dan di-filter yang telah diproses untuk tujuan tertentu. Sebaliknya, data lake adalah repositori penyimpanan yang menyimpan sejumlah besar data mentah dalam format aslinya sampai dibutuhkan. Ini sangat berharga bagi perusahaan listrik atau utilitas yang mengumpulkan, menyimpan, dan memproses pembacaan meter dari jutaan pelanggan.

Arsitektur Solusi

Diagram berikut menggambarkan arsitektur solusi yang dapat anda terapkan untuk memberikan pemberitahuan tagihan kepada pelanggan Anda.

Arsitektur ini berisi langkah-langkah berikut:

  1. Meteran di rumah biasanya merekam energi per jam atau lebih sering lagi dan melaporkan setidaknya setiap hari ke perusahaan utilitas.
  2. Anda dapat menerapkan data ingestion melalui berbagai saluran. Jika Anda mengumpulkan data di pusat data lokal, Anda dapat mengirim data ke AWS melalui AWS Direct Connect. Jika meteran memiliki kemampuan IoT, Anda dapat mengirim data ke AWS IoT Core melalui topik MQTT. MQTT adalah protokol konektivitas mesin-ke-mesin (M2M) /IoT. MQTT ini dirancang sebagai publish and subscribe messaging transport yang sangat ringan. Hal ini berguna untuk koneksi di lokasi terpencil yang memerlukan kode yang kecil atau di mana bandwidth jaringan merupakan hal yang premium.
  3. Anda menggunakan Amazon S3 untuk menyimpan raw data meter. Solusi data lake berbasis Amazon S3 menggunakan Amazon S3 sebagai platform penyimpanan utamanya. Amazon S3 memberikan dasar yang optimal untuk data lake karena skalabilitas yang tidak terbatas. Anda dapat meningkatkan penyimpanan dari gigabyte ke petabyte dengan mulus dan hanya membayar untuk apa yang Anda gunakan. Amazon S3 dirancang untuk memberikan ketangguhan (durability) 99.999999999%. Anda dapat menggunakan lifecycle policy untuk mengarsipkan data ke Amazon S3 Glacier, yang lebih hemat biaya. Untuk informasi lebih lanjut, baca Building Big Data Storage Solutions (Data Lakes) for Maximum Flexibility.
  4. Data yang masuk ke dalam S3 bucket disebut raw zone. Ketika data tersedia, pemicu di Amazon S3 memanggil fungsi AWS Lambda, yang memproses dan memindahkan data ke data catalog lain disebut processed zone.
  5. Anda dapat melakukan kueri data di Amazon S3 melalui Amazon Athena. Athena adalah layanan kueri interaktif yang membuat mudah bagi anda untuk menganalisis data langsung di Amazon S3 menggunakan SQL standar. Athena secara otomatis menyimpan hasil kueri dan informasi metadata untuk setiap kueri yang berjalan di lokasi hasil kueri, yang dapat Anda tentukan di Amazon S3.
  6. Anda dapat mengakses bucket hasil kueri dengan Amazon QuickSight. Amazon QuickSight adalah layanan analisis bisnis yang dapat Anda gunakan untuk membangun visualisasi, melakukan analisis ad hoc, dan mendapatkan wawasan bisnis dari data Anda. Amazon Quicksight secara otomatis dapat menemukan sumber data AWS dan juga bekerja dengan sumber data Anda.
  7. Anda dapat menggunakan data yang diproses dari Amazon S3 untuk membuat prediksi dengan Forecast. Pelanggan perumahan dapat menggunakan hasil ini untuk melihat konsumsi energi di masa depan, yang memungkinkan mereka untuk menghitung biaya energi dan pindah ke pricing plan yang lebih efisien atau memodifikasi penggunaan masa depan sesuai kebutuhan. Anda dapat menggunakan API Query dan mengintegrasikannya dengan aplikasi mobile atau web Anda untuk memberikan visibilitas kepada pelanggan Anda ke permintaan di masa mendatang dan membantu mendorong konsumsi. Untuk informasi lebih lanjut tentang mengotomatisasi alur kerja terkait Forecast dapat Anda baca di sini Automating your Amazon Forecast workflow with Lambda, Step Functions, and CloudWatch Events rule.

Menyiapkan Forecast

Tulisan ini mengevaluasi dua pendekatan yang berbeda untuk meramalkan konsumsi energi pada tingkat pelanggan individu, satu tanpa terkait informasi time series dan satu lagi dengan data time series.

Dalam masalah peramalan, related time series adalah variabel (seperti cuaca atau harga) yang berkorelasi dengan nilai target dan menggunakan statistik untuk membuat peramalan pada nilai target (dalam hal ini, permintaan energi). Lebih tepatnya, Forecast memperlakukan related time series sebagai variabel eksternal. Variabel ini bukan bagian dari spesifikasi model, tetapi Anda dapat menggunakannya untuk menangkap korelasi antara nilai saat ini dari related time series dengan nilai yang sesuai dari target time series.

Anda mungkin tidak selalu meningkatkan akurasi dengan menggabungkan data related time series. Oleh karena itu, Anda harus mendasarkan setiap penambahan related time series pada backtesting untuk memeriksa apakah akurasi keseluruhan baik ditingkatkan atau tidak berubah dengan penambahan yang sama. Forecast tidak memerlukan data related time series, namun memerlukan target time series. Jika related time series telah kehilangan nilai atau masalah kualitas lainnya, mungkin lebih baik untuk tidak menyertakan hal yang sama untuk menghindari adanya noise pada model. Pada dasarnya, tugas utama feature engineering adalah untuk memutuskan related time series dapat berguna atau tidak, atau bagaimana menggunakannya secara efektif.

Untuk informasi lebih, anda dapat mengunjungi Using Related Time Series Datasets.

Membuat model forecast konsumsi energi dengan ARIMA

Autoregressive integrated moving average (ARIMA) adalah model statistik klasik untuk time series. Menggunakan nilai-nilai masa lalu untuk menjelaskan masa depan dengan mengekspresikan nilai-nilai time series dengan kombinasi linear dari lagged value dan forecast error. Anda dapat menggunakan ARIMA dengan autoregressive integrated moving average with explanatory variable (ARIMAX) model, atau tanpa variabel related time series atau regresi. Bila Anda menerapkan model ARIMA, akan sulit untuk memilih urutan model yang tepat, yang merupakan proses manual dan subjektif. Dalam Forecast, Anda menggunakan auto.arima untuk secara otomatis menemukan model ARIMA yang paling cocok untuk data Anda.

Data masukan yang digunakan adalah data konsumsi energi individu. Ini adalah file CSV dengan tiga atribut: <CustomerID>, <Date>, dan <Energy consumption amount>. Jumlah konsumsi energi diukur dalam kWh (kilowatt jam). Di tulisan ini menggunakan data historis harian 557 hari, namun Anda dapat dengan mudah menggunakan data per jam, yang lebih umum terjadi di industri ini. Untuk informasi lebih lanjut tentang frekuensi yang didukung oleh Forecast maka anda dapat melihat di sini FeaturizationConfig. Unggah berkas data ke dalam S3 bucket pilihan Anda.

Screenshot berikut menunjukkan contoh snapshot data pelanggan.

Grafik berikut adalah visualisasi dari data contoh.

Untuk informasi selengkapnya tentang cara membuat resource, lihat Amazon Forecast – Now Generally Available. Langkah-langkah utamanya adalah sebagai berikut:

  1. Di konsol Amazon Forecast, pilih Create dataset group.
  2. Berikan nama dan domain forecasting.
  3. Tentukan dataset target untuk time series:
    • Item_id adalah penggunaan dari <CustomerID>
    • timestamp adalah tanggal berformat <YYYY-MM-DD>, yg merupakan data konsumsi harian
    • Target_value adalah energi yang terkonsumsi
  4. Buat import job untuk mengimpor data historis. Pastikan bahwa IAM role memiliki akses ke S3 bucket tempat file CSV diunggah.
  5. Setelah mengimpor data, status data target time series ditampilkan sebagai aktif.
  6. Pada Dashboard, di Train a predictor, pilih Start.
  7. Untuk algoritma, tulisan ini menggunakan ARIMA.
  8. Ketika pelatihan predictor selesai, status di dasbor ditampilkan sebagai aktif.
  9. Buat Forecast

Setelah Anda berhasil membuat forecast, Anda dapat melakukan kueri untuk ID pelanggan tertentu atau menjalankan export job untuk menghasilkan hasil untuk semua ID pelanggan. Tangkapan layar berikut menunjukkan perkiraan konsumsi energi untuk ID test.

Meskipun ulasan ini tidak termasuk faktor-faktor seperti suhu, ini adalah cara yang sangat baik untuk memulai dan membangun model dasar dengan data target time series. Selain itu juga, sebagai utilitas yang mencoba untuk memenuhi agregat penawaran dan permintaan, Anda berpotensi dapat menggabungkan semua data pelanggan dan memprediksi konsumsi masa depan untuk merencanakan jumlah pasokan yang sesuai.

Membuat model forecast konsumsi energi dengan DeepAR+

Algoritma Forecast DeepAR+ adalah algoritma supervised learning untuk forecasting skalar (satu dimensi) time series menggunakan recurrent neural networks (RNN). Metode forecasting klasik, seperti ARIMA atau exponential smooting (ETS) cocok dengan model tunggal untuk setiap individu time series. Sebaliknya, DeepAR+ menciptakan model global (satu model untuk semua time series) dengan potensi manfaat pembelajaran di seluruh time series.

Model DeepAR+ sangat berguna ketika bekerja dengan koleksi besar (lebih dari ribuan) dari target time series, di mana time series tertentu memiliki jumlah informasi yang terbatas. Misalnya, untuk meramalkan konsumsi energi masing-masing rumah tangga, model global seperti DeepAR+ dapat menggunakan kekuatan statistik yang lebih informatif untuk memprediksi rumah tangga baru dengan lebih baik. Selain itu, DeepAR+ dapat memperhitungkan related time series, yang dapat membantu meningkatkan forecasting Anda.

Kasus penggunaan ini menambahkan data cuaca karena ada korelasi dengan konsumsi energi. Langkah-langkah utama adalah sebagai berikut:

  1. Perbarui dataset group dengan data related time series dengan membuat dataset import job baru. Model ini mempertimbangkan atribut-atribut sebagai berikut (selain dari timestamp and CustomerID):
    1. dayofweek
    2. dailyaveragedrybulbtemperature
    3. dailycoolingdegreedays
    4. dailydeparturefromnormalaveragetemperature
    5. dailyaveragenormaltemp
    6. dailyheatingdegreedays
    7. dailymaximumdrybulbtemperature
    8. dailyminimumdrybulbtemperature
    9. length_of_day_hours

    Tabel berikut merangkum data untuk kota Seattle (mengingat bahwa pelanggan dalam dataset ini berada di kota itu) dari sumber cuaca publik.

    dayofweek dailyaveragedrybulbtemperature dailycoolingdegreedays dailydeparturefromnormalaveragetemperature dailyaveragenormaltemp dailyheatingdegreedays dailymaximumdrybulbtemperature dailyminimumdrybulbtemperature Length_of_Day_Hours
    7 53 0 -3.1 56.1 12 60 46 15.03
    1 55 0 -1.3 56.3 10 60 49 15.08
    2 51 0 -5.5 56.5 14 55 47 15.12
    3 50 0 -6.7 56.7 15 53 46 15.15
    4 53 0 -3.9 56.9 12 60 46 15.2
    5 57 0 -0.1 57.1 8 64 50 15.25
    6 62 0 4.7 57.3 3 73 50 15.28
    7 64 0 6.5 57.5 1 72 56 15.32
    1 64 0 6.3 57.7 1 76 51 15.35
    2 69 4 11.1 57.9 0 82 55 15.4
    3 67 2 8.9 58.1 0 81 53 15.43
  2. Membuat predictor baru dengan dataset yang terbarui.
  3. Buat model baru.
  4. Buat forecast baru.

Tangkapan layar berikut menunjukkan forecast konsumsi energi untuk ID pelanggan test yang sama, menggunakan model baru.

Anda dapat mengevaluasi hasil dari dua model (ARIMA dan DeepAR+ dengan related time series) dengan konsumsi energi aktual selama cakrawala perkiraan 5 hari (untuk tulisan ini, 11 November 2019, hingga 15 November 2019).

Untuk membuat evaluasi ini, gunakan metrik wQL [0.5]/MAPE. Metrik MAPE yang dihitung dengan ARIMA adalah 0,25, sedangkan model DeepAR+ dengan data cuaca yang disertakan memiliki MAPE 0,04. Anda dapat mempelajari lebih lanjut tentang mengevaluasi model Anda di sini. Model DeepAR+ dengan cuaca membantu meningkatkan akurasi model sebesar 84%. Tabel berikut merangkum rincian dalam perbandingan ini:

Date ARIMA (in kWh) DeepAR+ (in kWh) Actual energy consumption (in kWh)
11/11/2019 43.5 44.1 46
11/12/2019 49.1 59 59.6
11/13/2019 49.5 69 70
11/14/2019 48.8 73.5 75
11/15/2019 48.4 68.1 67

Grafik berikut memvisualisasikan perbandingan data.

Ringkasan

Tulisan ini membahas bagaimana menggunakan Forecast dan arsitektur sistem yang mendasarinya untuk memprediksi permintaan energi pelanggan individu menggunakan data smart meter. Anda dapat meningkatkan akurasi model dengan DeepAR+ dan data cuaca untuk mencapai akurasi perkiraan sekitar 96% (sebagaimana ditentukan oleh mean absolute percentage error / MAPE).


Tulisan ini berasal dari artikel Making accurate energy consumption predictions with Amazon Forecast yang ditulis oleh Neelam Koshiya, Rohit Menon, dan Bernie Wang dan diterjemahkan oleh Rudi Suryadi.

Petra Barus

Petra Barus

Petra Novandi Barus is Developer Advocate at Amazon Web Services based in Jakarta. He is passionate in helping startups and developers in Indonesia to reinvent on behalf their customers. Prior to AWS, Petra co-founded UrbanIndo.com as CTO. The startup became the largest real-estate portal in Indonesia and then was acquired by 99.co. During that time Petra had been a happy AWS customer for 8 years. Petra is also very active in local tech communities