Ứng dụng Streamlit này tập trung vào một trải nghiệm demo trực quan duy nhất: chọn dữ liệu, quan sát chuỗi, thử differencing, xem ACF/PACF, fit ARIMA và đọc forecast ngay trong cùng một trang.
python -m venv .venv
source .venv/Scripts/activate
pip install -r requirements.txt
streamlit run app.pypython -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
streamlit run app.pyỨng dụng hiện đi theo đúng flow này:
- Chọn dữ liệu:
- dùng sample dataset có sẵn trong
data/sample_series.csv - hoặc upload CSV riêng
- dùng sample dataset có sẵn trong
- Quan sát chuỗi gốc
- Thử differencing bậc 1 hoặc bậc 2
- Xem ACF/PACF để gợi ý
qvàpban đầu - Gợi ý
dbằng stationarity checks rồi vẫn cho phép chỉnh tay - Chọn
p, d, qvà fit ARIMA - Xem
Actual vs Forecast, residual diagnostics, forecast tương lai,MAEvàRMSEngay cuối trang
CSV nên có ít nhất:
- một cột thời gian có thể convert sang
datetime - một cột giá trị có thể convert sang số
App sẽ tự:
- convert cột thời gian sang
datetime - sort tăng dần theo thời gian
- làm sạch dữ liệu không hợp lệ ở các bước cần thiết
.
├── app.py
├── page/
│ └── 3_ARIMA_Lab.py
├── src/
│ ├── app_state.py
│ ├── data_utils.py
│ ├── diagnostics.py
│ ├── modeling.py
│ ├── plotting.py
│ └── stationarity.py
├── data/
│ └── sample_series.csv
├── requirements.txt
└── PLAN.md
- App không dùng
auto_arima. - Kết quả forecast được giữ trong
st.session_stateđể vẫn hiển thị ổn định sau khi bấm nút chạy mô hình. - Logic ARIMA cốt lõi được giữ trong
src/modeling.py. - Sample dataset hiện đủ dài để demo đầy đủ flow ARIMA.
- Future forecast được tạo sau khi refit mô hình trên toàn bộ dữ liệu.