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.
-
Veri okuma (Excel/CSV)
order_date
(tarih) vedoc_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)
- 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.