%MACRO GE(DATA=,RESPONSE =Y,ALPHA=Z); * Yield-stability index , Cotes, J. M., Ņustez, C. E., Martinez, R. and Estrada, N. 2002. American Journal of Potato Research 79:211-218.; %PUT DATA=>>>&DATA<<<; %PUT RESPONSE=>>>&RESPONSE<<<; %PUT ALPHA=>>>&ALPHA<<<; PROC SORT DATA=&DATA; BY ENV; PROC MIXED DATA=&DATA COVTEST INFO IC; CLASS ENV GENOTYPE BLOCK; MODEL &RESPONSE=GENOTYPE/DDFM = SATTERTH OUTPRED=RES&RESPONSE(RENAME=(RESID=RES&RESPONSE)); RANDOM ENV BLOCK(ENV) ENV*GENOTYPE; LSMEANS GENOTYPE/CL PDIFF=ALL ALPHA=&ALPHA; MAKE 'DIFFS' OUT=DIFF; MAKE 'LSMEANS' OUT=LSMEANS(RENAME=(ESTIMATE=_LSMEAN_)); MAKE 'COVPARMS' OUT=COV2; TITLE 'ANALISIS DE VARIANZA COMBINADO POR SASMIXED'; PROC UNIVARIATE PLOT NORMAL DATA=RES&RESPONSE; VAR RES&RESPONSE; TITLE 'NORMALITY TEST FOR THE ERROR VARIANCE OF COMBINED ANOVA'; PROC MIXED DATA=&DATA COVTEST INFO IC; CLASS GENOTYPE ENV BLOCK; MODEL &RESPONSE=GENOTYPE/DDFM = SATTERTH; RANDOM INT BLOCK/SUB=ENV; RANDOM GENOTYPE/SUB=ENV GROUP=GENOTYPE; MAKE 'COVPARMS' OUT=COV(RENAME=(ESTIMATE=SH_&RESPONSE STDERR=SE&RESPONSE)); TITLE 'SHUKLAS VARIANCE'; DATA COV2; SET COV2; IF NOT(COVPARM='Residual') THEN DELETE; CME=ESTIMATE; DROP ESTIMATE; PROC SORT DATA=LSMEANS; BY _LSMEAN_; DATA R1; SET LSMEANS; _LSMEAN_=ROUND(_LSMEAN_,.00001); Y=LAG(_LSMEAN_); DATA RANGOS; RANK&RESPONSE= 1; LOOP: RANK&RESPONSE=RANK&RESPONSE; SET R1; IF Y='.' THEN Y=_LSMEAN_; IF _LSMEAN_=Y THEN RANK&RESPONSE=RANK&RESPONSE; ELSE RANK&RESPONSE=RANK&RESPONSE+ 1;OUTPUT; GOTO LOOP; PROC MEANS DATA=DIFF NWAY NOPRINT; VAR DF STDERR; OUTPUT OUT=DIFF MAX=DFMAX SEMX&RESPONSE MIN=DFMIN SEMN&RESPONSE; DATA KANG; MERGE COV2 DIFF; LOOP:SET RANGOS; T=TINV((1-(&ALPHA/2)),DFMIN); LSD=T*SEMX&RESPONSE; OUTPUT; GOTO LOOP; PROC MEANS DATA=KANG NWAY NOPRINT; VAR _LSMEAN_; OUTPUT OUT=S1 MEAN=_LSPROM_; DATA LSD; SET S1; LOOP: SET KANG; DIF=_LSMEAN_-_LSPROM_; IF 9*LSD0.10 THEN S&RESPONSE=0; IF 0.05MYS&RESPONSE THEN SELC&RESPONSE='SI'; ELSE SELC&RESPONSE='NO'; OUTPUT; GOTO LOOP; PROC SORT; BY MEAN&RESPONSE; PROC PRINT; VAR GROUP GENOTYPE MEAN&RESPONSE RANK&RESPONSE RLSD&RESPONSE IS&RESPONSE SH_&RESPONSE SE&RESPONSE S&RESPONSE YS&RESPONSE SELC&RESPONSE; TITLE 'YIELD-STABILITY INDEX FOR EACH GENOTYPE'; PROC MEANS DATA=YS&RESPONSE NWAY NOPRINT; VAR T DFMIN SEMX&RESPONSE LSD MYS&RESPONSE _LSPROM_; OUTPUT OUT=PARMS MEAN=T DFMIN SEMX&RESPONSE LSD MYS&RESPONSE LSPROM ; PROC PRINT; TITLE 'MEANS FOR OBTAIN YIELD-STABILITY INDEX'; PROC SORT DATA=YS&RESPONSE; BY GENOTYPE; %MEND GE;