Back to Portfolio

GDP Prediction Model

Economic Forecasting with Machine Learning

Advanced machine learning model for predicting Gross Domestic Product (GDP) trends using economic indicators. Features interactive web interface for scenario analysis and economic forecasting with statistical validation and comprehensive economic data analysis.

Economic Indicators Analysis

Comprehensive analysis of key economic indicators including inflation rates, unemployment statistics, interest rates, trade balances, and government spending patterns for accurate GDP modeling.

Feature Engineering

Advanced feature creation including lagged variables, moving averages, seasonal adjustments, and economic ratios to capture complex temporal relationships in economic data.

Model Selection

Automated model comparison using cross-validation across multiple algorithms including Random Forest, Gradient Boosting, and Linear Regression to select optimal performance.

Robust Validation

Rigorous validation framework with out-of-sample testing, backtesting on historical data, and statistical significance testing to ensure prediction reliability.

Multi-Country Support

Flexible architecture supporting economic data from different countries and regions, enabling comparative analysis and international economic forecasting.

Scenario Analysis

Interactive scenario modeling capabilities allowing users to simulate different economic conditions and analyze their potential impact on GDP growth.

Technology Stack

Modern data science tools and economic analysis libraries optimized for reliable GDP forecasting and economic modeling.

Python 3.8+

Core programming language

Scikit-Learn

Machine learning algorithms

Pandas

Data manipulation and analysis

NumPy

Numerical computations

Matplotlib/Seaborn

Data visualization

Streamlit

Web application framework

Key Features

Comprehensive features designed for accurate economic forecasting and user-friendly analysis.

📊

Data Integration

Seamless integration with multiple economic data sources including World Bank API, IMF databases, and national statistical offices for comprehensive economic indicators.

🧮

Advanced Analytics

Statistical analysis including correlation analysis, causality testing, and time series decomposition to understand economic relationships and trends.

🎯

Accuracy Metrics

Comprehensive performance evaluation using MAE, RMSE, R-squared, and MAPE metrics with confidence intervals for prediction reliability assessment.

📈

Interactive Visualizations

Dynamic charts and graphs showing historical trends, predictions, feature importance, and scenario comparison with customizable time ranges.

🔄

Real-time Updates

Automated model retraining capabilities with new data integration and performance monitoring to maintain prediction accuracy over time.

📋

Export Capabilities

Comprehensive reporting features with PDF export, CSV data downloads, and detailed analysis reports for professional economic analysis.

Model Performance

Validated performance metrics demonstrating the model's accuracy and reliability in real-world economic forecasting scenarios.

0.89
R² Score
High correlation coefficient indicating strong predictive capability for GDP growth patterns
1.2%
Mean Absolute Error
Low prediction error demonstrating precise GDP growth forecasting accuracy
85%
Direction Accuracy
High accuracy in predicting whether GDP will increase or decrease
12
Economic Indicators
Comprehensive analysis using multiple economic variables for robust predictions

Getting Started

Simple setup process to run the GDP prediction model locally or use the interactive web application.

Quick Setup Instructions
# 1. Clone the repository git clone https://github.com/bcmaymonegalvao/pib_prediction.git cd pib_prediction # 2. Create virtual environment python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 3. Install required packages pip install -r requirements.txt # 4. Run the Streamlit application streamlit run app.py # 5. Or run the training script python train_model.py # 6. Access the live demo (no installation required) # https://pibprediction-interface-bcmg.streamlit.app/

Quick Start

Ready-to-run Streamlit application with pre-trained models and sample economic data for immediate GDP forecasting and analysis.

Customizable

Easily configurable parameters, data sources, and model selection options to adapt the system for different countries and economic contexts.

Documentation

Comprehensive documentation with economic methodology explanation, code examples, and step-by-step tutorials for economists and data scientists.

Applications & Use Cases

Real-world applications of GDP prediction modeling across various sectors and decision-making contexts.

Government Planning

Support policy makers with data-driven economic forecasts for budget planning, fiscal policy decisions, and strategic economic planning initiatives.

Investment Analysis

Assist financial institutions and investors with market timing, risk assessment, and portfolio allocation decisions based on economic growth predictions.

Academic Research

Enable economists and researchers to test economic theories, validate models, and conduct empirical studies on economic growth determinants.

Business Strategy

Help corporations make informed strategic decisions about market entry, expansion plans, and resource allocation based on economic forecasts.

Project Overview

Comprehensive economic forecasting solution combining traditional econometric methods with modern machine learning techniques for accurate GDP prediction and economic trend analysis.

Economic Modeling

Advanced statistical models incorporating multiple economic indicators including inflation, unemployment, trade balance, and fiscal policy metrics for comprehensive GDP analysis.

Machine Learning

Leverages ensemble methods, time series analysis, and regression techniques to capture complex economic relationships and improve prediction accuracy.

Multi-Country Support

Designed to work with economic data from multiple countries and regions, allowing for comparative analysis and cross-national economic forecasting.

Interactive Interface

User-friendly Streamlit web application with real-time predictions, scenario analysis, and comprehensive data visualizations for economic insights.

Methodology & Approach

The prediction pipeline follows established econometric principles combined with modern data science techniques for robust and reliable economic forecasting.

1

Data Collection

Comprehensive gathering of economic indicators from reliable sources including World Bank, IMF, and national statistical agencies with proper data validation and cleaning.

2

Feature Engineering

Creation of derived economic indicators, lag features, seasonal adjustments, and transformation of raw economic data into predictive features.

3

Model Training

Implementation of multiple algorithms including Random Forest, Gradient Boosting, and Linear Regression with cross-validation and hyperparameter optimization.

4

Validation

Rigorous model validation using out-of-sample testing, backtesting on historical data, and statistical significance testing of predictions.

5

Deployment

Interactive web application deployment with real-time prediction capabilities, scenario modeling, and comprehensive result visualization.

6

Monitoring

Continuous model performance monitoring, prediction accuracy tracking, and automated retraining capabilities for maintained reliability.

Implementation Details

Core implementation showcasing the machine learning pipeline for GDP prediction with feature engineering and model selection.

GDP Prediction Pipeline
# Import required libraries import pandas as pd import numpy as np from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor from sklearn.linear_model import LinearRegression import train_test_split, cross_val_score from sklearn.metrics import mean_absolute_error, r2_score from sklearn.preprocessing import StandardScaler # Load and prepare economic data def load_economic_data(file_path): """Load and preprocess economic indicators data""" data = pd.read_csv(file_path) # Feature engineering data['inflation_lag'] = data['inflation'].shift(1) data['unemployment_ma'] = data['unemployment'].rolling(4).mean() data[极span class="string">'trade_balance_pct'] = data['exports'] / data['imports'] * 100 return data.dropna() # GDP Prediction Model class GDPPredictor: 极f __init__(self): self.models = { 'rf': RandomForestRegressor(n_estimators=100, random_state=42), 'gb': GradientBoostingRegressor(n_estimators=100, random_state=42), 'lr': LinearRegression() } self.scaler = StandardScaler() self.best_model = None def train(self, X, y): """Train multiple models and select the best performer""" X_scaled = self.scaler.fit_transform(X) X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2) best_score = -np.inf for name, model in self.models.items(): # Cross-validation cv_scores = cross_val_score(model, X_train, y_train, cv=5, scoring='r2') mean_score = cv_scores.mean() if mean_score > best_score: best_score = mean_score self.best_model = model # Train best model self.best_model.fit(X_train, y_train) # Evaluate performance y_pred = self.best_model.predict(X_test) mae = mean_absolute_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print(f"Best model: {type(self.best_model).__name__}") print(f"MAE: {mae:.4f}") print(f"R² Score: {r2:.4f}") return mae, r2 def predict(self, X): """Make predictions using the trained model""" X_scaled = self.scaler.transform(X) return self.best_model.predict(X_scaled) # Example usage if __name__ == "__main__": # Load data data = load_economic_data("economic_data.csv") # Prepare features and target features = ['inflation', 'unemployment', 'inflation_lag', 'unemployment_ma', 'trade_balance_pct'] X = data[features] y = data['gdp_growth'] # Train model predictor = GDPPredictor() mae, r2 = predictor.train(X, y) # Make predictions latest_data = X.iloc[-1:].copy() prediction = predictor.predict(latest_data) print(f"Predicted GDP growth: {prediction[0]:.2f}%")