Realistic efficient designs with prices and quantities
Posted: Tue Jan 23, 2018 8:35 am
Hi,
I am designing a v simple task where people choose their favourite food shopping baskets, hoping to predict substitution patterns from price changes. I therefore need to show respective product quantities and associated prices in each task, and need to estimate a price parameter and parameters for each food type (say maize, rice, fish). If quantities for each food type can be 0,1,2, I need price to be dependent on the quantity. I have explored the following NGENE options:
1) separate price and quantity parameters, using conditional statements to restrict prices according to quantity => too many parameters, huge (but perhaps meaningless?) Sp value for our sample size
e.g. U(A)=rice.effects[0|0]*rice[0,1,2]+rice_price[0]*rice_price[0,3,6] + same for maize, other products
2) having levels of product=the price of that product. E.g. rice[$0,$3,$6] then reverse engineering the design such that I infer if the quantity was 0,1(if attribute was $3),2(if attribute was $6) bags of rice, then recovering the price of the basket through summing the levels of each outside of NGENE. In piloting, this has resulted in a v meaningless price coefficient, presumably since the "global" parameter basket price (=sum of attribute levels in an alternative) is not in the design.
We also have a condition that the total price of the basket should be something reasonable. I am posting syntax of this second option below (prices varying from the above due to currency).
This feels like it should be a really simple task to design - am I missing something obvious here? Would appreciate any insights
All the best,
Matt
Design
;alts=A,B,C
;rows=5
;eff=(MNL,d)
;alg = mfederov(candidates=2000000)
;reject:
A.maize_price+A.cabb_price+A.rice_price+A.fish_price+A.chips_price>1100,
B.maize_price+B.cabb_price+B.rice_price+B.fish_price+B.chips_price>1100,
C.maize_price+C.cabb_price+C.rice_price+C.fish_price+C.chips_price>1100,
A.maize_price+A.cabb_price+A.rice_price+A.fish_price+A.chips_price<800,
B.maize_price+B.cabb_price+B.rice_price+B.fish_price+B.chips_price<800,
C.maize_price+C.cabb_price+C.rice_price+C.fish_price+C.chips_price<800
;model:
U(A)=maize_price[0.1]*maize_price[0,150,300,450,600]+
cabb_price[0.1]*cabb_price[0,150,300]+
rice_price[0.1]*rice_price[0,250,500]+
fish_price[0.1]*fish_price[0,150]+
chips_price[0.1]*chips_price[0,200]
/
U(B)=maize_price[-.1]*maize_price[0,150,300,450,600]+
cabb_price[0.1]*cabb_price[0,150,300]+
rice_price[0.1]*rice_price[0,250,500]+
fish_price[0.1]*fish_price[0,150]+
chips_price[0.1]*chips_price[0,200]
/
U(C)=maize_price[0.1]*maize_price[0,150,300,450,600]+
cabb_price[0.1]*cabb_price[0,150,300]+
rice_price[0.1]*rice_price[0,250,500]+
fish_price[0.1]*fish_price[0,150]+
chips_price[0.1]*chips_price[0,200]
$
I am designing a v simple task where people choose their favourite food shopping baskets, hoping to predict substitution patterns from price changes. I therefore need to show respective product quantities and associated prices in each task, and need to estimate a price parameter and parameters for each food type (say maize, rice, fish). If quantities for each food type can be 0,1,2, I need price to be dependent on the quantity. I have explored the following NGENE options:
1) separate price and quantity parameters, using conditional statements to restrict prices according to quantity => too many parameters, huge (but perhaps meaningless?) Sp value for our sample size
e.g. U(A)=rice.effects[0|0]*rice[0,1,2]+rice_price[0]*rice_price[0,3,6] + same for maize, other products
2) having levels of product=the price of that product. E.g. rice[$0,$3,$6] then reverse engineering the design such that I infer if the quantity was 0,1(if attribute was $3),2(if attribute was $6) bags of rice, then recovering the price of the basket through summing the levels of each outside of NGENE. In piloting, this has resulted in a v meaningless price coefficient, presumably since the "global" parameter basket price (=sum of attribute levels in an alternative) is not in the design.
We also have a condition that the total price of the basket should be something reasonable. I am posting syntax of this second option below (prices varying from the above due to currency).
This feels like it should be a really simple task to design - am I missing something obvious here? Would appreciate any insights
All the best,
Matt
Design
;alts=A,B,C
;rows=5
;eff=(MNL,d)
;alg = mfederov(candidates=2000000)
;reject:
A.maize_price+A.cabb_price+A.rice_price+A.fish_price+A.chips_price>1100,
B.maize_price+B.cabb_price+B.rice_price+B.fish_price+B.chips_price>1100,
C.maize_price+C.cabb_price+C.rice_price+C.fish_price+C.chips_price>1100,
A.maize_price+A.cabb_price+A.rice_price+A.fish_price+A.chips_price<800,
B.maize_price+B.cabb_price+B.rice_price+B.fish_price+B.chips_price<800,
C.maize_price+C.cabb_price+C.rice_price+C.fish_price+C.chips_price<800
;model:
U(A)=maize_price[0.1]*maize_price[0,150,300,450,600]+
cabb_price[0.1]*cabb_price[0,150,300]+
rice_price[0.1]*rice_price[0,250,500]+
fish_price[0.1]*fish_price[0,150]+
chips_price[0.1]*chips_price[0,200]
/
U(B)=maize_price[-.1]*maize_price[0,150,300,450,600]+
cabb_price[0.1]*cabb_price[0,150,300]+
rice_price[0.1]*rice_price[0,250,500]+
fish_price[0.1]*fish_price[0,150]+
chips_price[0.1]*chips_price[0,200]
/
U(C)=maize_price[0.1]*maize_price[0,150,300,450,600]+
cabb_price[0.1]*cabb_price[0,150,300]+
rice_price[0.1]*rice_price[0,250,500]+
fish_price[0.1]*fish_price[0,150]+
chips_price[0.1]*chips_price[0,200]
$