A training environment for visualizing and identifying Box-Jenkins models in economic time series analysis.
This project provides tools for generating and analyzing time series models:
- Generate AR, MA, and ARMA processes with customizable parameters
- Visualize ACF/PACF and statistical properties
- Practice Box-Jenkins model identification
- Compare and estimate ARIMA models
Target audience: Economics students, macro research analysts, and finance professionals.
EconoDelta-BoxJenkins-Lab/
├── README.md
├── requirements.txt
├── src/
│ ├── __init__.py
│ └── generator.py # DGP generation classes
└── notebooks/
└── analytics.ipynb # Analysis examples
DGPBuilder: Fluent interface for building model specifications
- Configure AR(p) and MA(q) processes
- Set sample size and error parameters
- Combine AR and MA components
DGPGenerator: Simulates time series from specifications
- Supports arbitrary lag structures
- Reproducible with seed control
DGPSpec: Immutable model specification containing structure, parameters, and metadata
git clone https://github.com/Igor0Pires/Econo-BoxJenkins-lab.git
cd Econo-BoxJenkins-lab
pip install -r requirements.txtGenerate an AR(1) process:
from src import generator as gen
spec = gen.DGPBuilder()\
.with_ar(p=1, ar_params=[0.7])\
.with_size(200)\
.build()
series = gen.DGPGenerator(spec).simulate(seed=42)Generate an ARMA(1,1) process:
spec = gen.DGPBuilder()\
.with_ar(p=1, ar_params=[0.5])\
.with_ma(q=1, ma_params=[0.3])\
.with_size(300)\
.build()
series = gen.DGPGenerator(spec).simulate()Seasonal AR with lags [1, 12]:
spec = gen.DGPBuilder()\
.with_ar(p=[1, 12], ar_params=[0.6, 0.4])\
.with_size(500)\
.build()
series = gen.DGPGenerator(spec).simulate()The project follows the classic three-step approach:
- Identification: ACF/PACF analysis and model order selection
- Estimation: Parameter estimation using MLE with AIC/BIC comparison
- Diagnostic: Residual analysis and model validation
- pandas - Time series manipulation
- numpy - Numerical operations
- matplotlib/seaborn - Visualizations
- statsmodels - ARIMA modeling
- jupyter - Interactive analysis
Developed by Igor Pires 🚀