Skip to content

YigitErogluTr/time_series_analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

📊 Zaman Serisi Satış Analizi ve Aylık Tahmin Aracı

Bu proje, günlük satış verilerinden SARIMA, ETS (Holt-Winters) ve Kuantil Gradient Boosting (ML) yöntemleriyle ay başlarında (MS) özetlenen aylık tahminler üretir.

Küçük bir Tkinter arayüzü ile tarih aralığı ve parametre girişi yapılır, grafikler ve tablolar üretilir, raporlar PDF ve Excel olarak kaydedilir.


🚀 Özellikler

  • Veri okuma (Excel/CSV)

    • order_date (tarih) ve doc_totals (sayısal) sütunlarını kullanır
    • Türkçe sayı biçimi desteklenir (ondalık ,, binlik .)
    • Boş/bozuk satırları temizler
  • Aylık özet / çizim

    • Gerçek günlük seri
    • Ay başlarında box-plot (Lower, Q25, Median, Q75, Upper)
    • 3 farklı modelin medyan tahmin çizgileri
  • Raporlama

    • forecast_report.pdf
      • Sayfa 1: 3 modelin grafik panelleri
      • Sayfa 2: 3 modelin aylık tabloları + yorumlar
    • monthly_forecast_tables.xlsx
      • SARIMA / ETS / ML için ayrı sayfalar
  • Parametre girişi (Popup)

    • Gerçek veri başlangıç/bitiş tarihi
    • Tahmin bitiş tarihi
    • Güven düzeyi alpha (örn. 0.05 ⇒ %95)

⚙️ Sistem Gereksinimleri

  • Python: 3.9 – 3.13
  • Kütüphaneler:
    pandas, numpy, matplotlib, statsmodels,
    scikit-learn, scipy, openpyxl, xlsxwriter
  • Tkinter: Python ile gelir (Linux için: sudo apt-get install python3-tk)

📦 Öneri (sanal ortam):

python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate

pip install -U pip
pip install pandas numpy matplotlib statsmodels scikit-learn scipy openpyxl xlsxwriter

📂 Proje Yapısı
time_series_analysis/
├─ app.py                 # Ana uygulama
├─ data/
│  └─ sales.data.xlsx     # Örnek veri
├─ forecast_report.pdf    # Çıktı PDF
└─ monthly_forecast_tables.xlsx  # Çıktı Excel

📑 Veri Formatı
| order\_date | doc\_totals |
| ----------- | ----------- |
| 2024-08-21  | 458.76      |
| 2024-08-21  | 5.875,53    |
| 2024-08-22  | 12.340      |
| 2024-08-23  | 987,5       |

Aynı güne ait satırlar toplanır → günlük seri oluşturulur
Eksik günler 0 ile doldurulur

▶️ Çalıştırma
Windows (PowerShell)
python .\app.py

macOS/Linux (Terminal)
python app.py

Adımlar:

Uygulama veriyi okur (CSV_PATH içinde tanımlı dosyadan).
Parametre penceresi açılır (başlangıç/bitiş, forecast end, alpha).
Modeller çalışır, grafik ve tablolar oluşturulur.
Çıktılar proje klasörüne kaydedilir:
forecast_report.pdf
monthly_forecast_tables.xlsx

📌 Dosya yolunu kendine göre güncelle:
CSV_PATH = r"C:\Users\user\Desktop\time_series_analysis\data\sales.data.xlsx"

📊 Üretilen Çıktılar

forecast_report.pdf
Sayfa 1: SARIMA, ETS, ML grafik panelleri
Sayfa 2: 3 modelin tabloları + otomatik yorum
monthly_forecast_tables.xlsx
3 sayfa: SARIMA, ETS, ML
Sütunlar: Date, Lower, Q25, Median, Q75, Upper

🔬 Modeller

SARIMA (1,1,1)(1,1,1)_7
Haftalık sezonsallık içerir
ETS (Holt-Winters, add-add, period=7)
Katkısal trend + katkısal sezonsallık
ML (Quantile Gradient Boosting)
Gecikme, hareketli ort/std, DOW, DOM, hafta, ay özellikleri

📝 Son Kullanıcılar İçin Notlar
Veri dosyanızı Excel/CSV olarak hazırlayın (order_date, doc_totals sütunları zorunlu).
Açılan pencerede tarihleri ve alpha değerini girin.
Çıktılar aynı klasöre kaydedilir ve açılabilir.

İpuçları:

Eğer "Tahmin bitiş tarihi son veriden ileri olmalı" hatası alırsanız → daha ileri bir tarih seçin.
Median değeri günlük iş planı için en güvenilir tahmindir.
Lower–Upper aralığı risk analizinde faydalıdır (stok planlama, nakit akışı).

📄 Lisans

Kurumsal iç kullanım için tasarlanmıştır.
Haricî dağıtım yapacaksanız uygun bir lisans dosyası ekleyin.

About

Zaman serisi tahminleme uygulaması - ETS, ARIMA, ML karşılaştırmalı

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages