Wavelet-based Quantile Transfer Entropy Analysis for Financial Time Series
Advanced tools for analyzing market interconnectedness, financial contagion, and risk spillover effects across different time scales and market conditions.
π Why WaveQTE?
WaveQTE bridges the gap between theoretical finance and practical analysis by combining wavelet decomposition with quantile transfer entropy to reveal hidden patterns in financial markets. Whether youβre a researcher, practitioner, or policymaker, WaveQTE provides the tools you need to understand:
- π Market Interconnectedness - How markets influence each other across time scales
- π Financial Contagion - How crises spread between markets and regions
- π Risk Spillovers - Directional risk transmission patterns
- π Network Dynamics - Complex relationships in financial systems
β¨ Key Features
π Multi-source Data Support
- Built-in financial dataset with 10 global market indices
- Yahoo Finance integration for real-time data
- Custom data import capabilities
- Automated data quality checks
γ°οΈ Wavelet Decomposition
- MODWT-based analysis across multiple time scales
- Robust handling of non-stationary financial data
- Scale-specific analysis of market dynamics
- Advanced variance decomposition
π Quantile Transfer Entropy
- Information flow measurement across quantiles
- Tail-risk and extreme event analysis
- Directional spillover detection
- Bootstrap significance testing
πΈοΈ Network Analysis
- QTE-based network construction
- Comprehensive network metrics
- Community detection algorithms
- Multi-scale network visualization
π¦ Installation
# Install from GitHub (recommended)
if (!require("devtools")) install.packages("devtools")
devtools::install_github("avishekb9/WaveQTE")
# Load the package
library(WaveQTE)
Dependencies: WaveQTE automatically installs required packages including quantmod
, waveslim
, quantreg
, igraph
, ggplot2
, and others.
π Quick Start
1οΈβ£ Load Data
# Use built-in dataset (recommended for testing)
data <- get_stock_data(data_source = "builtin",
indices = c("GSPC", "N225", "FTSE"))
# Or fetch live data from Yahoo Finance
# data <- get_stock_data(c("AAPL", "MSFT", "JPM"),
# start_date = "2020-01-01",
# end_date = "2023-12-31")
2οΈβ£ Process Returns
processed_data <- process_returns(data)
summary_stats <- calculate_summary_stats(processed_data)
print_summary_stats(summary_stats)
3οΈβ£ Wavelet Decomposition
# Decompose time series into multiple scales
wave_decomp <- lapply(1:ncol(processed_data), function(i) {
wavelet_decompose(as.numeric(processed_data[1:256, i]), n.levels = 4)
})
# Analyze variance contributions across scales
var_analysis <- lapply(wave_decomp, analyze_wavelet_variance)
print_wavelet_summary(wave_decomp[[1]])
4οΈβ£ Quantile Transfer Entropy
# Calculate multiscale QTE
tau_levels <- c(0.1, 0.25, 0.5, 0.75, 0.9)
qte_results <- calculate_multiscale_qte(
wave_decomp[[1]],
wave_decomp[[2]],
tau_levels
)
# Calculate multiscale QTE across quantiles
tau_levels <- c(0.1, 0.25, 0.5, 0.75, 0.9)
qte_results <- calculate_multiscale_qte(
wave_decomp[[1]], wave_decomp[[2]], tau_levels
)
# Create beautiful heatmap visualization
plot_qte_heatmap(qte_results, title = "Multiscale QTE Analysis")
5οΈβ£ Network Analysis
# Build QTE-based financial network
network <- create_qte_network(processed_data[1:256, ],
wave_decomp, scale = 1, tau = 0.5)
# Compute comprehensive network metrics
metrics <- calculate_network_metrics(network)
print(paste("Network density:", round(metrics$density, 3)))
# Create interactive network visualization
plot_enhanced_network(network, scale = 1, tau = 0.5)
6οΈβ£ Financial Contagion Analysis
# Analyze contagion between developed and emerging markets
dm_data <- get_stock_data(data_source = "builtin",
indices = c("GSPC", "N225", "FTSE"))
em_data <- get_stock_data(data_source = "builtin",
indices = c("SSE", "BSE", "HSI"))
# Measure contagion effects
contagion_results <- calculate_contagion_index(dm_data[1:256, ],
em_data[1:256, ])
# Identify crisis periods automatically
crisis_periods <- identify_crisis_periods(cbind(dm_data, em_data))
π Learning Resources
π Comprehensive Vignettes
- Basic Usage - Get started with core functionality
-
Advanced Features - Explore sophisticated analysis techniques
- Contagion Analysis - Specialized crisis and spillover analysis
π Data Sources
WaveQTE supports multiple data sources for maximum flexibility:
Source | Description | Use Case |
---|---|---|
Built-in | 10 global market indices (2015-2023) | Testing and examples |
Yahoo Finance | Real-time market data via quantmod | Live analysis |
Custom CSV | Your own data files | Specialized datasets |
Data Frames | Pre-loaded R objects | Custom workflows |
# Examples of different data sources
builtin_data <- get_stock_data(data_source = "builtin")
yahoo_data <- get_stock_data(c("AAPL", "GOOGL"), "2020-01-01", "2023-12-31")
custom_data <- get_stock_data(data_source = "file", file_path = "my_data.csv")
π― Use Cases
ποΈ Academic Research
- Publish-ready analysis for finance journals
- Robust statistical methods with bootstrap testing
- Comprehensive documentation and references
π’ Risk Management
- Real-time spillover monitoring
- Crisis early warning systems
- Portfolio diversification analysis
ποΈ Package Architecture
WaveQTE/
βββ π R/ # Core functionality
β βββ π§ data_preparation.R # Data import & processing
β βββ γ°οΈ wavelet_decomposition.R # Multi-scale analysis
β βββ π quantile_transfer_entropy.R # QTE calculations
β βββ πΈοΈ network_analysis.R # Network construction
β βββ π contagion_analysis.R # Crisis analysis
β βββ π visualization.R # Rich visualizations
β βββ π οΈ utils.R # Helper functions
βββ π vignettes/ # Comprehensive tutorials
βββ π§ͺ tests/ # Extensive test suite
βββ π man/ # Complete documentation
π Real-World Applications
Application | Description | Benefit |
---|---|---|
ποΈ Academic Research | Publish-ready analysis for finance journals | Rigorous methodology with statistical testing |
π’ Risk Management | Real-time spillover monitoring | Early warning systems for portfolio protection |
π Policy Analysis | Systemic risk assessment | Evidence-based financial stability decisions |
πΌ Investment Strategy | Market interconnectedness insights | Enhanced portfolio diversification |
π Crisis Analysis | Cross-border contagion detection | Understanding global financial linkages |
π Performance & Quality
- β 109 passing tests with comprehensive coverage
- β CRAN-compliant package structure
- β Optimized algorithms for large datasets
- β Bootstrap validation for statistical robustness
- β Extensive documentation with real-world examples
π€ Contributing
We welcome contributions! Whether youβre fixing bugs, adding features, or improving documentation:
- π΄ Fork the repository
- π± Create a feature branch
- β¨ Make your changes
- π§ͺ Run tests (
devtools::test()
) - π Submit a pull request
See CONTRIBUTING.md for detailed guidelines.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Citation
If you use WaveQTE in your research, please cite:
@misc{WaveQTE2024,
author = {Avishek Bhandari},
title = {WaveQTE: Wavelet-based Quantile Transfer Entropy Analysis for Financial Time Series},
year = {2024},
publisher = {GitHub},
url = {https://github.com/avishekb9/WaveQTE},
note = {R package version 0.1.0}
}
π¬ Support & Community
- π Issues: GitHub Issues
- π§ Contact: bavisek@gmail.com
- π Documentation: Package Website
π Acknowledgments
WaveQTE is built on the shoulders of giants:
- R Core Team - The R statistical computing environment
-
waveslim package - Wavelet analysis functionality
- igraph package - Network analysis capabilities
- ggplot2 package - Beautiful and flexible visualizations
- quantmod package - Financial data integration
β Star this repository if WaveQTE helps your research! β
Get Started β’ Documentation β’ Examples β’ GitHub