# Choice Conjoint-Analysis design for 2-way interactions

I want to set up a design for a conjoint-analysis with 5 Variables X1, X2, X3, X4, X5. All variables are factors.

X1 can have 5 different realisations, X2 can have 3, X3 can have 4, X4 can have 3 and X5 can have 2. So there are 360 different combinations of the 5 variables.

I will have around 500 to 600 participants. Each of them will see 8 different choice-sets + 2 additional hold-out-task sets.

Every participant can choose between 3 different offers or the "no-choice" option.

My goal is to find out how important each of the 5 variables is. But I am expecting an interactions-effect between X1 und X3.

All combinations of the 5 variables are plausible in real life and therefor should be used.

My approach to this problem so far:

Im generating a full design with gen.factorial:

dat <- gen.factorial(c(5,3,4,3,2), factors="all")


After this I am using optFederov (which doesn't do anything since its a full design I guess?)

dat.frac <- optFederov(~.^2,dat,nTrials=360, criterion="D", nRepeats=20)


To split the design into Blocks I use optBlock

dat.frac.block2 <- optBlock(~.^2,dat.frac$design,blocksize=rep(8,45),criterion="D", nRepeats = 10)  I am not sure if this function does more than randomising, since it is a full design? So far i think my approach is ok? I have my set for alternative 1 for all the 360 possible combinations: dat.frac.block2$design


The first 8 lines in there are Block1, the second 8 Block2 and so on.

Unfortunately I am not sure about how to creating the additional alternative 2 and alternative 3.

I tried the function rotation.design like this:

des_number <- rotation.design(
candidate.array = data_set,
attribute.names = list(
X1 = c("1", "2", "3", "4", "5"),
X2 = c("1", "2", "3"),
X3 = c("1", "2", "3", "4"),
X4 = c("1", "2", "3"),
X5 = c("1", "2")),
nalternatives = 3,
nblocks = 1,
row.renames = FALSE,
randomize = TRUE,
seed = 123)


Using this function does rearrange my Blocks (but I think I don't want them to be rearranged, because I used optBlock just before to arrange them the way they are).

Is rotation.design an appropriate function for my problem and I simply have to reorder my data again (back to the order after optBlock)?

Is there anything I have to take into account specifically when trying to include a 2-way interaction?

For data-analyzing I want to use hierarchial bayes (using ChoiceModelR).

I hope you can understand my problem. I can provide further information if needed.