# Copulogram
This package is provides a new data visualisation tool to explore multivariate datasets developped with V.Chabridon.
A *copulogram* is an innovative plot as it decomposes a mutivariate dataset between the effects of the marginals and those of the dependence between features. To do so, it represents the marginals with univariate kernel density estimation plots or histograms (diagonal), and the dependence structure with scatter plots in the ranked space (upper triangle). On the bottom triangle the scatter plots are set in the physical space, gathering the effects of the marginals and the dependencies. Since the dependence structure is theoretically modeled by an underlying copula, this plot is called *copulogram*, generalizing the well-known ``correlogram'' to nonlinear dependencies. It gives a synthetic and empirical decomposition of the dataset.
## Copulogram of a wind-wave dataset
<img src="examples/figures/wind_waves_woutput.jpg" alt="Copulogram of wind-waves dataset" width="600"/>
## Installation
The following commands install the current version of the copulogram package.
```
~$ pip install copulogram
```
## Example on iris dataset
Using the famous [iris dataset](https://en.wikipedia.org/wiki/Iris_flower_data_set), let us plot copulograms with different settings:
```
>>> import seaborn as sns
>>> import copulogram as cp
>>> data = sns.load_dataset('iris')
>>> copulogram = cp.Copulogram(data)
>>> copulogram.draw()
```
<img src="examples/figures/iris1.jpg" alt="Copulogram of iris dataset" width="600"/>
```
>>> copulogram.draw(alpha=0.8, hue='species', kde_on_marginals=False)
```
<img src="examples/figures/iris2.jpg" alt="Copulogram of iris dataset" width="600"/>
```
>>> copulogram.draw(hue='species', quantile_contour_levels=[0.2, 0.4, 0.6, 0.8])
```
<img src="examples/figures/iris_contours.jpg" alt="Copulogram of iris dataset" width="600"/>
## References
- Empirical Bernstein copula: Sancetta, A., & Satchell, S. (2004). The Bernstein Copula and Its Applications to Modeling and Approximations of Multivariate Distributions. Econometric Theory, 20(3), 535–562.
- Nonparametric copula estimation: Nagler, T., Schellhase, C. & Czado, C. (2017). Nonparametric estimation of simplified vine copula models: comparison of methods. Dependence Modeling, 5(1), 99-120.
- OpenTURNS: Baudin, M., Lebrun, R., Iooss, B., Popelin, A.L. (2017). OpenTURNS: An Industrial Software for Uncertainty Quantification in Simulation.
- Wind-waves environmental dataset: The data was generated by a
numerical model from ANEMOC (Digital Atlas of Ocean
and Coastal Sea States, see http://anemoc.cetmef.developpement-durable.gouv.fr/)
Raw data
{
"_id": null,
"home_page": "https://github.com/efekhari27/copulogram",
"name": "copulogram",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "OpenTURNS,Copula",
"author": "Elias Fekhari, Vincent Chabridon",
"author_email": "elias.fekhari@edf.fr",
"download_url": "https://files.pythonhosted.org/packages/38/a5/52ebd0855e758785791175283dd8b75dd060acd562a7be15b0d662bcc9b1/copulogram-0.0.3.tar.gz",
"platform": null,
"description": "# Copulogram\n\nThis package is provides a new data visualisation tool to explore multivariate datasets developped with V.Chabridon. \n\nA *copulogram* is an innovative plot as it decomposes a mutivariate dataset between the effects of the marginals and those of the dependence between features. To do so, it represents the marginals with univariate kernel density estimation plots or histograms (diagonal), and the dependence structure with scatter plots in the ranked space (upper triangle). On the bottom triangle the scatter plots are set in the physical space, gathering the effects of the marginals and the dependencies. Since the dependence structure is theoretically modeled by an underlying copula, this plot is called *copulogram*, generalizing the well-known ``correlogram'' to nonlinear dependencies. It gives a synthetic and empirical decomposition of the dataset.\n\n\n\n## Copulogram of a wind-wave dataset\n\n<img src=\"examples/figures/wind_waves_woutput.jpg\" alt=\"Copulogram of wind-waves dataset\" width=\"600\"/>\n\n\n## Installation \n\nThe following commands install the current version of the copulogram package.\n```\n~$ pip install copulogram\n```\n\n## Example on iris dataset\n\nUsing the famous [iris dataset](https://en.wikipedia.org/wiki/Iris_flower_data_set), let us plot copulograms with different settings: \n\n\n```\n>>> import seaborn as sns\n>>> import copulogram as cp\n\n>>> data = sns.load_dataset('iris')\n>>> copulogram = cp.Copulogram(data)\n>>> copulogram.draw()\n```\n\n<img src=\"examples/figures/iris1.jpg\" alt=\"Copulogram of iris dataset\" width=\"600\"/>\n\n```\n>>> copulogram.draw(alpha=0.8, hue='species', kde_on_marginals=False)\n```\n\n<img src=\"examples/figures/iris2.jpg\" alt=\"Copulogram of iris dataset\" width=\"600\"/>\n\n```\n>>> copulogram.draw(hue='species', quantile_contour_levels=[0.2, 0.4, 0.6, 0.8])\n```\n\n<img src=\"examples/figures/iris_contours.jpg\" alt=\"Copulogram of iris dataset\" width=\"600\"/>\n\n## References \n\n- Empirical Bernstein copula: Sancetta, A., & Satchell, S. (2004). The Bernstein Copula and Its Applications to Modeling and Approximations of Multivariate Distributions. Econometric Theory, 20(3), 535\u2013562. \n\n- Nonparametric copula estimation: Nagler, T., Schellhase, C. & Czado, C. (2017). Nonparametric estimation of simplified vine copula models: comparison of methods. Dependence Modeling, 5(1), 99-120.\n\n- OpenTURNS: Baudin, M., Lebrun, R., Iooss, B., Popelin, A.L. (2017). OpenTURNS: An Industrial Software for Uncertainty Quantification in Simulation.\n\n- Wind-waves environmental dataset: The data was generated by a \nnumerical model from ANEMOC (Digital Atlas of Ocean\nand Coastal Sea States, see http://anemoc.cetmef.developpement-durable.gouv.fr/)\n",
"bugtrack_url": null,
"license": "LGPLv3+",
"summary": "Data visualization for multivariate datasets with a nonlinear dependence structure",
"version": "0.0.3",
"project_urls": {
"Homepage": "https://github.com/efekhari27/copulogram"
},
"split_keywords": [
"openturns",
"copula"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fa240797ebac0660f3e8e48fee35d07cf3dfcf6dbb955a2b1413a8bcd9e15abb",
"md5": "4fd7440ec8d2db13a60426a9c0d4b6fc",
"sha256": "f604aa09cb3af4bc6ebed76e57416ea4bb38dd5eaec073b8e32240bab9d0dd91"
},
"downloads": -1,
"filename": "copulogram-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4fd7440ec8d2db13a60426a9c0d4b6fc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 16984,
"upload_time": "2023-07-30T13:45:18",
"upload_time_iso_8601": "2023-07-30T13:45:18.330765Z",
"url": "https://files.pythonhosted.org/packages/fa/24/0797ebac0660f3e8e48fee35d07cf3dfcf6dbb955a2b1413a8bcd9e15abb/copulogram-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "38a552ebd0855e758785791175283dd8b75dd060acd562a7be15b0d662bcc9b1",
"md5": "179b7474229d59c568d0b5c4d9724ebb",
"sha256": "d54b54c1692560ce7ae35537102322c8cab55247a2afa6da3656fb310522141f"
},
"downloads": -1,
"filename": "copulogram-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "179b7474229d59c568d0b5c4d9724ebb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16608,
"upload_time": "2023-07-30T13:45:20",
"upload_time_iso_8601": "2023-07-30T13:45:20.146536Z",
"url": "https://files.pythonhosted.org/packages/38/a5/52ebd0855e758785791175283dd8b75dd060acd562a7be15b0d662bcc9b1/copulogram-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-30 13:45:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "efekhari27",
"github_project": "copulogram",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "copulogram"
}