BookmarkSubscribeRSS Feed
welovekhy
Calcite | Level 5

Hi,

 

I am designing a discrete choice experiment for five factors (three factors with two levels; and two factors with three levels). I think there should be an orthogonal design for 36 questions at 100% D-efficiency but I just cannot find a way to do so. I ran the following:

 

%MktRuns(2 2 3 2 3)
%MktEx (2 2 3 2 3, n=72)
%choiceff(data=design, model=class(x1-x5/sta),
nsets=36, flags=2, maxiter=100, seed=121, options=relative, beta=zero)

 

However, the design I am getting is not orthogonal, and the max D-efficiency design I got is around 85. Is there something I am missing for the steps to design the choice experiments? Thank you very much for your time and input in advance.

 

Regards,

Kim 

3 REPLIES 3
PaigeMiller
Diamond | Level 26

In terms of a factorial design, if you have three factors at 2 levels and two factors at three levels, then a full factorial would be

 

2x2x2x3x3 = 72 runs

 

You could take a one-half fraction of the 2x2x2 part, which would yield 36 runs, and would be perfectly orthogonal (D-Efficiency of 100% for the proper model), but you could not estimate the three-way interaction between the three 2-level factors. PROC FACTEX can do this for you.

--
Paige Miller
welovekhy
Calcite | Level 5

Thank you very much for the reply! 

 

I am referring to the methods to use SAS macros in "Kuhfeld, W. (2010). Marketing research methods in SAS. Cary, NC, SAS-Institute TS-722, 1–1309.", and below are the syntax I used to create the design- but with even 100 iterations, and despite that MktRuns suggest that 18 questions should be able to create a 100% efficient design, the design created only achieves 80% efficiency and not balanced, and not orthogonal. Any suggestions would be greatly appreciated!!

 

SAS Syntax: 
*Version 1
%MktRuns(3**6) 
%MktEx (3**6, n=36)
%mktlab(data=design, int=f1-f2, out=final)
%choiceff(data=Final, model=class(x1-x6/sta), nsets=18, flags=f1-f2, seed=145, maxiter=100, options=relative, beta=zero)
 
*Version 2 
%MktRuns(3**6) 
%MktEx (18 3**6, n=36, seed=238, balance=12)
%mktlab(data=randomized, vars=Set x1-x6)
proc sort data=Final; by set; run; 
proc print; by set; id set; run; 
 
%choiceff(data=final, init=final(keep=set), model=class(x1-x6/sta), 
nsets=18, nalts=2, options=relative, beta=zero)
%mkteval(data=Best)
 
*Version 3 
%MktRuns(3**6) 
%MktEx (3**6, n=3*3*3*3*3*3)
%choiceff(data=design, model=class(x1-x6/sta), nsets=18, flags=f1-f2, seed=145, maxiter=100, options=relative, beta=zero)
 
 
PaigeMiller
Diamond | Level 26

Create a 3x3 full factorial in PROC FACTEX. Output the results to a data set.

 

Next, create a one-half fraction of the 2x2x2 matrix in PROC FACTEX, and then output the results to a data set, using the DESIGNREP= option, the name of the 3x3 full factorial data set being pointed to by the DESIGNREP= option.

 

Here is an example: https://documentation.sas.com/?cdcId=pgmmvacdc&cdcVersion=9.4&docsetId=qcug&docsetTarget=qcug_factex...

 

--
Paige Miller