Skip to content

Repository files navigation

Stratégie d'Exploration de Données : ARIMA vs LSTM

Comparaison de deux approches de prévision de séries temporelles, un modèle statistique classique (ARIMA) et un réseau récurrent (LSTM), sur les températures relevées à Rabat.

Projet académique.

Objectif

Confronter une méthode statistique éprouvée à une approche par apprentissage profond sur la même série, afin d'évaluer si la complexité supplémentaire du LSTM se traduit par un gain réel de précision.

Données

Source API Open-Meteo, archive météorologique ouverte
Variable Température à 2 m du sol (temperature_2m)
Localisation Rabat / Témara, Maroc
Période 01/01/2020 → 31/12/2024 (5 années)
Volume brut 43 848 relevés horaires
Prétraitement Agrégation en moyennes journalières (resampling D, Pandas)

Le passage à une résolution journalière réduit le bruit haute fréquence tout en conservant la tendance de fond et le cycle annuel, les deux composantes que les modèles doivent capter.

Approche

  • ARIMA : modèle de référence (baseline). le futur comme combinaison linéaire des valeurs et erreurs passées. Simple, mais rigide face aux irrégularités.
  • LSTM : chronologie transformée en apprentissage supervisé par fenêtres glissantes de 30 jours (lookback). L'enjeu est de vérifier si les portes de mémoire captent des dynamiques (vagues de chaleur, anomalies) qu'ARIMA ne peut structurellement pas prévoir.

Structure

Strategie_Exploration_Donnees/
├── get_weather_data.py         # Collecte des données météo
├── rabat_temperature.csv       # Série temporelle (températures, Rabat)
├── 02_ARIMA_Model.ipynb        # Modèle ARIMA
├── 03_LSTM_Network.ipynb       # Réseau LSTM
├── build_livrable.py           # Génération du livrable HTML
├── Livrable_Seance_1.md
├── Livrable_Seance_2.html
├── chart_timeseries.png        # Série brute
├── chart_monthly.png           # Saisonnalité mensuelle
├── chart_boxplot.png           # Distribution
└── pca_embeddings.png          # Projection PCA

Démarche

  1. Collecte : récupération de la série de températures via get_weather_data.py
  2. Exploration : série brute, saisonnalité mensuelle, distribution (boxplot)
  3. ARIMA : modèle statistique de référence
  4. LSTM : réseau récurrent sur la même série
  5. Comparaison : évaluation des deux modèles sur le même découpage chronologique

Installation

pip install pandas numpy matplotlib seaborn statsmodels scikit-learn tensorflow

Résultats

Note méthodologique

Sur une série temporelle, le découpage entraînement/test doit rester chronologique (shuffle=False) et toute comparaison de modèles doit être rapportée face à une baseline naïve, un modèle de persistance est souvent difficile à battre sur des séries fortement autocorrélées.

Auteur

Amjad AAYD

About

ARIMA vs LSTM for time series forecasting, compared on 43848 hourly temperature readings

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages