I have a couple of questions related to Pivot designs and conditions that I (unsuccessfully) tried to solve by myself.
My design is actually pretty simple, it contains three alternatives (car, bike, walk) and they have in common one attribute, travel time. I use the travel time by car as a reference for the bike and walk travel times, which seems to work. In addition, I add some conditions regarding another attribute that bike and walk have in common, which also seems to work. The code is as follows:
- Code: Select all
Design
;alts = Car, Bike, Walk, None
;alg = swap(stop=total(3500 iterations))
;rows = 24
;block = 4
;eff=(mnl, d, mean)
;cond:
if(Bike.lts_bike = 1, Walk.lts_walk = [1,2]) ,
if(Bike.lts_bike = 2, Walk.lts_walk = [1,2,3]) ,
if(Bike.lts_bike = 3, Walk.lts_walk = [2,3,4]) ,
if(Bike.lts_bike = 4, Walk.lts_walk = [3,4])
;model:
U(Car) = b1[(u,-0.025, -0.0080)] * tt_car.ref[4,6,8] +
b2 * tc_car[0.3] +
b3[(u,-0.0088, -0.0036)]* pc_car[0,1,3] /
U(Bike) = b1 * tt_car.piv[0%,25%,50%] +
b5 * lts_bike[1,2,3,4] /
U(Walk) = b1 * tt_car.piv[100%,125%,150%] +
b7 * lts_walk[1,2,3,4]
$
However, I finally opted for a heterogeneous pivot design, i.e. three different designs for three different respondent segments (in this case, people that travel short, medium, and long trips). Well, in this case, when I run it, I obtain the message Error: An attribute, 'walk.lts_walk', specified in the ';cond' property could not be found. Code is as follows:
- Code: Select all
Design
;alts(short) = Car, Bike, Walk, None
;alts(medium) = Car, Bike, Walk, None
;alts(long) = Car, Bike, Walk, None
;alg = swap(stop=total(3500 iterations))
;rows = 24
;block = 4
;eff= fish(mnl, d,mean)
;fisher(fish)= design1(short[0.33], medium[0.43],long[0.24])
;cond:
if(Bike.lts_bike = 1, Walk.lts_walk = [1,2]) ,
if(Bike.lts_bike = 2, Walk.lts_walk = [1,2,3]) ,
if(Bike.lts_bike = 3, Walk.lts_walk = [2,3,4]) ,
if(Bike.lts_bike = 4, Walk.lts_walk = [3,4])
;model(short):
U(Car) = b1[(u,-0.025, -0.0080)] * tt_car.ref[6] +
b2 * tc_car[0.3] +
b3[(u,-0.0088, -0.0036)]* pc_car[0,1,3] /
U(Bike) = b1 * tt_car.piv[0%,25%,50%] +
b5 * lts_bike[1,2,3,4] /
U(Walk) = b1 * tt_car.piv[100%,125%,150%] +
b7 * lts_walk[1,2,3,4]
;model(medium):
U(Car) = b1[(u,-0.025, -0.0080)] * tt_car.ref[14] +
b2 * tc_car[1] +
b3[(u,-0.0088, -0.0036)]* pc_car[0,1,3] /
U(Bike) = b1 * tt_car.piv[25%,50%,75%] +
b5 * lts_bike[1,2,3,4] /
U(Walk) = b1 * tt_car.piv[200%,250%,300%] +
b7 * lts_walk[1,2,3,4]
;model(long):
U(Car) = b1[(u,-0.025, -0.0080)] * tt_car.ref[17] +
b2 * tc_car[1.5] +
b3[(u,-0.0088, -0.0036)]* pc_car[0,1,3] /
U(Bike) = b1 * tt_car.piv[50%,65%,75%] +
b5 * lts_bike[1,2,3,4] /
U(Walk) = b1 * tt_car.piv[300%,400%,500%] +
b7 * lts_walk[1,2,3,4]
$
At this point, I have three doubts regarding this design:
1. Why the conditional clauses are not working in the second case?
2. I’ve noted that, although I define levels for the car travel time in the first case, the design always assigns the lowest value (that happens also in the heterogeneous case, so I fixed them). Is it not possible to define levels for the reference?
3. This is a more general and conceptual question. I wonder about the possible problems of data correlation in this type of designs. Obviously, all travel times will be almost perfect correlated since two of them are calculated from another one. Although the coefficients produced by the model will supposedly have lowest possible standard error, could not highly correlated data be an impediment to the significance of the parameters?
Thanks for your help.