%mktex(3 ** 3, n=3**3, seed=238) proc print data=design noobs; run; %choiceff(data=design, model=class(x1-x3 / standorth), nsets=9, flags=3, seed=289, maxiter=60, options=relative, beta=zero) proc print data=best; var x1-x3; id set; by set; run; proc print data=bestcov label; id __label; label __label = '00'x; var x:; run; %mktex(3 ** 9, n=2187, seed=368) %mktroll(design=Design, key=3 3, out=Rolled) %mktdups(generic, data=Rolled, factors=x1-x3, nalts=3, out=NoDups) proc print data=NoDups(obs=9) noobs; run; %choiceff(data=NoDups, model=class(x1-x3 / standorth), nsets=9, nalts=3, maxiter=20, seed=205, options=relative, beta=zero) proc print data=Best; var set _alt_ x1-x3; run; %mktex(4 ** 6, n=32, seed=104) %macro res; do i = 1 to nalts; do k = i + 1 to nalts; if all(x[i,] >= x[k,]) then bad = bad + 1; if all(x[k,] >= x[i,]) then bad = bad + 1; end; end; %mend; %choiceff(data=randomized, model=class(x1-x6 / sta), nsets=8, flags=4, seed=104, options=relative, restrictions=res, resvars=x1-x6, maxiter=20, beta=zero) proc format; value x1f 1='Bad' 2='Good' 3='Better' 4='Best'; value x2f 1='Small' 2='Average' 3='Bigger' 4='Large'; value x3f 1='Ugly' 2='OK' 3='Average' 4='Nice '; value x4f 1='Slow' 2='Fast' 3='Faster' 4='Fastest'; value x5f 1='Rough' 2='Normal' 3='Smoother' 4='Smoothest'; value x6f 1='$9.99' 2='$8.99' 3='$7.99' 4='$6.99'; run; proc print data=best label; label x1 = 'Quality' x2 = 'Size' x3 = 'Appearance' x4 = 'Speed' x5 = 'Smoothness' x6 = 'Price'; format x1 x1f. x2 x2f. x3 x3f. x4 x4f. x5 x5f. x6 x6f.; by set; id set; var x:; run; data Design; input Set Size Color Price ; datalines; 1 1 1 1 1 2 3 2 1 3 2 3 2 1 3 3 2 2 2 1 2 3 1 2 3 1 2 2 3 2 1 3 3 3 3 1 ; %choiceff(data=Design, init=Design(keep=Set), intiter=0, model=class(Size Color Price / sta), nsets=3, nalts=3, options=relative, beta=zero)