Publicado el :
Estadística CREATION_INTERNE

Análisis de un experimento dialélico con efectos aleatorios de múltiples miembros

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza creando un conjunto de datos llamado 'diallel'. Simula los datos de tiempo de floración para cruces entre 8 líneas parentales diferentes, distribuidas en dos bloques. Una particularidad es la creación de una variable 'sym' para identificar los cruces recíprocos. Luego, se utiliza el procedimiento `PROC GLIMMIX` para ajustar un modelo estadístico. El modelo define 'block' como un efecto fijo y varios efectos aleatorios, incluyendo un efecto de múltiples miembros 'line' construido a partir de los padres 'p' y 'm' gracias a la instrucción `EFFECT`. Finalmente, se utiliza PROC PRINT para mostrar una parte de la matriz de diseño de efectos aleatorios generada por GLIMMIX.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan completamente en el primer DATA step. Un bucle `do` estructura los cruces y la instrucción `INPUT` lee los valores de tiempo de floración directamente desde las `datalines` integradas en el código.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP construye la tabla 'diallel'. Utiliza bucles anidados para generar todas las combinaciones de cruces entre 8 padres ('p' y 'm'). Los datos de la variable 'time' se leen desde las líneas de datos internas (datalines) usando el indicador ' @@' para leer múltiples observaciones en una misma línea.
¡Copiado!
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 @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
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 Bloque de código
PROC GLIMMIX
Explicación :
Este bloque utiliza el procedimiento GLIMMIX para el análisis estadístico. 'class' define las variables de clasificación. La instrucción `effect line = mm(p m)` crea un efecto de múltiples miembros 'line' a partir de las variables 'p' y 'm'. El modelo se define con 'time' como variable dependiente, 'block' como efecto fijo, y 'line', 'sym', 'p', 'm' y su interacción 'p*m' como efectos aleatorios. La opción `outdesign(z)=zmat` guarda la matriz de diseño de efectos aleatorios en una tabla 'zmat'.
¡Copiado!
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 Bloque de código
PROC PRINT
Explicación :
Este bloque muestra las 10 primeras observaciones de la tabla 'zmat' (creada por PROC GLIMMIX) donde la variable 'block' es igual a 1. Imprime las variables 'p', 'm', 'time' y las 8 primeras columnas de la matriz de diseño de efectos aleatorios (_z1 a _z8).
¡Copiado!
1 
2PROC PRINT
3DATA=zmat(where=(block=1) obs=10);
4var p m time _z1-_z8;
5RUN;
6 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : S A S S A M P L E L I B R A R Y