Exemples d'Analyses de Régression Logistique

Niveau de difficulté
Débutant
Publié le :
Le script démontre l'utilisation de PROC LOGISTIC à travers quatre exemples distincts. Le premier analyse des facteurs influençant l'incarcération à partir de données de fréquence. Le deuxième modélise le lien entre le cancer du poumon et le tabagisme. Le troisième exemple construit un modèle prédictif pour un résultat binaire, l'enregistre avec 'outmodel', puis l'utilise pour scorer de nouvelles observations. Le dernier exemple utilise la syntaxe 'événements/essais' (model failed/trial) pour analyser des données de défaillance, génère des graphiques et effectue également un scoring sur de nouvelles données.
Analyse des données

Type : CREATION_INTERNE


Toutes les données ('jail', 'lungcancer', 'car', 'oring', 'new') sont créées directement dans le script à l'aide d'instructions DATA STEP et de données en ligne (CARDS).

1 Bloc de code
DATA STEP Data
Explication :
Crée la table 'jail' en lisant des données catégorielles et de fréquence en ligne pour une analyse de contingence.
Copié !
1DATA jail;
2INPUT live $ arrest $ jail $ count;
3CARDS;
4n y y 42
5n y n 109
6n n y 17
7n n n 75
8y y y 33
9y y n 175
10y n y 53
11y n n 359
12;
13RUN;
2 Bloc de code
PROC LOGISTIC
Explication :
Applique un modèle de régression logistique sur la table 'jail'. 'jail' est la variable dépendante, et 'live' et 'arrest' sont les prédicteurs. L'option 'FREQ' pondère les observations par la variable 'count'.
Copié !
1PROC LOGISTIC DESCENDING;
2FREQ count;
3CLASS live arrest;
4MODEL jail = live arrest / SCALE = NONE AGGREGATE;
5RUN;
3 Bloc de code
DATA STEP Data
Explication :
Crée la table 'lungcancer' à partir de données en ligne pour modéliser la relation entre le cancer et le tabagisme.
Copié !
1DATA lungcancer;
2INPUT cancer $ smoking $ count;
3CARDS;
41 1 9
51 0 5
60 1 46
70 0 40
8;
9RUN;
4 Bloc de code
PROC LOGISTIC
Explication :
Modélise la probabilité de cancer ('cancer') en fonction du tabagisme ('smoking'). L'option 'DESCENDING' modélise P(cancer='1').
Copié !
1PROC LOGISTIC DATA = lungcancer DESCENDING;
2FREQ count;
3CLASS smoking cancer;
4MODEL cancer = smoking / SCALE = NONE AGGREGATE;
5RUN;
5 Bloc de code
DATA STEP Data
Explication :
Crée la table 'car' avec deux prédicteurs continus ('x1', 'x2') et une réponse binaire ('y').
Copié !
1DATA car;
2INPUT x1 x2 y;
3CARDS;
445 2 0
540 4 1
660 3 0
750 2 0
855 2 0
950 5 1
1035 7 1
1165 10 1
1253 2 0
1348 1 0
1437 5 1
1531 7 1
1640 4 0
1775 8 1
1843 9 1
1949 2 0
2037.5 4 1
2171 11 1
2234 5 0
2327 6 1
24;
25RUN;
6 Bloc de code
PROC LOGISTIC
Explication :
Crée un modèle de régression logistique basé sur les données 'car' et le sauvegarde dans un item nommé 'predmodel' sans afficher de sortie.
Copié !
1 
2PROC LOGISTIC DESCENDING
3DATA =car outmodel=predmodel noprint;
4MODEL y = x1 x2 / SCALE = NONE AGGREGATE;
5RUN;
6 
7 Bloc de code
DATA STEP Data
Explication :
Crée une nouvelle table 'new' avec une observation à scorer.
Copié !
1DATA new;
2INPUT x1 x2 ;
3CARDS;
444 2.5
5;
6RUN;
8 Bloc de code
PROC LOGISTIC Data
Explication :
Utilise le modèle 'predmodel' précédemment sauvegardé pour calculer les probabilités prédites sur la table 'new'. Les résultats sont stockés dans 'newprob' puis affichés.
Copié !
1PROC LOGISTIC inmodel=predmodel;
2 score DATA=new out=newprob;
3RUN;
4PROC PRINT DATA=newprob; RUN;
9 Bloc de code
DATA STEP Data
Explication :
Crée la table 'oring' contenant des données sur la défaillance d'anneaux toriques (O-rings) avec le nombre d'essais, d'échecs et la température.
Copié !
1DATA oring;
2INPUT trial failed temp ;
3CARDS;
46 0 66
56 1 70
66 0 69
76 0 68
86 0 67
96 0 72
106 0 73
116 0 70
126 1 57
136 1 63
146 1 70
156 0 78
166 0 67
176 2 53
186 0 67
196 0 75
206 0 70
216 0 81
226 0 76
236 0 79
246 2 75
256 0 76
266 1 58
27;
28RUN;
10 Bloc de code
PROC LOGISTIC
Explication :
Ajuste un modèle logistique en utilisant la syntaxe 'événements/essais' (model failed/trial) pour modéliser la probabilité d'échec en fonction de la température.
Copié !
1 
2PROC LOGISTIC
3DATA=oring ;
4model failed/trial = temp ;
5 
6RUN;
7 
11 Bloc de code
PROC LOGISTIC Data
Explication :
Active les graphiques ODS et génère un graphique d'effet ('effect plot') pour la température. Les statistiques du modèle sont également sauvegardées dans la table 'pdata'.
Copié !
1ods graphics on;
2PROC LOGISTIC DATA=oring plots(only)=(effect);
3MODEL failed/trial = temp / SCALE=NONE AGGREGATE;
4OUTPUT out=pdata;
5RUN;
12 Bloc de code
PROC LOGISTIC Data
Explication :
Sauvegarde le modèle 'events/trials' dans 'predmodel', puis l'utilise pour prédire la probabilité d'échec pour de nouvelles valeurs de température. Les résultats sont affichés.
Copié !
1PROC LOGISTIC DESCENDING DATA =oring outmodel=predmodel noprint;
2MODEL failed/trial = temp / SCALE = NONE AGGREGATE;
3RUN;
4 
5DATA new;
6INPUT temp ;
7CARDS;
850
940
1030
11;
12RUN;
13 
14PROC LOGISTIC inmodel=predmodel;
15 score DATA=new out=newprob;
16RUN;
17 
18PROC PRINT DATA=newprob; RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.