Page 1 of 1

Determine an efficient design on the fly

PostPosted: Thu Oct 18, 2018 2:40 pm
by jshr
Hi

I would like to design a experiment with 2 unlabeled alternatives + status quo, where the attribute levels in SQ will be determined by respondents choices. First, I am thinking about what is the correct way to generate such a design. I don't think the pivot design discussed in section 8.3.2 in the manual is the solution (they are for approach (a) and (b) on page 148, if I understand correctly). A straightforward way doing this could be generating multiple (sub)designs with different status quo. Is this theoretically correct? If so, then how can we access the efficiency of the design as a whole?

Second, if the above strategy is appropriate, I have the following for generating a (sub)design (with a particular status quo)

Code: Select all
Design
;alts = alt1*, alt2*, quo
;rows = 8
;eff=(rppanel,d)
;alg = mfederov(candidates=10000)
; require:
quo.fire = 0, quo.habitat = 0, quo.visibility = 0, quo.cost = 0,
alt1.cost <> 0,
alt2.cost <> 0
; reject:
alt1.habitat=0 and alt1.fire=2,
alt1.visibility=2 and alt1.fire=2,
alt2.habitat=0 and alt2.fire=2,
alt2.visibility=2 and alt2.fire=2

;model:
U(alt1) = f.dummy[n, 1,1|n,0.5,1]*fire[0,1,2] +
          h.dummy[n,-2,1|n,-0.5,1]*habitat[0,1,2] +
          v.dummy[n,-1,1|n,-0.3,1]*visibility[0,1,2] +
          c[-0.01]*cost[0,100, 200, 300]
/
U(alt2) = f*fire + h*habitat + v*visibility + c*cost
/
U(quo) =  const[0]+f*fire + h*habitat + v*visibility + c*cost

$


And I got the message saying "Error: There were problems generating a fractional factorial of choice tasks. For the modified federov algorithm, increasing the number of candidates might assist." I tried to increase the number of candidates, but this seems not working. Any suggestion?

Thank you,
Jimmy

Re: Determine an efficient design on the fly

PostPosted: Fri Oct 19, 2018 10:46 am
by Michiel Bliemer
You can create a heterogeneous design, e.g. three designs for three different status quo levels, and then optimise for the joint efficiency using a syntax that looks as follows:

Design
;alts(SQ1) = alt1*, alt2*, quo
;alts(SQ2) = alt1*, alt2*, quo
;alts(SQ3) = alt1*, alt2*, quo
;rows = 8
;eff = fish(mnl,d)
;fisher(fish) = des1(SQ1[0.33]) + des2(SQ2[0.33]) + des3(SQ3[0.34])
;model(SQ1):
...
;model(SQ3):
...
;model(SQ3):
...
$

You will have to make assumptions regarding the proportions of SQ levels that you except to be reported by the respondents, in this syntax I have simply assumed 33%, 33%, and 34%.

I will answer the question on the syntax in a separate response below.

Please note for future reference that questions regarding Ngene syntax should be posted in the Ngene forum, this forum is for more general questions regarding stated choice experiments.

Michiel

Re: Determine an efficient design on the fly

PostPosted: Fri Oct 19, 2018 10:52 am
by Michiel Bliemer
The issue with the syntax was that you were actually using a too large candidate set. Given the constraints you added, including the dominance checks, there do not exist 10,000 feasible choice tasks. Reducing it works.

I made a few other changes. I changed rppanel to mnl because it is almost impossible to optimise for rppanel. Designs optimised for MNL tend to also be efficient for panel RP models. Once you open the design, you can EVALUATE the efficiency of the design for the RPPANEL model. Note that such an evaluation takes a little bit of time so when you tick the box to inspect the RPPANEL model you need to be patient.

I added ;rdraws = gauss(3) and ;rep = 500 such that the RPPANEL evaluation is appropriate.

Code: Select all
Design
;alts = alt1*, alt2*, quo
;rows = 8
;eff=(mnl,d)
;alg = mfederov(candidates=1000)
;rdraws = gauss(3)
;rep = 500
;require:
quo.fire = 0, quo.habitat = 0, quo.visibility = 0, quo.cost = 0,
alt1.cost <> 0,
alt2.cost <> 0
;reject:
alt1.habitat=0 and alt1.fire=2,
alt1.visibility=2 and alt1.fire=2,
alt2.habitat=0 and alt2.fire=2,
alt2.visibility=2 and alt2.fire=2
;model:
U(alt1) = f.dummy[n, 1,1|n,0.5,1]*fire[0,1,2] +
          h.dummy[n,-2,1|n,-0.5,1]*habitat[0,1,2] +
          v.dummy[n,-1,1|n,-0.3,1]*visibility[0,1,2] +
          c[-0.01]*cost[0,100, 200, 300] /
U(alt2) = f*fire + h*habitat + v*visibility + c*cost /
U(quo) =  const[0]+f*fire + h*habitat + v*visibility + c*cost
$


Michiel

Re: Determine an efficient design on the fly

PostPosted: Fri Oct 19, 2018 1:45 pm
by jshr
Thank you so much Michiel. I will post the questions regarding syntax on NGENE board.