Constraining Attribute Levels Within Blocks

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Constraining Attribute Levels Within Blocks

Postby tn73 » Wed Aug 28, 2019 9:03 am

Dear All,
I would like to constrain the attribute level of one of the attributes such that it is the same for all choice tasks within each block. For example, I have a cost ($) variable with 4 levels, and a cost-share (C_Share) variable (% of the cost) with 3 levels and I would like to generate a design with 48 rows and 16 blocks. The design has two alternatives, a status quo (altA), and Alternative B (altB). Cost is zero for the status quo and non-zero for altB. I would like to constrain altB.Cost level to be the same within each block, i.e., the cost level may vary across blocks but not across choice tasks within each block. Any suggestions on how I can do this? I have provided below, my syntax without the constraint.

Design
;alts = altA, altB
;rows = 48
;block = 16
;eff = (mnl,d)
;alg = swap
;rdraws = halton(250)
;model:
U(altA)= b1 /
U(altB) = b2.effects * A[0,1] + b3 * C_Share[25, 50, 75] + b4.effects * B[0,1] + b5.effects * C[0, 1, 2] + b6.effects * D[0,1]+ b7.effects * E[0,1] + b8 * Cost[100, 200, 600, 1,500] + b9 * Cost*C_Share $
tn73
 
Posts: 12
Joined: Thu May 16, 2013 9:29 pm

Re: Constraining Attribute Levels Within Blocks

Postby Michiel Bliemer » Wed Aug 28, 2019 9:42 am

Blocking aims to achieve attribute level balance within each block. You are requesting to actually have no attribute level balance within a block by having only one level for cost to appear. Therefore, this actually contradicts blocking.

Your best bet it to simply generate the design and do the blocking manually such that:
(1) cost level is the same within the block
(2) all other attribute levels appear more or less equally within the block (but perfect balance is not required).

I fixed some issues with your syntax:
Code: Select all
Design
;alts = altA, altB
;rows = 48
;eff = (mnl,d)
;model:
U(altA)= b1[0] /
U(altB) = b2.effects[0] * A[0,1] + b3[0] * C_Share[25, 50, 75] + b4.effects[0] * B[0,1] + b5.effects[0|0] * C[0, 1, 2] + b6.effects[0] * D[0,1]+ b7.effects[0] * E[0,1] + b8[0] * Cost[100, 200, 600, 1500] + b9[0] * Cost*C_Share
$


For example, I did some manual blocking for the first 4 blocks below (where I first sorted the design by cost level):

Code: Select all
altb.a   altb.c_share   altb.b   altb.c   altb.d   altb.e   altb.cost   block
1   25   1   2   1   0   100   1
1   25   0   0   0   1   100   1
0   25   0   1   1   0   100   1
0   75   0   0   0   1   100   2
1   25   0   0   1   1   100   2
0   75   1   2   1   0   100   2
0   75   1   0   0   0   100   3
0   25   1   0   1   1   100   3
0   75   0   2   0   0   100   3
0   25   0   2   0   1   100   4
1   75   0   2   1   1   100   4
1   75   1   1   0   0   100   4
0   75   1   0   1   0   200   
0   25   1   2   0   0   200   
1   75   1   0   1   1   200   
1   75   0   1   1   0   200   
1   25   1   0   1   0   200   
0   50   1   2   0   0   200   
0   25   0   1   0   0   200   
1   75   0   1   0   1   200   
0   25   1   1   0   0   200   
1   50   0   1   1   1   200   
1   50   1   1   0   0   200   
1   50   1   1   1   1   200   
0   50   1   1   1   1   600   
1   50   1   1   0   1   600   
1   50   0   2   0   1   600   
0   50   0   2   1   1   600   
1   50   1   0   0   1   600   
1   50   0   0   0   0   600   
1   50   1   2   1   1   600   
0   50   0   2   0   1   600   
0   50   0   0   1   1   600   
1   50   1   2   0   1   600   
0   50   0   1   1   0   600   
0   50   0   0   1   0   600   
0   75   1   2   0   1   1500   
1   25   0   2   1   0   1500   
1   75   1   0   0   0   1500   
1   25   1   2   1   0   1500   
0   75   0   0   1   0   1500   
0   25   1   0   0   1   1500   
1   75   0   2   1   0   1500   
1   75   0   1   0   0   1500   
0   25   0   1   0   1   1500   
1   25   0   0   0   0   1500   
0   25   1   1   1   1   1500   
0   75   1   1   1   1   1500   


Michiel
Michiel Bliemer
 
Posts: 1885
Joined: Tue Mar 31, 2009 4:13 pm

Re: Constraining Attribute Levels Within Blocks

Postby tn73 » Thu Aug 29, 2019 3:01 am

Hi Michiel,
Thanks for your prompt response.
tn73
 
Posts: 12
Joined: Thu May 16, 2013 9:29 pm


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: No registered users and 11 guests