0% found this document useful (0 votes)
7 views

Untitled7.ipynb - Colab

The document outlines the installation process for various Python packages in a Google Colab environment, including numpy, pandas, catboost, shap, linearmodels, plotly, and seaborn. It details the installation attempts, dependency conflicts, and the need to restart the runtime after package updates. The user also attempts to reinstall compatible versions of numpy and pandas to resolve compatibility issues with other installed packages.

Uploaded by

obelbal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Untitled7.ipynb - Colab

The document outlines the installation process for various Python packages in a Google Colab environment, including numpy, pandas, catboost, shap, linearmodels, plotly, and seaborn. It details the installation attempts, dependency conflicts, and the need to restart the runtime after package updates. The user also attempts to reinstall compatible versions of numpy and pandas to resolve compatibility issues with other installed packages.

Uploaded by

obelbal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

09/04/2025 01:30 Untitled7.

ipynb - Colab

!pip install --upgrade --force-reinstall numpy pandas


!pip install catboost shap linearmodels plotly seaborn

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 1/28
09/04/2025 01:30 Untitled7.ipynb - Colab

Collecting numpy
Downloading numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.0/62.0 kB 1.1 MB/s eta 0:00:00
Collecting pandas
Downloading pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.9/89.9 kB 3.0 MB/s eta 0:00:00
Collecting python-dateutil>=2.8.2 (from pandas)
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting pytz>=2020.1 (from pandas)
Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.7 (from pandas)
Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas)
Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Downloading numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 63.8 MB/s eta 0:00:00
Downloading pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.1/13.1 MB 64.2 MB/s eta 0:00:00
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 11.2 MB/s eta 0:00:00
Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 509.2/509.2 kB 23.9 MB/s eta 0:00:00
Downloading tzdata-2025.2-py2.py3-none-any.whl (347 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 347.8/347.8 kB 17.3 MB/s eta 0:00:00
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: pytz, tzdata, six, numpy, python-dateutil, pandas
Attempting uninstall: pytz
Found existing installation: pytz 2025.2
Uninstalling pytz-2025.2:
Successfully uninstalled pytz-2025.2
Attempting uninstall: tzdata
Found existing installation: tzdata 2025.2
Uninstalling tzdata-2025.2:
Successfully uninstalled tzdata-2025.2
Attempting uninstall: six
Found existing installation: six 1.17.0
Uninstalling six-1.17.0:
Successfully uninstalled six-1.17.0
Attempting uninstall: numpy
Found existing installation: numpy 2.0.2
Uninstalling numpy-2.0.2:
Successfully uninstalled numpy 2 0 2
https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 2/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Successfully uninstalled numpy-2.0.2
Attempting uninstall: python-dateutil
Found existing installation: python-dateutil 2.8.2
Uninstalling python-dateutil-2.8.2:
Successfully uninstalled python-dateutil-2.8.2
Attempting uninstall: pandas
Found existing installation: pandas 2.2.2
Uninstalling pandas-2.2.2:
Successfully uninstalled pandas-2.2.2
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the sou
google-colab 1.0.0 requires pandas==2.2.2, but you have pandas 2.2.3 which is incompatible.
numba 0.60.0 requires numpy<2.1,>=1.22, but you have numpy 2.2.4 which is incompatible.
tensorflow 2.18.0 requires numpy<2.1.0,>=1.26.0, but you have numpy 2.2.4 which is incompatible.
Successfully installed numpy-2.2.4 pandas-2.2.3 python-dateutil-2.9.0.post0 pytz-2025.2 six-1.17.0 tzdata-2025.2
WARNING: The following packages were previously imported in this runtime:
[dateutil,six]
You must restart the runtime in order to use newly installed versions.

RESTART SESSION

Collecting catboost
Downloading catboost-1.2.7-cp311-cp311-manylinux2014_x86_64.whl.metadata (1.2 kB)
Requirement already satisfied: shap in /usr/local/lib/python3.11/dist-packages (0.47.1)
Collecting linearmodels
Downloading linearmodels-6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.9 kB)
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (5.24.1)
Requirement already satisfied: seaborn in /usr/local/lib/python3.11/dist-packages (0.13.2)
Requirement already satisfied: graphviz in /usr/local/lib/python3.11/dist-packages (from catboost) (0.20.3)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (from catboost) (3.10.0)
Collecting numpy<2.0,>=1.16.0 (from catboost)
Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 2.3 MB/s eta 0:00:00
Requirement already satisfied: pandas>=0.24 in /usr/local/lib/python3.11/dist-packages (from catboost) (2.2.3)
Requirement already satisfied: scipy in /usr/local/lib/python3.11/dist-packages (from catboost) (1.14.1)
Requirement already satisfied: six in /usr/local/lib/python3.11/dist-packages (from catboost) (1.17.0)
Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (from shap) (1.6.1)
Requirement already satisfied: tqdm>=4.27.0 in /usr/local/lib/python3.11/dist-packages (from shap) (4.67.1)
Requirement already satisfied: packaging>20.9 in /usr/local/lib/python3.11/dist-packages (from shap) (24.2)
Requirement already satisfied: slicer==0.0.8 in /usr/local/lib/python3.11/dist-packages (from shap) (0.0.8)
Requirement already satisfied: numba>=0.54 in /usr/local/lib/python3.11/dist-packages (from shap) (0.60.0)
Requirement already satisfied: cloudpickle in /usr/local/lib/python3.11/dist-packages (from shap) (3.1.1)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.11/dist-packages (from shap) (4.13.1)
Requirement already satisfied: statsmodels>=0.13.0 in /usr/local/lib/python3.11/dist-packages (from linearmodels) (0.14.4)
https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 3/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Requirement already satisfied: statsmodels> 0.13.0 in /usr/local/lib/python3.11/dist packages (from linearmodels) (0.14.4)
Collecting mypy-extensions>=0.4 (from linearmodels)
Downloading mypy_extensions-1.0.0-py3-none-any.whl.metadata (1.1 kB)
Requirement already satisfied: Cython>=3.0.10 in /usr/local/lib/python3.11/dist-packages (from linearmodels) (3.0.12)
Collecting pyhdfe>=0.1 (from linearmodels)
Downloading pyhdfe-0.2.0-py3-none-any.whl.metadata (4.0 kB)
Collecting formulaic>=1.0.0 (from linearmodels)
Downloading formulaic-1.1.1-py3-none-any.whl.metadata (6.9 kB)
Collecting setuptools-scm<9.0.0,>=8.0.0 (from setuptools-scm[toml]<9.0.0,>=8.0.0->linearmodels)
Downloading setuptools_scm-8.2.0-py3-none-any.whl.metadata (6.8 kB)
Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from plotly) (9.1.2)
Collecting interface-meta>=1.2.0 (from formulaic>=1.0.0->linearmodels)
Downloading interface_meta-1.3.0-py3-none-any.whl.metadata (6.7 kB)
Requirement already satisfied: wrapt>=1.0 in /usr/local/lib/python3.11/dist-packages (from formulaic>=1.0.0->linearmodels) (1.17.2)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (1.3.1)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (4.57.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (1.4.8)
Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (11.1.0)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (3.2.3)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (2.9.0.po
Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.11/dist-packages (from numba>=0.54->shap) (0.43
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=0.24->catboost) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=0.24->catboost) (2025.2)
Requirement already satisfied: setuptools>=61 in /usr/local/lib/python3.11/dist-packages (from setuptools-scm<9.0.0,>=8.0.0->setupto
Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.11/dist-packages (from statsmodels>=0.13.0->linearmodels) (1.0
Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->shap) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->shap) (3.6.0)
Downloading catboost-1.2.7-cp311-cp311-manylinux2014_x86_64.whl (98.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━ 84.8/98.7 MB 71.9 MB/s eta 0:00:01
ERROR: Operation cancelled by user
^C

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 4/28
09/04/2025 01:30 Untitled7.ipynb - Colab

# Réinstaller des versions compatibles avec Colab


!pip install numpy==1.26.4 pandas==2.2.2
!pip install catboost shap linearmodels plotly seaborn --upgrade
Requirement already satisfied: pandas>=0.24 in /usr/local/lib/python3.11/dist-packages (from catboost) (2.2.2)
Requirement already satisfied: scipy in /usr/local/lib/python3.11/dist-packages (from catboost) (1.14.1)

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 5/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->shap) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->shap) (3.6.0)
Downloading catboost-1.2.7-cp311-cp311-manylinux2014_x86_64.whl (98.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.7/98.7 MB 8.0 MB/s eta 0:00:00
Downloading linearmodels-6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 49.5 MB/s eta 0:00:00
Downloading plotly-6.0.1-py3-none-any.whl (14.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.8/14.8 MB 86.1 MB/s eta 0:00:00
Downloading formulaic-1.1.1-py3-none-any.whl (115 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 115.7/115.7 kB 7.9 MB/s eta 0:00:00
Downloading mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)
Downloading pyhdfe-0.2.0-py3-none-any.whl (19 kB)
Downloading setuptools_scm-8.2.0-py3-none-any.whl (43 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.9/43.9 kB 2.7 MB/s eta 0:00:00
Downloading interface_meta-1.3.0-py3-none-any.whl (14 kB)
Installing collected packages: setuptools-scm, plotly, mypy-extensions, interface-meta, pyhdfe, formulaic, catboost, linearmodels
Attempting uninstall: plotly
Found existing installation: plotly 5.24.1
Uninstalling plotly-5.24.1:
Successfully uninstalled plotly-5.24.1
Successfully installed catboost-1.2.7 formulaic-1.1.1 interface-meta-1.3.0 linearmodels-6.1 mypy-extensions-1.0.0 plotly-6.0.1 py

import pandas as pd
import numpy as np
import shap
import catboost
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.inspection import permutation_importance
from sklearn import preprocessing
import plotly_express as px
import plotly.io as io
io.renderers.default = 'colab'
import seaborn as sns
import statsmodels.api as sm
import statsmodels.formula.api as smf
from statsmodels.tools.sm_exceptions import ConvergenceWarning
from sklearn.preprocessing import MinMaxScaler
import re
https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 6/28
09/04/2025 01:30 Untitled7.ipynb - Colab
import re
from linearmodels.panel import PanelOLS, RandomEffects

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-2-3c7ef9de062c> in <cell line: 0>()
----> 1 import pandas as pd
2 import numpy as np
3 import shap
4 import catboost
5 from matplotlib import pyplot as plt

6 frames
/usr/local/lib/python3.11/dist-packages/numpy/random/_pickle.py in <module>
----> 1 from .mtrand import RandomState
2 from ._philox import Philox
3 from ._pcg64 import PCG64, PCG64DXSM
4 from ._sfc64 import SFC64
5

numpy/random/mtrand.pyx in init numpy.random.mtrand()

ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

Étapes suivantes : Expliquer l'erreur

# Forcer une version compatible de NumPy (1.26.4)


!pip install numpy==1.26.4 --force-reinstall

Collecting numpy==1.26.4
Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)
Installing collected packages: numpy
Attempting uninstall: numpy
Found existing installation: numpy 1.26.4
Uninstalling numpy-1.26.4:
Successfully uninstalled numpy-1.26.4
Successfully installed numpy-1.26.4

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 7/28
09/04/2025 01:30 Untitled7.ipynb - Colab

import numpy as np
import pandas as pd

import numpy as np
import pandas as pd

print("✅ NumPy version :", np.__version__)


print("✅ Pandas version :", pd.__version__)

✅ NumPy version : 1.26.4


✅ Pandas version : 2.2.2

!pip install shap catboost linearmodels plotly seaborn

Requirement already satisfied: shap in /usr/local/lib/python3.11/dist-packages (0.47.1)


Requirement already satisfied: catboost in /usr/local/lib/python3.11/dist-packages (1.2.7)
Requirement already satisfied: linearmodels in /usr/local/lib/python3.11/dist-packages (6.1)
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (6.0.1)
Requirement already satisfied: seaborn in /usr/local/lib/python3.11/dist-packages (0.13.2)
Requirement already satisfied: numpy in /usr/local/lib/python3.11/dist-packages (from shap) (1.26.4)
Requirement already satisfied: scipy in /usr/local/lib/python3.11/dist-packages (from shap) (1.14.1)
Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (from shap) (1.6.1)
Requirement already satisfied: pandas in /usr/local/lib/python3.11/dist-packages (from shap) (2.2.2)
Requirement already satisfied: tqdm>=4.27.0 in /usr/local/lib/python3.11/dist-packages (from shap) (4.67.1)
Requirement already satisfied: packaging>20.9 in /usr/local/lib/python3.11/dist-packages (from shap) (24.2)
Requirement already satisfied: slicer==0.0.8 in /usr/local/lib/python3.11/dist-packages (from shap) (0.0.8)
Requirement already satisfied: numba>=0.54 in /usr/local/lib/python3.11/dist-packages (from shap) (0.60.0)
Requirement already satisfied: cloudpickle in /usr/local/lib/python3.11/dist-packages (from shap) (3.1.1)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.11/dist-packages (from shap) (4.13.1)
Requirement already satisfied: graphviz in /usr/local/lib/python3.11/dist-packages (from catboost) (0.20.3)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (from catboost) (3.10.0)
Requirement already satisfied: six in /usr/local/lib/python3.11/dist-packages (from catboost) (1.17.0)
Requirement already satisfied: statsmodels>=0.13.0 in /usr/local/lib/python3.11/dist-packages (from linearmodels) (0.14.4)
Requirement already satisfied: mypy-extensions>=0.4 in /usr/local/lib/python3.11/dist-packages (from linearmodels) (1.0.0)
Requirement already satisfied: Cython>=3.0.10 in /usr/local/lib/python3.11/dist-packages (from linearmodels) (3.0.12)
Requirement already satisfied: pyhdfe>=0.1 in /usr/local/lib/python3.11/dist-packages (from linearmodels) (0.2.0)
Requirement already satisfied: formulaic>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from linearmodels) (1.1.1)
Requirement already satisfied: setuptools-scm<9.0.0,>=8.0.0 in /usr/local/lib/python3.11/dist-packages (from setuptools-scm[toml]<9
https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 8/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Requirement already satisfied: narwhals>=1.15.1 in /usr/local/lib/python3.11/dist-packages (from plotly) (1.33.0)
Requirement already satisfied: interface-meta>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from formulaic>=1.0.0->linearmodels
Requirement already satisfied: wrapt>=1.0 in /usr/local/lib/python3.11/dist-packages (from formulaic>=1.0.0->linearmodels) (1.17.2)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (1.3.1)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (4.57.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (1.4.8)
Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (11.1.0)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (3.2.3)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib->catboost) (2.9.0.po
Requirement already satisfied: llvmlite<0.44,>=0.43.0dev0 in /usr/local/lib/python3.11/dist-packages (from numba>=0.54->shap) (0.43
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas->shap) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas->shap) (2025.2)
Requirement already satisfied: setuptools>=61 in /usr/local/lib/python3.11/dist-packages (from setuptools-scm<9.0.0,>=8.0.0->setupto
Requirement already satisfied: patsy>=0.5.6 in /usr/local/lib/python3.11/dist-packages (from statsmodels>=0.13.0->linearmodels) (1.0
Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->shap) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->shap) (3.6.0)

import pandas as pd
import numpy as np
import shap
import catboost
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.inspection import permutation_importance
from sklearn import preprocessing
import plotly_express as px
import plotly.io as io
io.renderers.default = 'colab' # pour afficher les graphes dans Colab
import seaborn as sns
import statsmodels.api as sm
import statsmodels.formula.api as smf
from statsmodels.tools.sm_exceptions import ConvergenceWarning
from sklearn.preprocessing import MinMaxScaler
import re
from linearmodels.panel import PanelOLS, RandomEffects

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 9/28
09/04/2025 01:30 Untitled7.ipynb - Colab

---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-5-d25b15e8853d> in <cell line: 0>()
8 from sklearn.inspection import permutation_importance
9 from sklearn import preprocessing
---> 10 import plotly_express as px
11 import plotly.io as io
12 io.renderers.default = 'colab' # pour afficher les graphes dans Colab

ModuleNotFoundError: No module named 'plotly_express'

---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.

To view examples of installing some common dependencies, click the


"Open Examples" button below.
---------------------------------------------------------------------------

OPEN EXAMPLES

Étapes suivantes : Expliquer l'erreur

!pip install plotly --upgrade

Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (6.0.1)


Requirement already satisfied: narwhals>=1.15.1 in /usr/local/lib/python3.11/dist-packages (from plotly) (1.33.0)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from plotly) (24.2)

import plotly.express as px
import plotly.io as io
io.renderers.default = 'colab'
print("✅ Plotly fonctionne !")

✅ Plotly fonctionne !

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 10/28
09/04/2025 01:30 Untitled7.ipynb - Colab
from google.colab import files
uploaded = files.upload()

Sélect. fichiers small_data.xlsx


small_data.xlsx(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) - 34389 bytes, last modified: 08/04/2025 - 100% done
Saving small data xlsx to small data xlsx

# Lire le fichier Excel importé


df = pd.read_excel('small_data.xlsx')

# Supprimer les espaces dans les noms de colonnes


import re
df.columns = [re.sub(r'\s+', '', col) for col in df.columns]

# Afficher les premières lignes du tableau pour vérifier


df.head()

Année Pays Prod_brut_millier_US$ PIB_US$_habit Crop_prod_index_WB IP_FAOSTAT FERTI% FERTIKg/ha Inflation.GDPdeflator

Afrique
0 1991 8790084 3144.504100 73.53 65.99 98.509251 57.372093
du Sud

Afrique
1 1992 8437701 3434.637439 53.89 56.41 97.706667 55.671200
du Sud

Afrique
2 1993 8519624 3461.334353 69.59 62.15 109.359829 62.817146
du Sud

Afrique
3 1994 9197842 3547.951415 78.19 63.50 108.496826 55.918216
du Sud

Afrique
4 1995 9135337 3904.324238 63.64 56.43 96.696924 56.814815
du Sud

5 rows × 27 columns

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 11/28
09/04/2025 01:30 Untitled7.ipynb - Colab
# Calcul de statistiques descriptives pour chaque pays
# Ici, on prend trois variables en exemple : prod_value, crop_prod_index, inf_pct
desc_stats = df.groupby('Pays')[['prod_value', 'crop_prod_index', 'inf_pct']].agg(['mean', 'std', 'min', 'max'])

# Afficher les statistiques calculées


desc_stats

---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-11-678a183632dc> in <cell line: 0>()
1 # Calcul de statistiques descriptives pour chaque pays
2 # Ici, on prend trois variables en exemple : prod_value, crop_prod_index, inf_pct
----> 3 desc_stats = df.groupby('Pays')[['prod_value', 'crop_prod_index', 'inf_pct']].agg(['mean', 'std', 'min', 'max'])
4
5 # Afficher les statistiques calculées

1 frames
/usr/local/lib/python3.11/dist-packages/pandas/core/base.py in __getitem__(self, key)
237 if len(self.obj.columns.intersection(key)) != len(set(key)):
238 bad_keys = list(set(key).difference(self.obj.columns))
--> 239 raise KeyError(f"Columns not found: {str(bad_keys)[1:-1]}")
240 return self._gotitem(list(key), ndim=2)
241

KeyError: "Columns not found: 'prod_value', 'inf_pct', 'crop_prod_index'"

Étapes suivantes : Expliquer l'erreur

df.columns.tolist()

['Année',
'Pays',
'Prod_brut_millier_US$',
'PIB_US$_habit',
'Crop_prod_index_WB',
'IP_FAOSTAT',
'FERTI%',
'FERTIKg/ha',
https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 12/28
09/04/2025 01:30 Untitled7.ipynb - Colab
'Inflation.GDPdeflator(annual%)',
'Inflation.consumerprices(annual%)',
'Précipitat_moy_mm/an',
'Emploi_agricole_%',
'ΔTͦC',
'Conflit',
'Epidemic',
'Flood',
'Drought',
'Earthquake',
'Storm',
'Terresarables(%)',
'FERTI_N_kg/ha',
'FERTI_P205_kg/ha',
'FERTI_K2O_kg/ha',
'Pesticides(total)_tonnes',
'Insecticides_tonnes',
'Herbicides_tonnes',
'Indicedesprixàlaproduction(2014-2016=100)']

# Renommer les colonnes pour qu'elles soient plus simples à utiliser


df = df.rename(columns={
'Année': 'year',
'Pays': 'Pays',
'Prod_brut_millier_US$': 'prod_value',
'PIB_US$_habit': 'pib_habit',
'Crop_prod_index_WB': 'crop_prod_index',
'IP_FAOSTAT': 'ip_faostat',
'FERTI%': 'FERTI_pct',
'FERTIKg/ha': 'FERTI_kg_ha',
'Inflation.GDPdeflator(annual%)': 'inf_pct',
'Inflation.consumerprices(annual%)': 'cpi_pct',
'Précipitat_moy_mm/an': 'precipitation',
'Emploi_agricole_%': 'Emploi_agricole_pct',
'ΔTͦC': 'delta_t',
'Indicedesprixàlaproduction(2014-2016=100)': 'ppi_pct'
# Tu peux en ajouter d'autres si besoin
})

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 13/28
09/04/2025 01:30 Untitled7.ipynb - Colab

df.columns.tolist()

['year',
'Pays',
'prod_value',
'pib_habit',
'crop_prod_index',
'ip_faostat',
'FERTI_pct',
'FERTI_kg_ha',
'inf_pct',
'cpi_pct',
'precipitation',
'Emploi_agricole_pct',
'delta_t',
'Conflit',
'Epidemic',
'Flood',
'Drought',
'Earthquake',
'Storm',
'Terresarables(%)',
'FERTI_N_kg/ha',
'FERTI_P205_kg/ha',
'FERTI_K2O_kg/ha',
'Pesticides(total)_tonnes',
'Insecticides_tonnes',
'Herbicides_tonnes',
'ppi_pct']

# Calcul de statistiques descriptives pour chaque pays avec les noms de colonnes simplifiés
desc_stats = df.groupby('Pays')[[
'prod_value',
'crop_prod_index',
'inf_pct'
]].agg(['mean', 'std', 'min', 'max'])

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 14/28
09/04/2025 01:30 Untitled7.ipynb - Colab
# Afficher les statistiques
desc_stats

prod_value crop_prod_index inf_pct

mean std min max mean std min max mean std min max

Pays

Afrique du
1.514965e+07 6.439492e+06 7043172 26274673 91.692813 16.893057 53.89 125.16 7.654703 2.955873 3.993295 15.6545
Sud

Mozambique 3.386417e+06 1.983750e+06 852303 7971229 90.954688 33.444313 37.04 157.47 12.930477 15.341387 1.085871 51.4598

Étapes suivantes : Générer du code avec desc_stats toggle_off Afficher les graphiques recommandés New interactive sheet

from sklearn.preprocessing import MinMaxScaler

# Sélection des colonnes numériques (on exclut 'year')


variables_numeriques = df.select_dtypes(include='number').columns.difference(['year'])

# Création d'une copie du dataframe pour appliquer la normalisation


df_scaled = df.copy()

# Création de l'objet scaler


scaler = MinMaxScaler()

# Application du MinMaxScaler à chaque groupe de pays


df_scaled[variables_numeriques] = df.groupby('Pays')[variables_numeriques].transform(
lambda x: scaler.fit_transform(x.values.reshape(-1, 1)).flatten()
)

/usr/local/lib/python3.11/dist-packages/sklearn/utils/_array_api.py:776: RuntimeWarning:

All-NaN slice encountered

/usr/local/lib/python3.11/dist-packages/sklearn/utils/_array_api.py:793: RuntimeWarning:

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 15/28
09/04/2025 01:30 Untitled7.ipynb - Colab

All-NaN slice encountered

/usr/local/lib/python3.11/dist-packages/sklearn/utils/_array_api.py:776: RuntimeWarning:

All-NaN slice encountered

/usr/local/lib/python3.11/dist-packages/sklearn/utils/_array_api.py:793: RuntimeWarning:

All-NaN slice encountered

# Supprimer des colonnes spécifiques


df_scaled = df_scaled.drop(['FERTI_pct', 'cpi_pct', 'delta_t'], axis = 1)

# Vérifier les colonnes avec des valeurs manquantes


missing = pd.DataFrame(df_scaled.isna().sum())

# Supprimer les colonnes qui ont trop de valeurs manquantes


selected_columns = df_scaled.dropna(axis = 1, thresh = len(df_scaled) - 2)

# Afficher un résumé des colonnes conservées


selected_columns.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 96 entries, 0 to 95
Data columns (total 21 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 year 96 non-null int64
1 Pays 96 non-null object
2 prod_value 96 non-null float64
3 pib_habit 96 non-null float64
4 crop_prod_index 96 non-null float64
5 ip_faostat 96 non-null float64
6 FERTI_kg_ha 94 non-null float64
7 inf_pct 95 non-null float64
8 Emploi_agricole_pct 96 non-null float64
9 Conflit 96 non-null float64

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 16/28
09/04/2025 01:30 Untitled7.ipynb - Colab
10 Epidemic 96 non-null float64
11 Flood 96 non-null float64
12 Drought 96 non-null float64
13 Earthquake 96 non-null float64
14 Storm 96 non-null float64
15 Terresarables(%) 96 non-null float64
16 FERTI_N_kg/ha 94 non-null float64
17 Pesticides(total)_tonnes 96 non-null float64
18 Insecticides_tonnes 96 non-null float64
19 Herbicides_tonnes 96 non-null float64
20 ppi_pct 96 non-null float64
dtypes: float64(19), int64(1), object(1)
memory usage: 15.9+ KB

import statsmodels.formula.api as smf

# Définir le modèle de régression linéaire


lin_model1 = 'prod_value ~ pib_habit + FERTI_kg_ha + inf_pct + Emploi_agricole_pct + ppi_pct'

# Estimer le modèle avec statsmodels


lin_model_est1 = smf.ols(lin_model1, data=selected_columns).fit()

# Afficher les résultats


print(lin_model_est1.summary())

OLS Regression Results


==============================================================================
Dep. Variable: prod_value R-squared: 0.939
Model: OLS Adj. R-squared: 0.935
Method: Least Squares F-statistic: 267.0
Date: Tue, 08 Apr 2025 Prob (F-statistic): 3.41e-51
Time: 23:31:27 Log-Likelihood: 112.35
No. Observations: 93 AIC: -212.7
Df Residuals: 87 BIC: -197.5
Df Model: 5
Covariance Type: nonrobust
=======================================================================================
coef std err t P>|t| [0.025 0.975]
---------------------------------------------------------------------------------------

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 17/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Intercept -0.2550 0.050 -5.111 0.000 -0.354 -0.156
pib_habit 0.5400 0.049 10.959 0.000 0.442 0.638
FERTI_kg_ha -0.0986 0.043 -2.291 0.024 -0.184 -0.013
inf_pct 0.0504 0.041 1.231 0.222 -0.031 0.132
Emploi_agricole_pct 0.2094 0.045 4.647 0.000 0.120 0.299
ppi_pct 0.8528 0.054 15.827 0.000 0.746 0.960
==============================================================================
Omnibus: 3.731 Durbin-Watson: 0.804
Prob(Omnibus): 0.155 Jarque-Bera (JB): 3.281
Skew: 0.279 Prob(JB): 0.194
Kurtosis: 3.732 Cond. No. 13.6
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

# Dictionnaire pour stocker les résultats par pays


results_by_country = {}

# Pour chaque pays, on ajuste un modèle linéaire avec la même formule


for country, group in selected_columns.groupby('Pays'):
model = smf.ols(formula=lin_model1, data=group).fit()
results_by_country[country] = model

# Afficher les résultats pour chaque pays


for country, model in results_by_country.items():
print(f"\n--- {country} ---")
print(model.summary())
print("\n")

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 18/28
09/04/2025 01:30 Untitled7.ipynb - Colab

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 19/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Skew: 0.966 Prob(JB): 0.0130
Kurtosis: 4.794 Cond. No. 28.3
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

panel_data = selected_columns.set_index(['Pays', 'year'])

# Effets fixes
fe_model = PanelOLS.from_formula(
'prod_value ~ pib_habit + FERTI_kg_ha + inf_pct + Emploi_agricole_pct + ppi_pct + EntityEffects',
data=panel_data
)
fe_results = fe_model.fit()
print("📘 Modèle à effets fixes (Fixed Effects)\n")
print(fe_results.summary)

# Effets aléatoires
re_model = RandomEffects.from_formula(
'prod_value ~ pib_habit + FERTI_kg_ha + inf_pct + Emploi_agricole_pct + ppi_pct',
data=panel_data
)
re_results = re_model.fit()
print("\n📗 Modèle à effets aléatoires (Random Effects)\n")
print(re_results.summary)

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 20/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Parameter Std. Err. T-stat P-value Lower CI Upper CI
---------------------------------------------------------------------------------------
pib_habit 0.5425 0.0480 11.301 0.0000 0.4471 0.6380
FERTI_kg_ha -0.0900 0.0430 -2.0934 0.0393 -0.1754 -0.0045
inf_pct 0.0212 0.0412 0.5144 0.6083 -0.0607 0.1031
Emploi_agricole_pct 0.2261 0.0455 4.9668 0.0000 0.1356 0.3166
ppi_pct 0.8370 0.0550 15.207 0.0000 0.7276 0.9465
=======================================================================================

F-test for Poolability: 3.7445


P-value: 0.0276
Distribution: F(2,85)

Included effects: Entity

📗 Modèle à effets aléatoires (Random Effects)

RandomEffects Estimation Summary


================================================================================
Dep. Variable: prod_value R-squared: 0.9685

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 21/28
09/04/2025 01:30 Untitled7.ipynb - Colab
FERTI_kg_ha -0.1011 0.0488 -2.0718 0.0412 -0.1981 -0.0041
inf_pct -0.0177 0.0439 -0.4037 0.6874 -0.1049 0.0695
Emploi_agricole_pct 0.0066 0.0242 0.2716 0.7865 -0.0415 0.0547
ppi_pct 0.7544 0.0571 13.221 0.0000 0.6410 0.8677
=======================================================================================

from linearmodels.panel import PanelOLS, RandomEffects

# Trier les données par pays et année (obligatoire pour la fenêtre glissante)
df_res = selected_columns.sort_values(['Pays', 'year'])

# Calcul de l'écart-type glissant (rolling standard deviation) sur 3 années


df_res['resilience'] = df_res.groupby('Pays')['prod_value'].rolling(window=3).std().reset_index(level=0, drop=True)

# Supprimer les lignes avec valeurs manquantes dans la colonne 'resilience'


df_res = df_res.dropna(subset=['resilience'])

# Vérifier le résultat
df_res[['Pays', 'year', 'prod_value', 'resilience']].head(10)

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 22/28
09/04/2025 01:30 Untitled7.ipynb - Colab

Pays year prod_value resilience

2 Afrique du Sud 1993 0.076773 0.009589

3 Afrique du Sud 1994 0.112039 0.021695

4 Afrique du Sud 1995 0.108788 0.019490

5 Afrique du Sud 1996 0.126761 0.009577

6 Afrique du Sud 1997 0.160734 0.026381

7 Afrique du Sud 1998 0.066144 0.047916

8 Afrique du Sud 1999 0.057151 0.057384

9 Afrique du Sud 2000 0.016616 0.026385

10 Afrique du Sud 2001 0.000000 0.029398

11 Afrique du Sud 2002 0.010689 0.008421

# Panel regression with resilience


panel2 = df_res.set_index(['Pays', 'year'])

# 1) Fixed effects
fe_res_model = PanelOLS.from_formula('resilience ~ pib_habit + FERTI_kg_ha + inf_pct + Emploi_agricole_pct + ppi_pct + EntityEffects', d
fe_res_model_results = fe_res_model.fit()
print(fe_res_model_results.summary)

# 2) Random effects
re_res_model = RandomEffects.from_formula('resilience ~ pib_habit + FERTI_kg_ha + inf_pct + Emploi_agricole_pct + ppi_pct', data = panel
re_res_model_results = re_res_model.fit()
print(re_res_model_results.summary)

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 23/28
09/04/2025 01:30 Untitled7.ipynb - Colab
Min Obs: 2.0000
Max Obs: 3.0000

Parameter Estimates
=======================================================================================
Parameter Std. Err. T-stat P-value Lower CI Upper CI
---------------------------------------------------------------------------------------
pib_habit 0.1081 0.0282 3.8326 0.0003 0.0520 0.1642
FERTI_kg_ha -0.0378 0.0251 -1.5030 0.1368 -0.0878 0.0122
inf_pct 0.0082 0.0264 0.3106 0.7569 -0.0444 0.0608
Emploi_agricole_pct 0.0774 0.0265 2.9165 0.0046 0.0246 0.1302
ppi_pct 0.1128 0.0322 3.4994 0.0008 0.0487 0.1770
=======================================================================================

F-test for Poolability: 1.1282


P-value: 0.3287
Distribution: F(2,80)

Included effects: Entity


RandomEffects Estimation Summary
================================================================================
Dep. Variable: resilience R-squared: 0.7457
Estimator: RandomEffects R-squared (Between): 0.9941
No. Observations: 88 R-squared (Within): 0.3410
Date: Tue, Apr 08 2025 R-squared (Overall): 0.7457

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 24/28
09/04/2025 01:30 Untitled7.ipynb - Colab
---------------------------------------------------------------------------------------
pib_habit 0.0704 0.0197 3.5819 0.0006 0.0313 0.1095
FERTI_kg_ha -0.0312 0.0246 -1.2667 0.2088 -0.0802 0.0178
inf_pct -0.0062 0.0246 -0.2512 0.8023 -0.0551 0.0427
Emploi_agricole_pct 0.0295 0.0127 2.3267 0.0224 0.0043 0.0548
ppi_pct 0.0830 0.0289 2.8710 0.0052 0.0255 0.1405
=======================================================================================
/usr/local/lib/python3.11/dist-packages/linearmodels/panel/model.py:2759: MissingValueWarning:

Inputs contain missing values. Dropping rows with missing observations.

# Nouvelle formule de régression avec la résilience comme variable dépendante


lin_model2 = 'resilience ~ pib_habit + FERTI_kg_ha + inf_pct + Emploi_agricole_pct + ppi_pct'

# Estimation du modèle
lin_model_est2 = smf.ols(lin_model2, data=df_res).fit()

# Résultats
print(lin_model_est2.summary())

OLS Regression Results


==============================================================================
Dep. Variable: resilience R-squared: 0.359
Model: OLS Adj. R-squared: 0.320
Method: Least Squares F-statistic: 9.194
Date: Tue, 08 Apr 2025 Prob (F-statistic): 5.63e-07
Time: 23:41:52 Log-Likelihood: 156.60
No. Observations: 88 AIC: -301.2
Df Residuals: 82 BIC: -286.3
Df Model: 5
Covariance Type: nonrobust
=======================================================================================
coef std err t P>|t| [0.025 0.975]
---------------------------------------------------------------------------------------
Intercept -0.0474 0.029 -1.659 0.101 -0.104 0.009
pib_habit 0.1041 0.028 3.702 0.000 0.048 0.160
FERTI_kg_ha -0.0305 0.024 -1.252 0.214 -0.079 0.018
inf_pct 0.0089 0.026 0.343 0.733 -0.043 0.061
Emploi_agricole_pct 0.0664 0.026 2.601 0.011 0.016 0.117

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 25/28
09/04/2025 01:30 Untitled7.ipynb - Colab
ppi_pct 0.1008 0.031 3.299 0.001 0.040 0.162
==============================================================================
Omnibus: 12.815 Durbin-Watson: 1.512
Prob(Omnibus): 0.002 Jarque-Bera (JB): 14.239
Skew: 0.796 Prob(JB): 0.000809
Kurtosis: 4.162 Cond. No. 13.4
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

# How to plot resilience by country

# Group and calculate std (resilience)


resilience_df = df_res.groupby('Pays')['prod_value'].std().reset_index()
resilience_df.columns = ['country', 'resilience']

# Vertical bars : b) Graphiques interactifs avec Plotly

fig = px.bar(resilience_df, x = 'country', y = 'resilience',


title='Production Value Resilience (Standard Deviation) by Country',
labels = {'resilience': 'Std. Dev. of Production Value'})
fig.show()

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 26/28
09/04/2025 01:30 Untitled7.ipynb - Colab

Production Value Resilience (Standard Deviation) by Country

0.35

0.3
Std. Dev. of Production Value

0.25

0.2

0.15

0.1

0.05

0
Afrique du Sud Mozambique

country

# Different colors
fig = px.bar(resilience_df, x='country', y='resilience',
color='resilience', color_continuous_scale='Viridis')
fig.show()

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 27/28
09/04/2025 01:30 Untitled7.ipynb - Colab

0.35
resilience

0.33
0.3

0.32
0.25

0.31

0.2
resilience

0.3

0.15
0.29

0.1 0.28

0.27
0.05

0.26
0
Afrique du Sud Mozambique Rwanda

country

# Horizontal bars
fig = px.bar(resilience_df, x='resilience', y='country', orientation='h')
fig.show()

https://colab.research.google.com/drive/1-inbqYZTiEg6p8mP99X2w9THpPcMBdEC?authuser=0#scrollTo=0cCuI2zu55q_&printMode=true 28/28

You might also like