La procédure SURVEYLOGISTIC pour les données d'enquêtes

La version 8 a vu l'arrivée de trois procédures SAS/STAT® pour sélectionner et analyser les données d'enquêtes :

  • SURVEYSELECT,
  • SURVEYMEANS
  • et SURVEYREG.

Avec SAS®9, SAS/STAT® propose deux nouvelles procédures :

  • SURVEYFREQ
  • et SURVEYLOGISTIC

La procédure SURVEYSELECT fournit diverses méthodes pour sélectionner des échantillons probabilistes aléatoires.
Les procédures SURVEYMEANS et SURVEYREG analysent les données provenant d'échantillons d'enquêtes complexes.
La procédure SURVEYFREQ fournit les tableaux de fréquence à simple ou plusieurs entrées et les tableaux croisés pour les données d'enquêtes, ainsi que des tests d'association entre variables.
La procédure SURVEYLOGISTIC, qui fait l'objet de cet article, réalise des régressions logistiques.

Pourquoi une procédure SURVEYLOGISTIC ?

Les réponses catégorielles binaires, ordinales ou nominales sont très fréquentes dans les données d'enquêtes. L'analyse logistique est très souvent utilisée pour trouver les relations entre ces réponses discrètes et des variables explicatives.
La procédure LOGISTIC du module SAS/STAT permet de réaliser une analyse logistique sur des données provenant d'un échantillon aléatoire, mais elle ne peut être utilisée dans le cas d'échantillons complexes collectés selon un plan d'enquête, avec éventuellement des stratifications, des classifications, ou/et des poids inégaux.

En effet, la procédure LOGISTIC calcule les statistiques sous l'hypothèse que l'échantillon est issu d'une population infinie par simple tirage aléatoire, ce qui n'est pas toujours vérifié. Cela affecte alors les erreurs standards et du même coup tout ce qui est calculé à partir des fonctions de la matrice de covariance des paramètres.

Tout comme la procédure LOGISTIC, la procédure SURVEYLOGISTIC calcule les paramètres estimés par la méthode du maximum de vraisemblance, mais l'estimation de la variance se fait de façon différente. L'information concernant la structure de l'échantillon, les strates, les classes et les poids est incorporée (Taylor expansion approximation). Un ajustement est également fait pour réduire le biais en cas de petit échantillon, et le facteur de correction correspondant à une population finie est inclus si l'échantillon est sans remise.

Les plans d'enquêtes supportés par la procédure SURVEYLOGISTIC sont indiqués dans la FAQ What sample designs are supported by the survey procedures, and how do I code them ?  

A propos de la syntaxe de la procédure SURVEYLOGISTIC

La syntaxe de la procédure SURVEYLOGISTIC reprend en grande partie la syntaxe de la procédure LOGISTIC, qui ne sera pas détaillée ici. Les instructions STRATA, CLUSTER et WEIGHT, et les options de la procédure RATE et TOTAL permettent de définir la structure de l'échantillon.

- L'instruction STRATA désigne la ou les variables caractères ou numériques qui forment les strates des données. Si la variable est formatée, ce sont les valeurs formatées qui définissent les niveaux des strates. En ajoutant l'option LIST, un résumé sur la composition des strates sera donné.
- L'instruction CLUSTER nomme la ou les variables qui forment les clusters de l'échantillon. S'il existe des strates, les clusters sont emboîtés dedans.
CLUSTER et STRATA peuvent apparaître plusieurs fois.
- L'instruction WEIGHT indique le poids affecté à chaque observation. C'est un nombre positif.
- L'option RATE est un nombre entre 0 et 1 (ou 1 et 100) indiquant le taux d'échantillonnage, ou une table de données avec une variable _RATE_ indiquant le taux d'échantillonnage de chaque strate.
- L'option TOTAL est le nombre total d'unités d'échantillonnage ou une table de données avec une variable _TOTAL_ indiquant le nombre total d'unités d'échantillonnage dans chaque strate.
Si une des deux options RATE ou TOTAL est utilisée, le facteur de correction pour une population finie (fcp) est appliqué.

Exemple de syntaxe basé sur les données de l'exemple 69.1 de la documentation en ligne:

Il s'agit d'une enquête consistant à évaluer le degré de satisfaction (de 1 à 5) d'élèves de 4 classes à propos de 3 designs 1, 2 et, 3.
L'échantillon est fabriqué à partir de 300 élèves tirés au hasard dans chaque classe sans remise. Les classes constituent les strates.

/* voici la table contenant le nombre total d'unités d'échantillonnage pour chaque strate*/
 data Enrollment;
  input class _TOTAL_; /* la variable doit s’appeler _TOTAL_ */
 datalines;
 1 3734
 2 3565
 3 3903
 4 4196
;
run;

/* Les résultats sont collectés et sauvegardés dans la table WebSurvey.*/
data WebSurvey;
  do class=1 to 4; /* 4 classes sondées */
    do design=1 to 3; /* 3 designs à évaluer */
      do rating=1 to 5; /* taux de satisfaction */
        input counts @@;
        output;
      end;
    end;
   end;
datalines;
10 34 35 16 15
5 6 24 30 25
11 14 20 34 21
1 12 26 27 25
10 18 32 23 26
15 22 34 9 20
8 21 23 26 22
1 4 15 33 47
16 19 30 23 12
11 14 24 33 18
8 15 25 30 22
2 34 30 18 16
;
/* calcul des poids affectés à chaque strate. Il est égal à la réciproque de la probabilité de sélection */
data WebSurvey; set WebSurvey;
  if class=1 then weight=3734/300;
  if class=2 then weight=3565/300;
  if class=3 then weight=3903/300;
  if class=4 then weight=4196/300;
run;

proc surveylogistic data=WebSurvey total=Enrollment;
/* spécifie la table contenant les tailles de chaque strate */
 strata class; /* spécifie la variable de strate */
 freq counts;
 class design (param=ref ref='3');
 model rating (descending order=data) = design;
 weight weight; /* spécifie la variable de pondération */
run;
 

   Remarque :
Actuellement, pour obtenir les probabilités prédites, il faut utiliser la procédure LOGISTIC, comme l'indique la FAQ suivante :
How can I get predicted values from my model fit with PROC SURVEYLOGISTIC ?  

La procédure SURVEYLOGISTIC vient s'ajouter aux procédures d'enquêtes déjà existantes dans SAS.
Elle est appelée à s'enrichir de nouvelles fonctionnalités dans les futures versions.
Pour plus d'information, vous pouvez vous reporter à la documentation en ligne.

Blandine Colas
Consultant Support Clients SAS France