🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Obsidian | Level 7

## proc plan incomplete block design

Hej,

I try to design an incomplete block design for 13 replicates of 213 different plant varieties (considered as treatments) with block size 71. I tried following code:

``````title 'Generalized Cyclic Block Design';
proc plan seed=33373;
treatments Treatment=71 of 213 cyclic (  3	 7   9	 10	 14	 19	 23
30	33	39	 43	 54	 56	 58
62	63	64	 71	 73	 75	 83
88	89	90	 95	 99	100	101
104  109 110	112	113	114	117
119  121 122	124	126	129	133
136  139 142	147	148	151	152
153  157 160	161	162	168	173
174  176 179	180	185	187	188
189  193 200	204	206	210	211	213) 3;
factors Block=39 Plot=71;
output out=GCBD;
quit;

``````
I do not get the same replicate number for each variety (treatment). I also tried:

``````title 'Generalized Cyclic Block Design';
proc plan seed=33373;
treatments Treatment=71 of 213 random;
factors Block=39 Plot=71;
output out=GCBD;
quit;``````
The SAS example gives a perfect replicate number of 2:

``````title 'Generalized Cyclic Block Design';
proc plan seed=33373;
treatments Treatment=8 of 52 cyclic (1 2 3 4 32 43 46 49) 4;
factors Block=13 Plot=8;
output out=GCBD;
quit;``````
Does it have to do with how you create the initial block and the step?

with kind regards,
Veronique
1 ACCEPTED SOLUTION

Accepted Solutions
Obsidian | Level 7

## Re: proc plan incomplete block design

Thanks Dave. Based on the paper from Hans-Peter Piepho I tried the following successfully:

``````title 'resolvable IBD' ;
* example: v=30 treatments, block size k=5, r=3 replicates;
* nr of blocks needed per rep = 30/5 =6 ;
%let v=30;
%let k=5;
%let r=3;
%let b=6;

data TreatmentLabels;
do trt=1 to &v;
output;
end;
run;

data layout;
do rep=1 to &r;
do block=1 to &b;
do plot=1 to &k;
output;
end;
end;
end;
run;

proc optex data=TreatmentLabels seed=98221534;
class trt;
model trt;
blocks design=layout niter=10000 keep=10;
class rep block plot;
model rep, block(rep) / prior= 0, 10;
output out=RIBD;
run;
quit;``````

This however takes a very long time, and I need v=213, k=71, r=13, b=3. It still was not finished after 12 hours.

4 REPLIES 4
Jade | Level 19

## Re: proc plan incomplete block design

How did you come up with the initial block?

Obsidian | Level 7

## Re: proc plan incomplete block design

I just sampled 71 values without replacement from 1:213 and put them in increasing order

SAS Super FREQ

## Re: proc plan incomplete block design

See the examples of constructing incomplete block designs in the PROC OPTEX chapter of the SAS/QC User's Guide.

Obsidian | Level 7

## Re: proc plan incomplete block design

Thanks Dave. Based on the paper from Hans-Peter Piepho I tried the following successfully:

``````title 'resolvable IBD' ;
* example: v=30 treatments, block size k=5, r=3 replicates;
* nr of blocks needed per rep = 30/5 =6 ;
%let v=30;
%let k=5;
%let r=3;
%let b=6;

data TreatmentLabels;
do trt=1 to &v;
output;
end;
run;

data layout;
do rep=1 to &r;
do block=1 to &b;
do plot=1 to &k;
output;
end;
end;
end;
run;

proc optex data=TreatmentLabels seed=98221534;
class trt;
model trt;
blocks design=layout niter=10000 keep=10;
class rep block plot;
model rep, block(rep) / prior= 0, 10;
output out=RIBD;
run;
quit;``````

This however takes a very long time, and I need v=213, k=71, r=13, b=3. It still was not finished after 12 hours.

Discussion stats
• 4 replies
• 1064 views
• 0 likes
• 3 in conversation