Tutorial Time Series Forecasting: Prophet, NeuralProphet, dan LSTM

# Peramalan Deret Waktu dengan Prophet, NeuralProphet, dan LSTM ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Dasar-Dasar Deret Waktu](#dasar-dasar-deret-waktu) 4. [Per...

By Ruby Abdullah · · tutorial
Time SeriesForecastingProphetNeuralProphetLSTMPython

Peramalan Deret Waktu dengan Prophet, NeuralProphet, dan LSTM

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Dasar-Dasar Deret Waktu
  • Peramalan dengan Prophet
  • NeuralProphet: Peramalan Berbasis Jaringan Saraf
  • LSTM dengan PyTorch
  • Deteksi Anomali pada Deret Waktu
  • Metrik Evaluasi
  • Peramalan Multi-Langkah
  • Perbandingan Model
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    Peramalan deret waktu (time series forecasting) merupakan salah satu penerapan ilmu data yang paling berdampak di dunia industri. Mulai dari memprediksi harga saham, konsumsi energi, hingga meramalkan permintaan produk dan beban server, kemampuan untuk mengantisipasi nilai masa depan berdasarkan pola historis sangatlah berharga.

    Tutorial ini membahas tiga pendekatan andal untuk peramalan deret waktu: Facebook Prophet untuk dekomposisi aditif yang kokoh, NeuralProphet untuk peramalan berbasis jaringan saraf dengan autoregresi, dan LSTM (Long Short-Term Memory) yang dibangun dengan PyTorch untuk menangkap dependensi sekuensial yang kompleks.

    Di akhir tutorial ini, Anda akan mampu membangun, mengevaluasi, dan membandingkan model peramalan berkualitas produksi menggunakan ketiga framework tersebut.


    Prasyarat

    • Python 3.9+
    • Pemahaman dasar statistika (rata-rata, variansi, korelasi)
    • Familiaritas dengan pandas dan matplotlib

    Instalasi paket yang diperlukan:

    pip install prophet neuralprophet torch pandas numpy matplotlib scikit-learn
    


    Dasar-Dasar Deret Waktu

    Deret waktu adalah urutan titik data yang diindeks berdasarkan urutan waktu. Sebelum membangun model apa pun, Anda harus memahami komponen-komponen utama yang menyusun sinyal deret waktu.

    Komponen Deret Waktu

    import pandas as pd
    

    import numpy as np

    import matplotlib.pyplot as plt

    Membuat deret waktu sintetis dengan komponen yang diketahui

    np.random.seed(42)

    dates = pd.daterange(start="2020-01-01", periods=730, freq="D")

    tren = np.linspace(50, 150, 730)

    musiman = 20 np.sin(2 np.pi np.arange(730) / 365.25)

    noise = np.random.normal(0, 5, 730)

    y = tren + musiman + noise

    df = pd.DataFrame({"ds": dates, "y": y})

    fig, axes = plt.subplots(4, 1, figsize=(14, 10), sharex=True)

    axes[0].plot(dates, y, color="steelblue")

    axes[0].settitle("Deret Waktu Teramati")

    axes[1].plot(dates, tren, color="darkorange")

    axes[1].settitle("Komponen Tren")

    axes[2].plot(dates, musiman, color="green")

    axes[2].settitle("Komponen Musiman")

    axes[3].plot(dates, noise, color="red", alpha=0.6)

    axes[3].settitle("Noise / Residu")

    plt.tightlayout()

    plt.savefig("dekomposisideretwaktu.png", dpi=150)

    plt.show()

    Stasioneritas

    Deret waktu yang stasioner memiliki properti statistik yang konstan sepanjang waktu. Banyak metode peramalan yang mengasumsikan atau mendapat manfaat dari stasioneritas. Gunakan uji Augmented Dickey-Fuller (ADF) untuk memeriksa:

    from statsmodels.tsa.stattools import adfuller
    
    

    hasil = adfuller(df["y"].values)

    print(f"Statistik ADF: {hasil[0]:.4f}")

    print(f"p-value: {hasil[1]:.4f}")

    if hasil[1] < 0.05:

    print("Deret bersifat stasioner (tolak hipotesis nol).")

    else:

    print("Deret bersifat non-stasioner. Pertimbangkan differencing.")

    Pembagian Data Latih-Uji untuk Deret Waktu

    Jangan pernah menggunakan pembagian acak untuk deret waktu. Selalu bagi secara kronologis:

    tanggalbatas = "2021-07-01"
    

    datalatih = df[df["ds"] < tanggalbatas].copy()

    datauji = df[df["ds"] >= tanggalbatas].copy()

    print(f"Sampel pelatihan: {len(datalatih)}")

    print(f"Sampel pengujian: {len(datauji)}")

    Artikel Terkait

    Tutorial LangChain: Framework Paling Populer untuk Membangun Aplikasi LLM

    Tutorial LangChain: Framework Paling Populer untuk Membangun Aplikasi LLM LangChain adalah framework open-source yang di...

    Tutorial Lengkap Google Gemini API dengan Python: Dari Dasar hingga Mahir

    Tutorial Lengkap Google Gemini API dengan Python: Dari Dasar hingga Mahir Google Gemini API adalah salah satu API AI pal...

    Tutorial LitServe: Framework Serving Model AI yang Cepat dan Mudah

    Tutorial LitServe: Framework Serving Model AI yang Cepat dan Mudah Pendahuluan LitServe adalah framework open-source dar...

    Tutorial ClearML: Platform MLOps Open-Source untuk Experiment Tracking dan Pipeline Automation

    Tutorial ClearML: Platform MLOps Open-Source untuk Experiment Tracking dan Pipeline Automation ClearML adalah platform M...