27.01.2015 Views

TP SAS 6 : Régression logistique binomiale - Lsta

TP SAS 6 : Régression logistique binomiale - Lsta

TP SAS 6 : Régression logistique binomiale - Lsta

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

M2 IFMA et MPE<br />

<strong>TP</strong> <strong>SAS</strong> : Régression <strong>logistique</strong> <strong>binomiale</strong><br />

Dans ce <strong>TP</strong>, on s’intéresse à une population de limules (Horseshoe crab). Des biologistes ont observé<br />

que l’on trouve parfois plusieurs mâles (appelés satellites) à proximité du nid d’une femelle limule où<br />

un mâle est déjà installé. Il s’agit de déterminer quelles variables peuvent expliquer la présence ou<br />

non de satellites près d’un nid. Les données sont disponibles dans le fichier Limule.txt. On dispose des<br />

variables suivantes :<br />

– la variable couleur de la carapace, codée du plus clair au plus foncé de 2 à 5 ;<br />

– la variable épine qui décrit l’état des deux épines mobiles :<br />

1 : les deux épines sont en bon état,<br />

2 : une épine abîmée,<br />

3 : deux épines abîmées ;<br />

– la variable largeur de la carapace ;<br />

– la variable nombre de satellites relevés près du nid ;<br />

– la variable poids de la carapace.<br />

Créez un répertoire consacré à cette séance <strong>SAS</strong> et associez ce répertoire à une librairie <strong>SAS</strong> que<br />

vous nommerez RegLog. Importez les données du fichier Limule.dat dans une table <strong>SAS</strong> RegLog.Limule.<br />

Décalez le code pour la couleur de la carapace de 1 à 4. Divisez par 1000 le poids des carapaces :<br />

data RegLog.Limule;<br />

infile ’’;<br />

input couleur epine largeur satellite poids;<br />

couleur = couleur - 1;<br />

poids = poids/1000;<br />

run;<br />

Liaisons de la variables Satellite avec des variables catégorielles<br />

1. Effectuez un test d’indépendance du χ 2 entre la variable satellite et la variable couleur :<br />

proc freq data = RegLog.Limule;<br />

tables couleur *satellite / chisq;<br />

run;<br />

1


2. Proposez un test du χ 2 plus raisonnable pour tester l’hypothèse d’indépendance entre couleur<br />

et satellite. Pour cela, définissez :<br />

– une nouvelle variable dark qui prend la valeur 1 si la couleur de la carapace vaut 4 est 0 sinon,<br />

– une nouvelle variable satellite01 qui prend la valeur 1 si un satellite est observé près du nid et<br />

qui vaut 0 sinon.<br />

Effectuez un test du χ 2 entre les deux nouvelles variables satellite01 et dark.<br />

3. Effectuez un test du χ 2 entre les variables satellite01 et epine.<br />

Liaisons de la variable Satellite01 avec des variables continues<br />

Dans cette section, on étudie les liaisons éventuelles entre la présence de satellites et le poids ou<br />

la largeur de la carapace de la limule.<br />

4. Pour chacune de ces deux variables continues, comparez les distributions en présence ou non de<br />

satellites. On pourra dresser des nuages de points, des boxplots et des histogrammes.<br />

5. Utilisez une procédure ttest pour discuter l’existence d’une liaison entre la présence d’un satellite<br />

et la valeur prise par l’une ou l’autre des deux variables poids et largeur.<br />

6. Que dire de l’information apportée par les deux variables poids et largeur <br />

Probabilités a posteriori<br />

Dans cette section, on cherche à modéliser la présence d’un satellite (variable satellite01) à l’aide<br />

de la variable continue poids. Le code correspondant à cette section est disponible ici.<br />

7. Affichez le nuage de des couples (poids,satellite01) :<br />

title ’Présence d’’un satellite expliqué par le poids de la limule’;<br />

proc gplot data= RegLog.Limule;<br />

symbol color=brown value=dot;<br />

plot satellite01 * poids ;<br />

label satellite01=’Présence d’’un satellite’<br />

poids=’Poids de la limule (en kg)’;<br />

run;<br />

8. On préfère au graphique précédent une représentation des probabilités a posteriori<br />

p ↦→ P(présence d’un satellite | poids = p).<br />

Pour représenter ces probabilités a posteriori, nous allons définir une partition en classes de poids<br />

et estimer les probabilités sur ces classes. Une partition de la variable poids s’obtient facilement<br />

en utilisant un format défini par l’utilisateur. Le code suivant définit un nouveau format qui, une<br />

fois appliqué à la variable poids crée une partition des observations en 6 catégories de poids :<br />

proc format;<br />

value fpoids<br />

0-1.5=’inf 1.5’<br />

1.5-2=’1.5-2’<br />

2-2.5=’2-2.5’<br />

2.5-3=’2.5-3’<br />

3-3.5=’3-3.5’<br />

3.5-100=’sup 3.5’;<br />

run;<br />

data RegLog.Limulebis;<br />

set RegLog.Limule;<br />

format poids fpoids. ;<br />

run;<br />

2


Vérifiez que le format a été correctement affecté à la variable poids dans la tableRegLog.Limulebis<br />

à l’aide d’une proc print. Il est maintenant possible de calculer les moyennes dans chaque classe<br />

à l’aide d’une proc means :<br />

proc means data=RegLog.Limulebis mean;<br />

class poids;<br />

var satellite01 poids;<br />

output out=RegLog.Limulemean mean=presencesat poidsmean;<br />

run;<br />

Affichez la table RegLog.Limulemean dans laquelle les moyennes ont été enregistrées. Quel est le<br />

format de la variable poidsmean de cette table Affectez un format numérique à cette variable<br />

et dressez le graphique des probabilités a posteriori.<br />

9. Le logarithme des côtes :<br />

Ω : p ↦→<br />

P(présence d’un satellite | poids = p)<br />

P(pas de satellite | poids = p)<br />

est-il linéaire en la variable poids Proposez une première estimation rudimentaire des coefficients<br />

du modèle de régression <strong>logistique</strong> de la variable Satellite01 par la variable poids.<br />

Régression <strong>logistique</strong> de Satellite01 par le poids<br />

10. Effectuez la régression <strong>logistique</strong> de la présence d’un satellite par le poids de la limule :<br />

proc logistic data = RegLog.Limule plot(only) = (roc effect);<br />

title ’Régression <strong>logistique</strong> par le poids’;<br />

model satellite01(event = ’1’) = poids / expb ctable pprob= 0.5;<br />

run;<br />

Analysez le code et interprétez les sorties.<br />

Régression <strong>logistique</strong> de Satellite01 par une variable catégorielle<br />

11. Cas dichotomique : effectuez la régression <strong>logistique</strong> de la présence d’un satellite par le variable<br />

dark :<br />

proc logistic data = RegLog.Limule plots(only) = oddsratio ;<br />

title ’Régression <strong>logistique</strong> avec dark’;<br />

class dark;<br />

model satellite01(event = ’1’) = dark / expb ctable pprob= 0.5;<br />

oddsratio dark;<br />

run;<br />

12. Cas polytomique : effectuez la régression <strong>logistique</strong> de la présence d’un satellite par le variable<br />

épine :<br />

proc logistic data = RegLog.Limule plots(only) = oddsratio;<br />

title ’Régression <strong>logistique</strong> avec epine’;<br />

class epine (param=ref ref=’1’);<br />

model satellite01(event = ’1’) = epine / expb ctable pprob= 0.5;<br />

oddsratio epine;<br />

run;<br />

3


Régression <strong>logistique</strong> de Satellite01 par le poids et la couleur<br />

13. Définir formellement le modèle de régression <strong>logistique</strong> qui explique la présence d’un satellite<br />

par les variables poids et dark.<br />

14. Utilisez le code ci-dessous pour ajuster ce modèle de régression <strong>logistique</strong> sur les données. Y-at-il<br />

un ≪ effet carapace foncée ≫ Comparez graphiquement les probabilités a posteriori pour les<br />

carapaces foncées et claires.<br />

proc logistic data = RegLog.Limule plots(only) = (roc oddsratio effect);<br />

title ’Régression <strong>logistique</strong> avec poids et dark’;<br />

class dark;<br />

model satellite01(event = ’1’ ) = poids dark / expb ctable pprob= 0.5;<br />

oddsratio dark;<br />

oddsratio poids;<br />

run;<br />

Régression <strong>logistique</strong> et sélection de variable<br />

15. Discutez les sorties fournies par la code ci-dessous :<br />

proc logistic data = RegLog.Limule plots(only) = (roc oddsratio effect);<br />

title ’Régression <strong>logistique</strong> avec les quatre variables’;<br />

class epine dark;<br />

model satellite01 = poids largeur epine dark / ctable pprob= 0.5;<br />

oddsratio dark;<br />

oddsratio poids;<br />

oddsratio largeur;<br />

oddsratio epine;<br />

effectplot slicefit(sliceby=epine plotby=dark);<br />

run;<br />

16. Effectuez une sélection de variable par un algorithme backward pour identifier un modèle de<br />

régression <strong>logistique</strong> parcimonieux en utilisant l’option selection = stepwise dans l’instruction<br />

model :<br />

proc logistic data = RegLog.Limule plots(only) = (roc oddsratio effect);<br />

title ’Régression <strong>logistique</strong> et sélection de variable’;<br />

class epine dark;<br />

model satellite01 = poids largeur epine dark / ctable pprob= 0.5<br />

selection = backward ;<br />

run;<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!