Publié le :
Statistique CREATION_INTERNE

Exemple de Régression Logistique avec PROC SURVEYLOGISTIC

En attente de validation
Le script prépare d'abord les données pour une analyse d'enquête. Il définit des formats pour les variables catégorielles, puis crée deux jeux de données : 'Enrollment' pour les totaux de population par strate (le niveau de classe de l'étudiant) et 'WebSurvey' pour les réponses à l'enquête. Une pondération ('Weight') est calculée et ajoutée à 'WebSurvey' pour refléter le plan d'échantillonnage. Ensuite, deux modèles de régression logistique sont exécutés avec PROC SURVEYLOGISTIC pour analyser la préférence ('Rating') en fonction du design de l'enquête ('Design'). Le premier modèle utilise la fonction de lien logit par défaut, tandis que le second spécifie un logit généralisé (glogit) et une catégorie de référence.
Analyse des données

Type : CREATION_INTERNE


Tous les jeux de données ('Enrollment' et 'WebSurvey') sont créés directement dans le script à l'aide d'étapes DATA et de l'instruction 'datalines'. Aucune source de données externe n'est requise.

1 Bloc de code
PROC FORMAT
Explication :
Ce bloc définit un format utilisateur nommé 'Class' pour associer des libellés textuels à des valeurs numériques représentant le niveau de classe des étudiants.
Copié !
1PROC FORMAT;
2 value Class
3 1='Freshman' 2='Sophomore'
4 3='Junior' 4='Senior';
5RUN;
2 Bloc de code
DATA STEP Data
Explication :
Crée le jeu de données 'Enrollment' qui contient la population totale (_TOTAL_) pour chaque strate ('Class'). Ces totaux seront utilisés par PROC SURVEYLOGISTIC pour l'ajustement.
Copié !
1DATA Enrollment;
2 FORMAT Class Class.;
3 INPUT Class _TOTAL_;
4 DATALINES;
51 3734
62 3565
73 3903
84 4196
9;
10RUN;
3 Bloc de code
PROC FORMAT
Explication :
Définit deux formats utilisateurs : 'Design' pour les différentes versions de l'enquête web et 'Rating' pour les niveaux d'évaluation donnés par les répondants.
Copié !
1PROC FORMAT;
2 value Design 1='A' 2='B' 3='C';
3 value Rating
4 1='dislike very much'
5 2='dislike'
6 3='neutral'
7 4='like'
8 5='like very much';
9RUN;
4 Bloc de code
DATA STEP Data
Explication :
Crée le jeu de données d'enquête 'WebSurvey' sous forme agrégée. Le code lit le nombre ('Count') pour chaque combinaison de 'Class', 'Design' et 'Rating'. L'opérateur '@@' permet de lire plusieurs observations à partir d'une seule ligne de données.
Copié !
1DATA WebSurvey;
2 FORMAT Class Class. Design Design. Rating Rating.;
3 DO Class=1 to 4;
4 DO Design=1 to 3;
5 DO Rating=1 to 5;
6 INPUT Count @@;
7 OUTPUT;
8 END;
9 END;
10 END;
11 DATALINES;
1210 34 35 16 15 8 21 23 26 22 5 10 24 30 21
13 1 14 25 23 37 11 14 20 34 21 16 19 30 23 12
1419 12 26 18 25 11 14 24 33 18 10 18 32 23 17
15 8 15 35 30 12 15 22 34 9 20 2 34 30 18 16
16;
17RUN;
5 Bloc de code
DATA STEP Data
Explication :
Ce bloc calcule la variable de pondération ('Weight') pour chaque observation dans 'WebSurvey'. La pondération est le ratio de la population de la strate sur la taille de l'échantillon de cette strate (supposée être de 300 ici).
Copié !
1DATA WebSurvey;
2 SET WebSurvey;
3 IF Class=1 THEN Weight=3734/300;
4 IF Class=2 THEN Weight=3565/300;
5 IF Class=3 THEN Weight=3903/300;
6 IF Class=4 THEN Weight=4196/300;
7RUN;
6 Bloc de code
PROC PRINT
Explication :
Affiche les 20 premières observations du jeu de données 'WebSurvey' pour vérification, incluant la pondération calculée.
Copié !
1PROC PRINT DATA=WebSurvey(obs=20);
2RUN;
7 Bloc de code
PROC SURVEYLOGISTIC
Explication :
Exécute une première régression logistique. 'stratum' spécifie la variable de stratification, 'freq' indique que les données sont agrégées, 'class' définit la variable explicative catégorielle, 'model' définit la relation à tester, et 'weight' applique la pondération d'échantillonnage. 'total=Enrollment' fournit les totaux de population pour l'ajustement.
Copié !
1PROC SURVEYLOGISTIC DATA=WebSurvey total=Enrollment;
2 stratum Class;
3 freq Count;
4 class Design;
5 model Rating (order=internal) = design;
6 weight Weight;
7RUN;
8 Bloc de code
PROC SURVEYLOGISTIC
Explication :
Exécute une seconde régression logistique en utilisant une fonction de lien logit généralisé ('link=glogit'), qui est appropriée pour les réponses ordinales. La catégorie de référence pour la variable de réponse 'Rating' est définie à 'neutral'.
Copié !
1PROC SURVEYLOGISTIC DATA=WebSurvey total=Enrollment;
2 stratum Class;
3 freq Count;
4 class Design;
5 model Rating (ref='neutral') = Design /link=glogit;
6 weight Weight;
7RUN;
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.
Informations de Copyright : S A S S A M P L E L I B R A R Y | NAME: svlex1 | TITLE: Documentation Example 1 for PROC SURVEYLOGISTIC | PRODUCT: STAT | MISC: Logistic Regression with Different Link Functions for Stratified Cluster Sampling