USE CASE : PREVENTION DES RISQUES DE DEFAUT DE PAIEMENT DANS UNE INSTITUTION DE CREDIT
Dans ce Projet, il s'agira d'essayer de comprendre les facteurs expliquants le comportement des Clients
n'arrivant pas et/ou ne voulant pas rembourser les prets qui leurs sont accordés par l'Institution financière de
Crédit.
Dans cette Première partie, nous allons, par l'Analyse Exploratoire des données et des Tests d'hypothèses,
essayer de comprendre les facteurs sous-jacents expliquant un tel phénomène qui fait partie du quotidien des
Institutions de Crédit.
Concernant les Tests d'hypothèses que nous réaliserons, il s'agira de détecter l'association (corrélation) ou non
existante entre nos Features et notre Target.
Dans une Deuxième partie qui sera dédiée à l' Apprentissage Automatique , Nous allons développer un Modèle
ML qui nous permettra de Prédir des Risques de Défaut de Remboursement ou Non chez certains Emprunteurs.
Ce modèle devrait avoir le meilleur score de précision possible !
Pour ce faire, nous avons importé un jeu de données public disponible sur Kaggle :
https://www.kaggle.com/datasets/laotse/credit-risk-dataset ,retraçant l'historique de prets accordés au Clients
d'une Institut de Crédit. Chaque Client a été identifié comme étant En Defaut de Remboursement (1) ou Pas En
Defaut de Remboursement (0) !
Allons y !!!
5- loan_intent : fait référence au motif de l'emprunt, ceux pourquoi l'emprunteur sollicite le crédit: ('PERSONAL',
'EDUCATION', 'MEDICAL', 'VENTURE', 'HOMEIMPROVEMENT', 'DEBTCONSOLIDATION'),
6- loan_grade : fait référence à la catégorie de l'emprunt: ('A', 'B', 'C', 'D', 'E', 'F', 'G'),
9- loan_status (Target) : C'est la variable à prédire. Le statut de l'emprunt est soit 0 (Pas En Defaut de
Remboursement), soit 1 (En Defaut de Remboursement),
11- cb_person_default_on_file : L'Emprunteur est-il fichié dans la base des clients ayant deja eu un defaut de
remboursement ? (Yes/No),
Les Dépendances
In [1]:
# Pour la manipulation de Tables et de Matrices
import numpy as np
import pandas as pd
plt.rcParams["figure.figsize"] = (12,8)
font = {'weight' : 'normal',
'size' : 12}
matplotlib.rc('font', **font)
import warnings
warnings.filterwarnings("ignore")
In [3]:
type(loan_dataset)
Out[3]:
pandas.core.frame.DataFrame
In [4]:
# Affichons les 5 premières lignes
loan_dataset.head()
Out[4]:
In [6]:
# Nombre de lignes et colonnes de notre jeu de données
loan_dataset.shape
Out[6]:
(32581, 12)
In [7]:
# Affichons les colonnes
loan_dataset.columns
Out[7]:
Index(['person_age', 'person_income', 'person_home_ownership',
'person_emp_length', 'loan_intent', 'loan_grade', 'loan_amnt',
'loan_int_rate', 'loan_status', 'loan_percent_income',
'cb_person_default_on_file', 'cb_person_cred_hist_length'],
dtype='object')
In [8]:
# Les Types de données de Variables
loan_dataset.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 32581 entries, 0 to 32580
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 person_age 32581 non-null int64
1 person_income 32581 non-null int64
2 person_home_ownership 32581 non-null object
3 person_emp_length 31686 non-null float64
4 loan_intent 32581 non-null object
5 loan_grade 32581 non-null object
6 loan_amnt 32581 non-null int64
7 loan_int_rate 29465 non-null float64
8 loan_status 32581 non-null int64
9 loan_percent_income 32581 non-null float64
10 cb_person_default_on_file 32581 non-null object
11 cb_person_cred_hist_length 32581 non-null int64
dtypes: float64(3), int64(5), object(4)
memory usage: 3.0+ MB
In [10]:
loan_dataset
Out[10]:
In [11]:
# Controle des Valeurs manquantes
loan_dataset.isna().any()
Out[11]:
person_age False
person_income False
person_home_ownership False
person_emp_length True
loan_intent False
loan_grade False
loan_amnt False
loan_int_rate True
loan_status False
loan_percent_income False
cb_person_default_on_file False
cb_person_cred_hist_length False
dtype: bool
In [12]:
# Identifions les valeurs manquantes de notre dataset
Nous allons Créer une fonction qui nous permettra de compter le Nombre de Valeurs Manquantes et de Calculer
leur Pourcentage pour chaque Variables de notre Dataset
In [13]:
cm = sns.light_palette("green", as_cmap = True)
def missing_value_table(donnees):
missing_value = donnees.isna().sum().sort_values(ascending=False)
missing_value_percent = 100 * donnees.isna().sum()//len(donnees)
missing_value_table = pd.concat([missing_value, missing_value_percent], axis=1)
missing_value_table_return = missing_value_table.rename(columns = {0:'Données manqua
ntes', 1:'%Taux'})
missing_value_table_return = missing_value_table_return.style.background_gradient(cma
p=cm)
return missing_value_table_return
missing_value_table(loan_dataset)
Out[13]:
loan_int_rate 3116 9
person_emp_length 895 2
cb_person_cred_hist_length 0 0
cb_person_default_on_file 0 0
loan_percent_income 0 0
loan_status 0 0
loan_amnt 0 0
loan_grade 0 0
loan_intent 0 0
person_home_ownership 0 0
person_income 0 0
person_age 0 0
Notre jeu de données contient des Valeurs Manquantes au sein des variables "loan_int_rate" ( 3116 soit 9% des
valeurs totales ) et "person_emp_length" ( 895 soit 2% des valeurs totales ).
C'est quand meme bizarre que 9% des données de la Variable "loan_int_rate" (Taux d'intéret du pret) soit Null
alors qu'un pret est sensé etre accordé avec un taux d'intéret. C'est énorme ! Le Data Engineer ou l'Equipe
Métier doit nous éclaircir sur ce sujet.
In [14]:
loan_dataset.dropna(inplace=True)
In [15]:
loan_dataset.isna().any()
Out[15]:
person_age False
person_income False
person_home_ownership False
person_emp_length False
loan_intent False
loan_grade False
loan_amnt False
loan_int_rate False
loan_status False
loan_percent_income False
cb_person_default_on_file False
cb_person_cred_hist_length False
dtype: bool
In [16]:
# Stats descriptives (ce sont les variables numériques qui sont présentées)
loan_dataset.describe().T.style.background_gradient(cmap=cm)
Out[16]:
Analyse Univariée
In [17]:
# Créons des Histogrammes afin d'observer les distributions
sns.distplot(loan_dataset['person_age'], kde=True,color='green');
Nous observons une distribution positivement asymétrique des Ages des Emprunteurs.
In [18]:
sns.distplot(loan_dataset['person_age'][loan_dataset['person_age']>60], kde=True,color='
green');
In [19]:
sns.distplot(loan_dataset['person_emp_length'], kde=True,color='green');
In [20]:
sns.distplot(loan_dataset['person_emp_length'][loan_dataset['person_emp_length']<30], kde
=True,color='green');
Il y a une forte proportion des Emprunteurs ayant entre 0 ans et 20 années d'expérience de Travail !
In [21]:
sns.distplot(loan_dataset['person_income'], kde=True,color='green');
In [22]:
sns.distplot(loan_dataset['person_income'][loan_dataset['person_income']<500000], kde=Tru
e,color='green');
Il y a une forte proportion des Emprunteurs ayant un Revenu Annuel inférieur ou égal à 200000 !
In [23]:
loan_dataset['person_home_ownership'].value_counts(normalize=True)*100
Out[23]:
RENT 50.810112
MORTGAGE 41.207487
OWN 7.654166
OTHER 0.328235
Name: person_home_ownership, dtype: float64
In [24]:
sns.countplot(loan_dataset['person_home_ownership']);
La Plupart des Emprunteurs sont soit en situation de Locataire 'RENT' (50%) ou d'Hypothèque 'MORTGAGE'
(41%) de leurs domiciles !
In [25]:
loan_dataset['loan_intent'].value_counts(normalize=True)*100
Out[25]:
EDUCATION 19.917592
MEDICAL 18.482436
VENTURE 17.462812
PERSONAL 17.029821
DEBTCONSOLIDATION 15.940359
HOMEIMPROVEMENT 11.166981
Name: loan_intent, dtype: float64
In [26]:
sns.countplot(loan_dataset['loan_intent']);
In [27]:
loan_dataset['loan_grade'].value_counts(normalize=True)*100
Out[27]:
A 32.830505
A 32.830505
B 31.954047
C 19.900133
D 11.341574
E 3.037922
F 0.729800
G 0.206020
Name: loan_grade, dtype: float64
In [28]:
sns.countplot(loan_dataset['loan_grade']);
In [29]:
sns.distplot(loan_dataset['loan_amnt'], kde=True,color='green');
Les prets accordés varient entre 500 et 35000 !
In [30]:
sns.distplot(loan_dataset['loan_int_rate'], kde=True,color='green');
Les prets sont accordés à des Taux d'Intéret qui varient entre 5,42% et 23,22% !
5,42% - 7,5%
10% - 20%
In [31]:
loan_dataset['loan_status'].value_counts(normalize=True)*100
Out[31]:
0 78.339968
1 21.660032
Name: loan_status, dtype: float64
In [32]:
sns.countplot(loan_dataset['loan_status']);
78% des Emprunteurs arrivent à respecter leurs engagements de Remboursement des Prets qui leurs sont
accordés
22% des Emprunteurs sont en Defaut de Remboursement !
In [33]:
sns.distplot(loan_dataset['loan_percent_income'], kde=True,color='green');
In [34]:
loan_dataset['cb_person_default_on_file'].value_counts(normalize=True)*100
Out[34]:
0 82.181018
1 17.818982
Name: cb_person_default_on_file, dtype: float64
In [35]:
sns.countplot(loan_dataset['cb_person_default_on_file']);
In [36]:
In [38]:
qqplot(loan_dataset["person_emp_length"].dropna(), fit=True, line="45")
plt.show();
In [39]:
qqplot(loan_dataset["loan_amnt"].dropna(), fit=True, line="45")
plt.show();
In [40]:
Analyse Mutivariée
In [42]:
loan_dataset.groupby(['loan_status'])['person_age'].mean()
Out[42]:
loan_status
0 27.804636
1 27.447203
Name: person_age, dtype: float64
In [43]:
sns.boxplot(data=loan_dataset,x='loan_status',y='person_age', hue='loan_status');
In [45]:
sns.kdeplot(loan_dataset['person_income'][loan_dataset['person_income']<500000],color='g
reen', hue=loan_dataset['loan_status']);
In [46]:
sns.kdeplot(loan_dataset['person_emp_length'][loan_dataset['person_emp_length']<30], hue
=loan_dataset['loan_status']);
In [47]:
sns.kdeplot(loan_dataset['loan_int_rate'],color='green', hue=loan_dataset['loan_status']
);
In [48]:
# Tableau de contingence
tab1=pd.crosstab(loan_dataset['person_home_ownership'],loan_dataset.loan_status).style.b
ackground_gradient(cmap = cm)
tab1
Out[48]:
loan_status 0 1
person_home_ownership
OTHER 67 27
In [49]:
sns.countplot(data=loan_dataset, x="person_home_ownership",hue="loan_status");
In [50]:
# Tableau de contingence
tab2= pd.crosstab(loan_dataset['loan_intent'],loan_dataset.loan_status).style.background
_gradient(cmap = cm)
tab2
Out[50]:
loan_status 0 1
loan_intent
In [51]:
sns.countplot(data=loan_dataset, x="loan_intent",hue="loan_status");
In [52]:
# Tableau de contingence
tab3= pd.crosstab(loan_dataset['loan_grade'],loan_dataset.loan_status).style.background_
gradient(cmap = cm)
tab3
Out[52]:
loan_status 0 1
loan_grade
A 8498 904
loan_status 0 1453
B 7698 1
loan_grade
C 4542 1157
D 1325 1923
E 308 562
F 63 146
G 1 58
In [53]:
sns.countplot(data=loan_dataset, x="loan_grade",hue="loan_status");
Les Prets de Grade 'D','E','F','G' comptent Plus d'Emprunteurs en Defaut de Paiement que de Bon Payeurs !
In [54]:
# Tableau de contingence
tab4= pd.crosstab(loan_dataset['cb_person_default_on_file'],loan_dataset.loan_status).st
yle.background_gradient(cmap = cm)
tab4
Out[54]:
loan_status 0 1
cb_person_default_on_file
0 19259 4276
1 3176 1927
In [55]:
sns.countplot(data=loan_dataset, x="cb_person_default_on_file",hue="loan_status");
In [56]:
loan_dataset.head()
Out[56]:
In [57]:
loan_dataset['loan_grade'].replace(to_replace=['A','B','C','D','E','F','G'], value=[0,1,
2,3,4,5,6],inplace=True)
loan_dataset['person_home_ownership'].replace(to_replace=['RENT','OWN','MORTGAGE','OTHER
'], value=[0,1,2,3],inplace=True)
loan_dataset['loan_intent'].replace(to_replace=['PERSONAL','EDUCATION','MEDICAL','VENTURE
','HOMEIMPROVEMENT','DEBTCONSOLIDATION'], value=[0,1,2,3,4,5],inplace=True)
loan_dataset.head(3)
Out[57]:
In [58]:
Suggestions
Au regard de notre Analyse Exploratoire et tous les Traitements effectués précedemment, nous nous sommes
rendu comptes que nos données contenaient plusieurs valeurs aberrantes et n'étaient pas normalement
distribuées. Nous suggerons la réalisation de Test de Corrélation afin de détecter s'il existe une Relation Linéaire
entre nos variables ! Dans notre cas, une Analyse de Corrélation de Spearman serait appropriée !!!
In [59]:
# Correlation Matrix of features
corr = loan_dataset.corr()
ax = sns.heatmap(
corr,
annot=True,
vmin=-1, vmax=1, center=0,
cmap= sns.diverging_palette(20, 220, n=200),
square=True
)
ax.set_xticklabels(
ax.get_xticklabels(),
rotation=45,
horizontalalignment='right'
);
corr.style.background_gradient(cmap = cm)
Out[59]:
Questions:
1. Existe t-il une Relation entre 'person_age' et 'loan_status' ?
2. Existe t-il une Relation entre 'person_income' et 'loan_status' ?
3. Existe t-il une Relation entre 'person_home_ownership' et 'loan_status' ?
4. Existe t-il une Relation entre 'person_emp_length' et 'loan_status' ?
5. Existe t-il une Relation entre 'loan_intent' et 'loan_status' ?
6. Existe t-il une Relation entre 'loan_grade' et 'loan_status' ?
7. Existe t-il une Relation entre 'loan_amnt' et 'loan_status' ?
8. Existe t-il une Relation entre 'loan_int_rate' et 'loan_status' ?
9. Existe t-il une Relation entre 'loan_percent_income' et 'loan_status' ?
10. Existe t-il une Relation entre 'cb_person_default_on_file' et 'loan_status' ?
In [60]:
# Créons un tableau numpy 2D à partir de loan_data_to_test
loan_data_to_test_array = loan_dataset.values
In [61]:
loan_data_to_test_array_scaled = preprocessing.StandardScaler().fit(loan_data_to_test_arr
ay).transform(loan_data_to_test_array)
loan_data_to_test_array_scaled
Out[61]:
array([[-0.90759357, -0.12267385, -0.94657827, ..., 3.95252678,
2.14755511, -0.69179063],
[-1.06606387, -0.91490728, 0.09300251, ..., -0.65314095,
-0.46564579, -0.93941272],
[-0.43218267, -0.91490728, 1.1325833 , ..., 3.76454035,
-0.46564579, -0.69179063],
...,
[ 5.9066293 , 0.14995709, -0.94657827, ..., 2.73061494,
-0.46564579, 5.4987615 ],
[ 4.4803966 , 1.33670353, 1.1325833 , ..., -0.65314095,
-0.46564579, 5.00351733],
[ 6.06509959, -0.39530479, -0.94657827, ..., -0.18317486,
-0.46564579, 5.99400567]])
-0.46564579, 5.99400567]])
In [62]:
person_age_array_scaled = loan_data_to_test_array_scaled[:,0]
person_income_array_scaled = loan_data_to_test_array_scaled[:,1]
person_home_ownership_array_scaled = loan_data_to_test_array_scaled[:,2]
person_emp_length_array_scaled = loan_data_to_test_array_scaled[:,3]
loan_intent_array_scaled = loan_data_to_test_array_scaled[:,4]
loan_grade_array_scaled = loan_data_to_test_array_scaled[:,5]
loan_amnt_array_scaled = loan_data_to_test_array_scaled[:,6]
loan_int_rate_array_scaled = loan_data_to_test_array_scaled[:,7]
loan_status_array_scaled = loan_data_to_test_array_scaled[:,8]
loan_percent_income_array_scaled = loan_data_to_test_array_scaled[:,9]
cb_person_default_on_file_array_scaled = loan_data_to_test_array_scaled[:,10]
cb_person_cred_hist_length_array_scaled = loan_data_to_test_array_scaled[:,11]
In [63]:
person_age_array_scaled
Out[63]:
array([-0.90759357, -1.06606387, -0.43218267, ..., 5.9066293 ,
4.4803966 , 6.06509959])
------------------------
Test-1:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'person_age' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'person_age' et la target 'loan_status' .
Interprètation du Test
In [64]:
stat, pval = spearmanr(person_age_array_scaled, loan_status_array_scaled)
print('stat=%.3f, pval=%.3f' % (stat, pval))
if pval > 0.05:
print("H0: Il n'existe pas de Relation Linéaire entre la variable person_age et loan_sta
tus .(Probablement indépendant)")
else:
print("H1: Il existe une Relation Linéaire entre la variable person_age et loan_status .
(Probablement dépendant)")
stat=-0.034, pval=0.000
H1: Il existe une Relation Linéaire entre la variable person_age et loan_status .(Probabl
ement dépendant)
------------------------
Test-2:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'person_income' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'person_income' et la target 'loan_status' .
Interprètation du Test
stat=-0.265, pval=0.000
H1: Il existe une Relation Linéaire entre la variable person_income et loan_status .(Prob
ablement dépendant)
------------------------
Test-3:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'person_home_ownership' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'person_home_ownership' et la target 'loan_status' .
Interprètation du Test
In [66]:
stat=-0.219, pval=0.000
H1: Il existe une Relation Linéaire entre la variable person_home_ownership et loan_statu
s .(Probablement dépendant)
------------------------
Test-4:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'person_emp_length' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'person_emp_length' et la target 'loan_status' .
Interprètation du Test
In [67]:
stat, pval = spearmanr(person_emp_length_array_scaled, loan_status_array_scaled)
print('stat=%.3f, pval=%.3f' % (stat, pval))
if pval > 0.05:
print("H0: Il n'existe pas de Relation Linéaire entre la variable person_emp_length et l
oan_status .(Probablement indépendant)")
else:
print("H1: Il existe une Relation Linéaire entre la variable person_emp_length et loan_s
tatus .(Probablement dépendant)")
stat=-0.098, pval=0.000
stat=-0.098, pval=0.000
H1: Il existe une Relation Linéaire entre la variable person_emp_length et loan_status .(
Probablement dépendant)
------------------------
Test-5:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'loan_intent' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'loan_intent' et la target 'loan_status' .
Interprètation du Test
In [68]:
stat, pval = spearmanr(loan_intent_array_scaled, loan_status_array_scaled)
print('stat=%.3f, pval=%.3f' % (stat, pval))
if pval > 0.05:
print("H0: Il n'existe pas de Relation Linéaire entre la variable loan_intent et loan_st
atus .(Probablement indépendant)")
else:
print("H1: Il existe une Relation Linéaire entre la variable loan_intent et loan_status
.(Probablement dépendant)")
stat=0.061, pval=0.000
H1: Il existe une Relation Linéaire entre la variable loan_intent et loan_status .(Probab
lement dépendant)
------------------------
Test-6:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'loan_grade' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'loan_grade' et la target 'loan_status' .
Interprètation du Test
In [69]:
stat, pval = spearmanr(loan_grade_array_scaled, loan_status_array_scaled)
print('stat=%.3f, pval=%.3f' % (stat, pval))
if pval > 0.05:
print("H0: Il n'existe pas de Relation Linéaire entre la variable loan_grade et loan_sta
tus .(Probablement indépendant)")
else:
print("H1: Il existe une Relation Linéaire entre la variable loan_grade et loan_status .
(Probablement dépendant)")
stat=0.339, pval=0.000
H1: Il existe une Relation Linéaire entre la variable loan_grade et loan_status .(Probabl
ement dépendant)
------------------------
Test-7:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'loan_amnt' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'loan_amnt' et la target 'loan_status' .
Interprètation du Test
In [70]:
stat=0.093, pval=0.000
H1: Il existe une Relation Linéaire entre la variable loan_amnt et loan_status .(Probable
ment dépendant)
------------------------
Test-8:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'loan_int_rate' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'loan_int_rate' et la target 'loan_status' .
Interprètation du Test
In [71]:
stat, pval = spearmanr(loan_int_rate_array_scaled, loan_status_array_scaled)
print('stat=%.3f, pval=%.3f' % (stat, pval))
if pval > 0.05:
print("H0: Il n'existe pas de Relation Linéaire entre la variable loan_int_rate et loan_
status .(Probablement indépendant)")
else:
print("H1: Il existe une Relation Linéaire entre la variable loan_int_rate et loan_statu
s .(Probablement dépendant)")
stat=0.324, pval=0.000
H1: Il existe une Relation Linéaire entre la variable loan_int_rate et loan_status .(Prob
ablement dépendant)
------------------------
Test-9:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'loan_percent_income' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'loan_percent_income' et la target 'loan_status' .
Interprètation du Test
In [72]:
stat, pval = spearmanr(loan_percent_income_array_scaled, loan_status_array_scaled)
print('stat=%.3f, pval=%.3f' % (stat, pval))
if pval > 0.05:
print("H0: Il n'existe pas de Relation Linéaire entre la variable loan_percent_income et
loan_status .(Probablement indépendant)")
else:
print("H1: Il existe une Relation Linéaire entre la variable loan_percent_income et loan
_status .(Probablement dépendant)")
stat=0.314, pval=0.000
H1: Il existe une Relation Linéaire entre la variable loan_percent_income et loan_status
.(Probablement dépendant)
------------------------
Test-10:------------------------
H0: Il n'existe pas de Relation Linéaire entre la variable 'cb_person_default_on_file' et la target 'loan_status' .
H1: Il existe une Relation Linéaire entre la variable 'cb_person_default_on_file' et la target 'loan_status' .
Interprètation du Test
In [73]:
stat, pval = spearmanr(cb_person_default_on_file_array_scaled, loan_status_array_scaled)
print('stat=%.3f, pval=%.3f' % (stat, pval))
if pval > 0.05:
print("H0: Il n'existe pas de Relation Linéaire entre la variable cb_person_default_on_f
ile et loan_status .(Probablement indépendant)")
else:
print("H1: Il existe une Relation Linéaire entre la variable cb_person_default_on_file e
t loan_status .(Probablement dépendant)")
stat=0.182, pval=0.000
H1: Il existe une Relation Linéaire entre la variable cb_person_default_on_file et loan_s
tatus .(Probablement dépendant)
Exemple :