Page 1 of 1

TTO

PostPosted: Fri Oct 14, 2022 2:47 pm
by CMA
We are considering conducting a time trade-off (TTO) study using Ngene.
We would like to have a trade-off between perfect health and a specific health state, and would like to examine the impact of each attribute that made up the health state.
I would like to create "orthogonal" and "D-efficient designs" in Ngene, like URL research.
https://doi.org/10.1016/j.jval.2019.06.008
How about a program like this?

"orthogonal"
Code: Select all
Design
;alts = alt1, none
;rows = 25
;orth = sim
;model:
U(alt1) = b1 * A[0,1,2,3,4] + b2 * B[0,1,2,3,4] + b3 * C[0,1,2,3,4] + b4 * D[0,1,2,3,4] + b5 * E[0,1,2,3,4] + b6 * F[0,1,2,3,4]
$

"D-efficient designs"
Code: Select all
Design
;alts = alt1, none
;rows = 25
;eff = (mnl,d)
;model:
U(alt1) = b1 * A[0,1,2,3,4] + b2 * B[0,1,2,3,4] + b3 * C[0,1,2,3,4] + b4 * D[0,1,2,3,4] + b5 * E[0,1,2,3,4] + b6 * F[0,1,2,3,4]
$

Tell me there was another good way.
Please give me your opinion.

Re: TTO

PostPosted: Fri Oct 14, 2022 9:51 pm
by Michiel Bliemer
You seem to include an optout alternative, does this represent "perfect health" or "a specific health state"? They sound more like a status quo alternative with a specific level rather than an optout alternative.

For orthogonal designs you can use design coding 0,1,2,3, etc. However, for efficient designs you need to specify the utility function exactly as how you could estimate it in model estimation software, so perhaps you are using dummy coding such as b1.dummy[0|0|0|0] * A[1,2,3,4,0] where 0 is the base level. Also, you can consider non-zero priors to increase the efficiency of the data collection.

Michiel

Re: TTO

PostPosted: Mon Oct 17, 2022 10:18 am
by CMA
I want to create "a specific health state".
For the orthogonal array, we want to use the design we created.
For efficient designs, I'm going to use dummy coding.
However, is it a problem that the D-error becomes larger than 1 when dummy coding is used?
My feeling is that it should be smaller than 0.1.
Code: Select all
Design
;alts = alt1, none
;rows = 50
;eff = (mnl,d)
;model:
U(alt1) = b1.dummy[0|0|0|0] * A[0,1,2,3,4] + b2.dummy[0|0|0|0] * B[0,1,2,3,4] + b3.dummy[0|0|0|0] * C[0,1,2,3,4] + b4.dummy[0|0|0|0] * D[0,1,2,3,4] + b5.dummy[0|0|0|0] * E[0,1,2,3,4] + b6.dummy[0|0|0|0] * F[0,1,2,3,4]
$

Re: TTO

PostPosted: Mon Oct 17, 2022 3:57 pm
by Michiel Bliemer
You cannot compare D-errors across different models. If you are going to use dummy coding in model estimation, you need to use dummy coding for generating an efficient design. When I run the syntax it states a D-error of 0.52, which is fine. Note that D-errors are case specific and depend also on the unit you choose for your variables, so you should ignore the absolute value as it has no meaning.

Michiel