Publié le :
Statistique CREATION_INTERNE

Test d'homogénéité pour des résultats trinomiaux agrégés

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par une étape DATA pour générer un jeu de données nommé `test_of_homogeneity`. Il simule des réponses catégorielles (faible, moyen, élevé) pour 175 panélistes (`subjid`) et 8 mesures répétées par panéliste, pour deux produits différents. La simulation utilise la distribution multinomiale 'random-clumped' pour introduire une corrélation intra-cluster. Ensuite, `PROC SURVEYLOGISTIC` est utilisée pour modéliser la réponse `y` en fonction du `product` en tenant compte de la structure en cluster via l'instruction `CLUSTER subjid`. Des estimations et comparaisons de probabilités sont réalisées avec `LSMEANS` et `ESTIMATE`. Enfin, `PROC SURVEYFREQ` calcule un test du chi-carré pour l'association entre `product` et `y`, également ajusté pour le clustering.
Analyse des données

Type : CREATION_INTERNE


Les données sont entièrement générées au sein du premier DATA STEP. Le script simule des résultats trinomiaux pour deux produits en utilisant des paramètres prédéfinis (nombre de clusters, taille des clusters, probabilités sous-jacentes, corrélation intra-cluster) et la fonction `uniform()` pour la génération de nombres aléatoires.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP génère la table `test_of_homogeneity`. Il simule des données pour `n` sujets (clusters) et `m` observations par sujet, pour deux produits. Il utilise une méthode de simulation 'random-clumped multinomial' pour créer des réponses trinomiaux corrélées, en se basant sur des probabilités prédéfinies (`pi11`, `pi12`, etc.) et une corrélation intra-cluster (`rho2`). La graine (`seed`) est fixée pour la reproductibilité.
Copié !
1DATA test_of_homogeneity;
2n = 175; *--- Number of Panelists (Clusters) per Test Product;
3m = 8; *--- Number of Repeated Measurements per Panelist;
4rho2 = 0.15; *--- Intra Cluster Correlation;
5pi11 = 0.880; *--- Probability Category 1, Product 1;
6pi21 = 0.900; *--- Probability Category 1, Product 2;
7pi12 = 0.110; *--- Probability Category 2, Product 1;
8pi22 = 0.075; *--- Probability Category 2, Product 2;
9seed = 1974; *--- Initial Seed;
10rho = sqrt(rho2);
11cpi12 = pi11 + pi12;
12cpi22 = pi21 + pi22;
13 DO j = 1 to n;
14 *--- Product 1;
15 Product = 1;
16 Subjid = j;
17 yy = 3;
18 u = uniform( seed );
19 IF u < cpi12 THEN yy = 2;
20 IF u < pi11 THEN yy = 1;
21 DO i=1 to m;
22 Y = 3;
23 u = uniform( seed );
24 IF u < rho THEN y = yy;
25 ELSE DO;
26 uu = uniform( seed );
27 IF uu < cpi12 THEN y = 2;
28 IF uu < pi11 THEN y = 1;
29 END;
30 OUTPUT;
31 END;
32 *--- Product 2;
33 Product = 2;
34 Subjid = j + n;
35 yy = 3;
36 u = uniform( seed );
37 IF u < cpi22 THEN yy = 2;
38 IF u < pi21 THEN yy = 1;
39 DO i=1 to m;
40 Y = 3;
41 u = uniform( seed );
42 IF u < rho THEN y = yy;
43 ELSE DO;
44 uu = uniform( seed );
45 IF uu < cpi22 THEN y = 2;
46 IF uu < pi21 THEN y = 1;
47 END;
48 OUTPUT;
49 END;
50 END;
51keep subjid product y;
52RUN;
2 Bloc de code
PROC SURVEYLOGISTIC
Explication :
Cette procédure ajuste un modèle de régression logistique pour données d'enquête. Elle modélise la variable de réponse nominale `y` en fonction du `product` avec un lien logit généralisé (`link=glogit`). L'instruction `CLUSTER subjid` est cruciale car elle ajuste les erreurs standard pour la corrélation intra-sujet. Les instructions `LSMEANS` et `ESTIMATE` sont utilisées pour obtenir les probabilités ajustées par catégorie et pour comparer les produits.
Copié !
1ods html;
2PROC SURVEYLOGISTIC DATA=test_of_homogeneity;
3 class product subjid / param=glm;
4 model y (ref=First) = product / link=glogit varadj=morel;
5 cluster subjid;
6 lsmeans product / ilink;
7 estimate 'P12' int 1 product 1 0 / category='1' ilink;
8 estimate 'P22' int 1 product 0 1 / category='1' ilink;
9 estimate 'P13' int 1 product 1 0 / category='2' ilink;
10 estimate 'P23' int 1 product 0 1 / category='2' ilink;
11 estimate 'P12 Vs P22' product 1 -1 / category='1' exp;
12 estimate 'P13 Vs P23' product 1 -1 / category='2' exp;
13RUN;
14ods html close;
3 Bloc de code
PROC SURVEYFREQ
Explication :
Cette procédure calcule les fréquences et effectue un test du chi-carré (Rao-Scott) pour l'association entre la variable `product` et la réponse `y`. Comme `PROC SURVEYLOGISTIC`, elle utilise l'instruction `CLUSTER subjid` pour tenir compte de la conception de l'échantillonnage en grappes (clustering) et fournir des statistiques de test valides.
Copié !
1ods html;
2PROC SURVEYFREQ DATA=test_of_homogeneity;
3 cluster subjid;
4 tables product * y / chisq;
5RUN;
6ods html close;
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.
Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« Cette architecture de code est un standard de "best practice" pour les études sensorielles ou cliniques où un même sujet évalue plusieurs fois un produit. Elle assure que la significativité observée est bien due au produit et non à un artefact lié à la répétition des mesures. »