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.
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!
proc glimmix data=diallel outdesign(z)=zmat;
class block sym p m;
effect line = mm(p m);
model time = block;
random line sym p m p*m;
run;
1
PROC GLIMMIXDATA=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;
6
RUN;
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!
proc print data=zmat(where=(block=1) obs=10);
var p m time _z1-_z8;
run;
1
2
PROC PRINT
3
DATA=zmat(where=(block=1) obs=10);
4
var p m time _z1-_z8;
5
RUN;
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
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.