Publié le :
Statistique CREATION_INTERNE

Test d'Adéquation (GOF) pour DataSet III

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par créer un jeu de données `haseman_soares` à partir de données en ligne (`datalines`). Il transforme ensuite ce jeu de données pour avoir une observation par fréquence. Deux macros, `%GOF_BB` et `%GOF_RCB`, sont appelées pour effectuer les tests d'adéquation. Les résidus générés par ces macros sont ensuite combinés, triés et classés pour préparer la création de graphiques Q-Q. Enfin, `PROC SGPANEL` est utilisée pour visualiser ces résidus sous forme de graphiques Q-Q, permettant d'évaluer la distribution des résidus.
Analyse des données

Type : CREATION_INTERNE


Le jeu de données initial `haseman_soares` est créé directement dans le script via une instruction `datalines`, puis transformé pour étendre les observations basées sur la colonne `freq`.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée le jeu de données `haseman_soares` en utilisant des données brutes fournies par `datalines`. Il lit les variables `m` et `t1` à `t10`. Une boucle `DO OVER` sur le tableau `tt` (composé de `t1` à `t10`) est utilisée pour transformer les données, en créant des lignes pour chaque `freq` non nulle, où `t` est l'indice de la colonne et `freq` est la valeur correspondante.
Copié !
1DATA haseman_soares;
2 INPUT m t1-t10;
3 array tt t1-t10;
4 DO over tt;
5 t = _i_ - 1;
6 freq = tt;
7 OUTPUT;
8 END;
9 keep m t freq;
10 DATALINES;
11 1 7 . . . . . . . . .
12 2 7 . . . . . . . . .
13 3 6 . . . . . . . . .
14 4 5 2 1 . . . . . . .
15 5 8 2 1 . 1 1 . . . .
16 6 8 . . . . . . . . .
17 7 4 4 2 1 . . . . . .
18 8 7 7 1 . . . . . . .
19 9 8 9 7 1 1 . . . . .
20 10 22 17 2 . 1 . 1 1 .
21 11 30 18 9 1 2 . 1 . 1 .
22 12 54 27 12 2 1 . 2 . . .
23 13 46 30 8 4 1 1 . 1 . .
24 14 43 21 13 3 1 . . 1 . 1
25 15 22 22 5 2 1 . . . . .
26 16 6 6 3 . 1 1 . . . .
27 18 3 . 2 1 . . . . . .
28 ;
2 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP post-traite le jeu de données `haseman_soares`. Il supprime les observations où `freq` est manquant. Pour chaque observation restante, il génère un nombre de lignes égal à la valeur de `freq`, dénormalisant ainsi les données pour que chaque ligne représente une seule occurrence de l'événement. Les variables `i` et `freq` sont ensuite supprimées.
Copié !
1DATA haseman_soares;
2 SET haseman_soares;
3 IF freq = . THEN delete;
4 DO i=1 to freq;
5 OUTPUT;
6 END;
7 drop i freq;
8 RUN;
3 Bloc de code
ODS
Explication :
Ces instructions ODS (Output Delivery System) activent la sortie HTML et la génération de graphiques pour les procédures suivantes. La sortie sera enregistrée au format HTML.
Copié !
1ods html;
2 ods graphics on;
4 Bloc de code
MACRO
Explication :
Ce bloc appelle deux macros SAS, `%GOF_BB` et `%GOF_RCB`, qui sont supposées réaliser des tests d'adéquation (Goodness-of-Fit). Elles prennent en entrée le jeu de données `haseman_soares` et utilisent les variables `t` et `m` pour leurs calculs. Le paramètre `title2` est utilisé pour ajouter un sous-titre aux sorties générées par les macros.
Copié !
1%GOF_BB (inds=haseman_soares,t=t,m=m,title2=DataSet III -- Haseman and Soares (1976));
2%GOF_RCB(inds=haseman_soares,t=t,m=m,title2=Dataset III -- Haseman and Soares (1976));
3 
5 Bloc de code
DATA STEP Data
Explication :
Ce DATA STEP combine les jeux de données `Resid_BB` et `Resid_RCB`, qui contiennent les résidus des tests d'adéquation, en un nouveau jeu de données unique nommé `Resid_BB_RCB`. Cela prépare les données pour une analyse et une visualisation unifiées.
Copié !
1*--- Construct QQ Plots;
2 DATA Resid_BB_RCB;
3 SET Resid_BB Resid_RCB;
4 RUN;
6 Bloc de code
PROC SORT
Explication :
La procédure `PROC SORT` trie le jeu de données `Resid_BB_RCB` par la variable `Distribution`. Ce tri est essentiel pour les étapes d'analyse subséquentes, notamment pour `PROC RANK` et `PROC SGPANEL` qui peuvent nécessiter des données triées par groupe.
Copié !
1 
2PROC SORT
3DATA=Resid_BB_RCB;
4BY Distribution;
5 
6RUN;
7 
7 Bloc de code
PROC RANK Data
Explication :
La procédure `PROC RANK` est utilisée pour calculer les rangs normaux (quantiles normaux) des résidus. Elle prend en entrée `Resid_BB_RCB` et crée un nouveau jeu de données `new_qqplots`. L'option `normal=blom` utilise la formule de Blom pour le calcul des scores normaux, et `ties=mean` gère les ex aequo en leur attribuant le rang moyen. La variable `Resid` est classée et le résultat est stocké dans la nouvelle variable `NQuant`, groupée par `Distribution`.
Copié !
1PROC RANK DATA=Resid_BB_RCB out=new_qqplots normal=blom ties=mean;
2 BY Distribution;
3 var Resid;
4 ranks NQuant;
5 RUN;
8 Bloc de code
PROC SGPANEL
Explication :
Ce bloc utilise `PROC SGPANEL` pour générer des graphiques Q-Q (quantile-quantile) des résidus. Le graphique est panélisé par `Distribution`, ce qui signifie qu'un graphique Q-Q distinct sera créé pour chaque valeur de `Distribution`. Les titres sont définis, les étiquettes des axes sont personnalisées et une ligne de régression (`reg`) est ajoutée au graphique pour faciliter la comparaison des résidus avec une distribution normale théorique.
Copié !
1PROC SGPANEL DATA=new_qqplots noautolegend;
2 panelby Distribution;
3 title1 "DataSet III -- Haseman and Soares (1976)";
4 title2 "QQ-Plots of Residuals based on Observed and Expected Frequencies";
5 label Resid="Residuals" NQuant="Normal Quantiles";
6 reg x=Resid y=NQuant;
7 RUN;
9 Bloc de code
ODS
Explication :
Ces instructions désactivent la génération de graphiques ODS et ferment la destination HTML, terminant ainsi la sortie des résultats dans le fichier HTML.
Copié !
1ods graphics off;
2 ods 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.
Informations de Copyright : Source: Haseman and Soares (1976)