FRED Economic Data Analysis Tool
A comprehensive Python tool for collecting, analyzing, and visualizing Federal Reserve Economic Data (FRED) using the FRED API.
Features
- Data Collection: Fetch economic indicators from FRED API
- Data Analysis: Generate summary statistics and insights
- Visualization: Create time series plots and charts
- Data Export: Save data to CSV format
- Flexible Configuration: Easy customization of indicators and date ranges
Setup
1. Install Dependencies
pip install -r requirements.txt
2. API Key Configuration
- Get your FRED API key from FRED API
- Copy
.env.exampleto.env:cp .env.example .env - Edit
.envand add your API key:FRED_API_KEY=your_actual_api_key_here
3. Project Structure
FRED_ML/
βββ config/ # Configuration settings
β βββ settings.py # Environment variables and settings
β βββ pipeline.yaml # Pipeline configuration
βββ src/ # Source code
β βββ core/ # Core functionality
β βββ analysis/ # Analysis modules
β βββ utils/ # Utility functions
β βββ visualization/ # Visualization modules
βββ scripts/ # Executable scripts
βββ tests/ # Test files
βββ data/ # Data directories
β βββ raw/ # Raw data
β βββ processed/ # Processed data
β βββ exports/ # Exported files
βββ requirements.txt # Python dependencies
βββ .env.example # Environment variables template
βββ README.md # This file
Usage
Basic Usage
Run the EDA script to perform exploratory data analysis:
python scripts/run_eda.py
Or run the advanced analytics:
python scripts/run_advanced_analytics.py
This will:
- Fetch data for key economic indicators (GDP, Unemployment Rate, CPI, Federal Funds Rate, 10-Year Treasury Rate)
- Generate summary statistics
- Create visualizations
- Save data to CSV files
Custom Analysis
You can customize the analysis by importing the modules:
from src.core.fred_client import FREDDataCollectorV2
from src.analysis.advanced_analytics import AdvancedAnalytics
# Initialize collector
collector = FREDDataCollectorV2()
# Custom series and date range
custom_series = ['GDP', 'UNRATE', 'CPIAUCSL']
start_date = '2020-01-01'
end_date = '2024-01-01'
# Run analysis
df, summary = collector.run_analysis(
series_ids=custom_series,
start_date=start_date,
end_date=end_date
)
Available Economic Indicators
The tool includes these common economic indicators:
| Series ID | Description |
|---|---|
| GDP | Gross Domestic Product |
| UNRATE | Unemployment Rate |
| CPIAUCSL | Consumer Price Index |
| FEDFUNDS | Federal Funds Rate |
| DGS10 | 10-Year Treasury Rate |
| DEXUSEU | US/Euro Exchange Rate |
| PAYEMS | Total Nonfarm Payrolls |
| INDPRO | Industrial Production |
| M2SL | M2 Money Stock |
| PCE | Personal Consumption Expenditures |
Output Files
Data Files
- CSV files saved in the
data/directory - Timestamped filenames (e.g.,
fred_economic_data_20241201_143022.csv)
Visualization Files
- PNG plots saved in the
plots/directory - High-resolution charts with economic indicator time series
API Rate Limits
The FRED API has rate limits:
- 120 requests per minute
- 1000 requests per day
The tool includes error handling for rate limit issues.
Configuration
Edit config/settings.py to customize:
- Default date ranges
- Output directories
- Default indicators
The API key is now managed through environment variables (see Setup section above).
Dependencies
fredapi: FRED API clientpandas: Data manipulationnumpy: Numerical computingmatplotlib: Plottingseaborn: Statistical visualizationjupyter: Interactive notebooks (optional)
Error Handling
The tool includes comprehensive error handling for:
- API connection issues
- Invalid series IDs
- Rate limit exceeded
- Data format errors
Contributing
To add new features:
- Extend the
FREDDataCollectorclass - Add new methods for specific analysis
- Update the configuration as needed
License
This project is for educational and research purposes. Please respect FRED API terms of service.
Support
For issues with the FRED API, visit: https://fred.stlouisfed.org/docs/api/