Publié le :
Statistique CREATION_INTERNE

Analyse d'une expérience diallèle avec des effets aléatoires multi-membres

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 nommé 'diallel'. Il simule les données de temps de floraison pour des croisements entre 8 lignées parentales différentes, réparties en deux blocs. Une particularité est la création d'une variable 'sym' pour identifier les croisements réciproques. Ensuite, la procédure `PROC GLIMMIX` est utilisée pour ajuster un modèle statistique. Le modèle définit 'block' comme un effet fixe et plusieurs effets aléatoires, notamment un effet multi-membre 'line' construit à partir des parents 'p' et 'm' grâce à l'instruction `EFFECT`. Finalement, PROC PRINT est utilisé pour afficher une partie de la matrice de plan (design matrix) des effets aléatoires générée par GLIMMIX.
Analyse des données

Type : CREATION_INTERNE


Les données sont entièrement générées dans le premier DATA step. Une boucle `do` structure les croisements et l'instruction `INPUT` lit les valeurs de temps de floraison directement depuis les `datalines` intégrées au code.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP construit la table 'diallel'. Il utilise des boucles imbriquées pour générer toutes les combinaisons de croisements entre 8 parents ('p' et 'm'). Les données de la variable 'time' sont lues à partir des lignes de données internes (datalines) en utilisant l'indicateur '@@' pour lire plusieurs observations sur une même ligne.
Copié !
1DATA diallel;
2 label time = 'Flowering time in days';
3 DO p = 1 to 8;
4 DO m = 1 to 8;
5 IF (m ne p) THEN DO;
6 sym = trim(left(min(m,p))) || ',' || trim(left(max(m,p)));
7 DO block = 1 to 2;
8 INPUT time @@;
9 OUTPUT;
10 END;
11 END;
12 END;
13 END;
14 DATALINES;
1514.4 16.2 27.2 30.8 17.2 27.0 18.3 20.2 16.2 16.8 18.6 14.4 16.4 16.0
1615.4 16.5 14.8 14.6 18.6 18.6 15.2 15.3 17.0 15.2 14.4 14.8 10.8 13.2
1731.8 30.4 21.0 23.0 24.6 25.4 19.2 20.0 29.8 28.4 12.8 14.2 13.0 14.4
1816.2 17.8 11.4 13.0 16.8 16.3 12.4 14.2 16.8 14.8 12.6 12.2 9.6 11.2
1914.6 18.8 12.2 13.6 15.2 15.4 15.2 13.8 18.0 16.0 10.4 12.2 13.4 20.0
2020.2 23.4 14.2 14.0 18.6 14.8 22.2 17.0 14.3 17.3 9.0 10.2 11.8 12.8
2114.0 16.6 12.2 9.2 13.6 16.2 13.8 14.4 15.6 15.6 15.6 11.0 13.0 9.8
2215.2 17.2 10.0 11.6 17.0 18.2 20.8 20.8 20.0 17.4 17.0 12.6 13.0 9.8
23;
24RUN;
2 Bloc de code
PROC GLIMMIX
Explication :
Ce bloc utilise la procédure GLIMMIX pour l'analyse statistique. 'class' définit les variables de classification. L'instruction `effect line = mm(p m)` crée un effet multi-membre 'line' à partir des variables 'p' et 'm'. Le modèle est défini avec 'time' comme variable dépendante, 'block' comme effet fixe, et 'line', 'sym', 'p', 'm' et leur interaction 'p*m' comme effets aléatoires. L'option `outdesign(z)=zmat` sauvegarde la matrice de plan des effets aléatoires dans une table 'zmat'.
Copié !
1PROC GLIMMIX DATA=diallel outdesign(z)=zmat;
2 class block sym p m;
3 effect line = mm(p m);
4 model time = block;
5 random line sym p m p*m;
6RUN;
3 Bloc de code
PROC PRINT
Explication :
Ce bloc affiche les 10 premières observations de la table 'zmat' (créée par PROC GLIMMIX) où la variable 'block' est égale à 1. Il imprime les variables 'p', 'm', 'time' et les 8 premières colonnes de la matrice de plan des effets aléatoires (_z1 à _z8).
Copié !
1 
2PROC PRINT
3DATA=zmat(where=(block=1) obs=10);
4var p m time _z1-_z8;
5RUN;
6 
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