Université de Montpellier 2
M2 MASS
TP5 : Introduction au logiciel SAS
Classification supervisée : Analyses Discriminantes et Régression Logistique
1 Les données
On étudie les données du fichier entreprises.txt qui présentent 46 entreprises dont certaines
ont fait faillite (valeur 1) et d’autres ont gardé une situation financière stable (valeur 2). On
dispose de 4 variables quantitatives X1, X2, X3et X4qui décrivent la situation des entreprises :
X1: Flux de trésorerie/Dette totale
X2: Revenu Net/ Total des actifs au bilan
X3: Actif réalisable et disponible/Passif courant
X4: Actif réalisable/Ventes nettes
Le passif représente ce que l’entreprise doit. Le passif courant regroupe les dettes des fournis-
seurs, les provisions, les emprunts. Ce sont des dettes dont l’échéance est inférieure à 12 mois
(court terme).
L’actif désigne l’ensemble du patrimoine de l’entreprise.
La variable X1est un indicateur de la bonne santé de l’entreprise. Le Flux de trésorerie est
la différence entre les recettes et les dépenses. Si X1est négative, c’est que le flux de trésorerie
est négatif : les dépenses de l’entreprise sont supérieures aux recettes.
La variable X2mesure la performance de production de l’entreprise : c’est un indicateur de
la rentabilité globale de l’entreprise.
La variable X3exprime la capacité de l’entreprise à rembourser ses dettes à court terme.
Deux ans après le recueil de ces données, on sait que 21 de ces entreprises ont fait faillite et
que 25 ont conservé une situation financière stable. On cherche à mettre en œuvre des méthodes
de classification supervisée afin de prédire à 2 ans la situation financière des entreprises.
Première Analyse des données
La procédure DISCRIM de SAS permet de faire une analyse discriminante des données.
1. Créer la table SAS des données à partir du fichier entreprise.txt disponible sur l’ENT. Ajouter
une variable qualitative situation dont les modalités sont "Faillite" ou "Stable" selon l’état
de l’entreprise (1 ou 2).
2. Réaliser une PROC MEANS de la table créée pour visualiser l’étendue de chacune des variables.
3. Représenter les couples de variables (X1, X2) (X1, X3) (X1, X4)et (X2, X3)en utilisant un
style différent pour les entreprises ayant fait faillite et les autres. Pour cela on définit un style
de graphique à l’aide de la PROC TEMPLATE et on utilise la procédure SGRENDER. Cette procédure
permet de faire des graphiques à partir de modèles qui ont été définis par la procédure TEMPLATE.
define statgraph scatter;
begingraph;
entrytitle ’Données de Faillites des entreprises’;
layout overlayequated / equatetype=fit; /* pour la légende */
scatterplot x=X1 y=X3 / group=situation name="malegende";
layout gridded / autoalign=(topleft);
discretelegend "malegende" /border=false opaque=false;
endlayout;
endlayout;
endgraph;
end;
run;
proc sgrender data=entreprise template=scatter;
run;
2 Régression Logistique
Nous allons utiliser la PROC LOGISTIC de SAS dans le cas d’une variable de classification
binaire (2 groupes).
1. Modèle complet. Nous commençons d’abord par le modèle avec toutes les variables pour
examiner les sorties fournies par la proc LOGISTIC :
ˆπ= (P(Y= 1|X1, X2, X3, X4) = exp(ˆa0+ ˆa1X1+ ˆa2X2+ ˆa3X3+ ˆa4X4)
1 + exp(ˆa0+ ˆa1X1+ ˆa2X2+ ˆa3X3+ ˆa4X4)
PROC LOGISTIC data=entreprise;
model Y=X1 X2 X3 X4;
run;
On obtient différents tableaux en sortie. Notamment, des tests globaux de la nullité des para-
mètres, les estimations des paramètres avec tests de Wald (significativité). On peut voir que
seule la variable X3a une influence significative (p-value inférieure à 0.05). Enfin, on a le
tableau des Odd-ratios ou rapports des cotes. Ainsi, on observe que l’Odd-ratio pour la
variable X1est égal à 0.16 ou que celui de la variable X3est de 0.043. Cela signifie que
exp(ˆa3) = exp(3.1577) = 0.043. On l’interprète de la façon suivante : si la variable X3augmente
d’1 unité, les autres variables du modèles restant constantes, alors les chances de faire faillite sont
1/0.043=23 fois plus faibles pour l’entreprise. En revanche, pour la variable X4, l’Odd-ratio est
de 18.8 donc les chances de faire faillite sont 18 fois plus élevées. Mais comme la variable X4n’est
pas significative dans ce modèle, on n’interprète pas son Odd-ratio.
Le dernier tableau fournit des mesures d’associations entre les probabilités calculées et les valeurs
de Yobservées :
Pourcentage concordant : nc/T ×100 = 94.1en %avec Tnombre total de paires, ici
T= 21×25 = 525.ncest le nombre de paires concordantes telles que : (Yi< Yj)et ˆπi<ˆπj.
Ce sont les paires bien prédites.
Pourcentage disconcordant : nd/T ×100 = 5.9en %Ce sont les paires bien mal prédites.
Pourcentage lié : (Tncnd)/T ×100 = 0 car nc+nd=Tdans notre exemple (pas
de paires avec ˆπi= ˆπj.
D de Somers :(ncnd)/T = 0.882
Gamma :ncnd
nc+nd
= 0.882
Tau-a :ncnd
0.5N(N1)
c:nc+ 0.5(Tncnd)
Tici nc/T = 0.941
il représente l’aire sous la courbe ROC, c’est une mesure du pouvoir prédictif du modèle.
Les indices D de Somers et Gamma sont égaux ici car nc+nd=T, plus le nombre de paires
concordantes est proche du nombre total de paires, plus le pouvoir prédictif du modèle est bon.
Ici, 0.882 est proche de 1.
2. Sélection de variables : Comme pour la régression linéaire avec la procédure REG, nous
allons procéder à la recherche du meilleur modèle. Comparer les différentes méthodes à l’aide de
l’option selection= (backward,forward et score).
PROC LOGISTIC data=entreprise;
model Y=X1 X2 X3 X4/selection=score best=2;
run;
L’option selection=score choisit le modèle qui maximise la log-vraisemblance (le score) pour
chaque sous-modèle. Ici, le meilleur modèle à 2 variables, au sens du score de la log-vraisemblance
est le modèle estimé avce les variables X2et X3ce qui correspond à une log-vraisemblance de
22.0349. Les procédures de selections backward et forward choisissent plutôt les variables X1et
X3.
3. Représentation graphique : On représente ensuite les entreprises dans les plans (1,3) avec
une droite frontière dont on trouve l’équation qui correspond à la probabilité de faire faillite égale
à 0.5 :
P(Y= 1|X1, X3) = exp(6.1501 6.3915X13.1109X3)
1 + exp(6.1501 6.3915X13.1109X3)
exp(6.1501 6.3915X13.1109X3)=1
6.1501 6.3915X13.1109X3= 0
Cette droite est appelée droite d’isoprobabilité. Créer une table entreprise2 qui contient la
variable X5= (6.1501/3.0322) (6.5887/3.0322) ×X1.
Représenter sur le même graphique les entreprises à l’aide des points (X1, X3)et la droite
d’isoprobabilité pour la classification.
4. Table de Classification, probabilités estimées et résidus :
PROC LOGISTIC data=entreprise;
model Y=X2 X3 /ctable
pprob=(0 to 0.48 by 0.04, 0.5, 0.52 to 1 by 0.04);
output out=result predicted=predicted xbeta=xbeta lower=lower
upper=upper reschi=reschi resdev=resdev;
run;
Faire l’analyse des résidus. Examiner la table de classification.
5. Courbes ROC Représenter la courbe ROC de la sensibilité en fonction de (1-spécificité) à
l’aide de l’option plots=ROC.
3 Analyse discriminante
La procédure DISCRIM de SAS permet de faire une analyse discriminante des données.
1. On extrait un échantillon d’apprentissage (ou de calibration) et un échantillon de test :
/* échantillon test */ /* échantillon calibration */
data plotdata; data entreprise1;
set entreprise; set entreprise;
where (num<6 or num>40); where (num>5 and num<41);
run; run;
On peut regarder les fréquences de la variables X3qui apparaissait comme la plus prédictive
de la situation financière dans la régression logistique :
proc freq data=entreprise noprint;
tables X3 * situation / out=freqout;
run;
proc sgplot data=freqout;
vbar X3 / response=count group=situation;
keylegend / location=inside;
run;
2. On fait l’analyse discriminante linéaire (option pool=yes) sur la table entreprise1 qui
contient l’échantillon d’apprentissage (n= 35)
title2 ’Densités gaussiennes avec variance égales dans les groupes’;
proc discrim data=entreprise1 method=normal pool=yes
/* pool=yes : pour l’analyse discriminante linéaire */
/* pool=no : pour l’analyse discriminante quadratique */
testdata=plotdata testout=plotp testoutd=plotd
short noclassify crosslisterr ;
class situation;
var X1 X3;
run;
Indiquer ce que produisent les différentes options short, noclassify, crosslisterr. Dire ce
que contiennent les tables plotdata,plotp et plotd. Donner la matrice de confusion.
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !