Supplementary material for the paper "Non-parametric Causal Discovery for EU Allowances Returns Through the Information Imbalance" by C. Salvagnin, V. Del Tatto, M.E. De Giuli, A. Mira, and A. Glielmo.
This repository contains the supplementary material for the paper "Non-parametric Causal Discovery for EU Allowances Returns Through the Information Imbalance" by C. Salvagnin,V. Del Tatto, M.E. De Giuli, A. Mira, and A. Glielmo.
This study examines the financial returns of the European Union Emissions Trading System (EU ETS) using data from January 2013 to 2024. We propose to use a recently introduced non-parametric tool from the physics literature named Differentiable Information Imbalance (DII) to identify variables that are causally related to EU ETS returns. The DII approach is compared with well-known linear approaches based on VAR models and Granger causality.
We find significant overlap among the causal variables identified by both linear and non-linear methods, such as Coal Futures and the IBEX35 index, but also observe important differences. These differences could stem from the limitations of the linear methodology but require further investigation to be fully understood.
The study provides valuable insights for enhancing causal discovery in financial and energy markets, providing potential implications for asset pricing, risk management, and policy decision-making.
Before you begin, ensure you have met the following requirements:
- Python = 3.12.0
- pandas = 1.5.3
- numpy = 1.24.0
- matplotlib = 3.6.3
- seaborn = 0.11.2
- scipy = 1.9.3
- statsmodels = 0.13.5
- pickle = 4.0
- jinja2 = 3.1.4
- scikit-learn = 1.2.0
- jax = 0.4.6
- tqdm = 4.64.0
- optax = 0.1.2
- flax = 0.6.4
-
Clone the repository:
git clone git@github.com:SaveChris/EUACausalDiscoveryDII.git cd EUACausalDiscoveryDII -
Navigate to the project directory:
cd EUACausalDiscoveryDII -
Create a virtual environment:
python3 -m venv venv
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On Unix or MacOS:
source venv/bin/activate
- On Windows:
-
Install the required packages:
pip install -r requirements.txt
This command installs all the necessary packages to run the code specified in 'requirements.txt' file.
- Congratulations! Your project should now be up and running!
Adjust the steps and commands based on your project's specific requirements. If your project involves a different language or tool, you may need to tailor the installation instructions accordingly. Additionally, providing clear and concise instructions with helpful comments can significantly enhance the user experience. If you run into some problems or you have any questions contact me (Cristiano Salvagnin), or Aldo Glielmo.
This work is based on Jupiter notebooks, the user can find, for each section of the paper the corresponding notebook. The user can run the notebook to reproduce the results of the paper.
The SRC section is organized as follows:
- 'Sec1_Introduction.ipynb' contains the code to reproduce the results obtained in Section 1 - Introduction;
- 'Sec2_Data.ipynb contains the code to reproduce the results obtained in Section 2 - Data;
- 'Sec3_Methods.ipynb' contains the code to reproduce the results obtained in Section 3 - Methodology;
- 'Sec4_Empirical_Analysis.ipynb' contains the code to reproduce the results in Section 4 - Empirical Analysis, except the DII results;
- 'DII_codes' is a directory with the codes to reproduce the DII results, provided of its own README file.
- 'A_appendix.ipynb' contains the code to reproduce the results in Appendix;
The repository 'DII_codes' includes a JAX implementation of the DII, contained in the module 'diff_imbalance.py'. The updated version of this code is available in the open-source Python package DADApy.
The Data section is organized as follows:
- 'Dataset_EUA_24_Daily_Returns.xlsx' contains raw financial returns dataset;
- 'EUA_All_Phases_Daily.xlsx' contains dataset used for EUA price dynamics (Fig:1);
- 'IG_DII_E1_returns.p' contains pickle results of the estimated IG through DII;
- 'IGs_toymodel.p' contains pickle results of the estimated IG through DII for the toy model;
- 'quadratic_and_linear_XY_to_Z.p' contains raw dataset for toy model;
- 'weights_DII_E1_returns.p' contains estimated causal coefficients through DII;
- 'weights_toymodel.p' contains the estimated causal coefficients through DII for the toy model.
We welcome contributions to improve EUACausalDiscoveryDII! If you encounter any issues or have suggestions for improvements, please check the existing issues to see if the topic has already been discussed. If not, feel free to contact me (Cristiano Salvagnin) or Aldo Glielmo. You should provide the following information when opening an issue:
- A descriptive title
- Steps to reproduce the issue (if applicable)
- Expected behavior
- Actual behavior
- Environment details (e.g., operating system, Python version)
- Screenshots, if applicable
Thank you for your contributions!
This project is licensed under the Apache License 2.0 - see the License file for details.