Output method for D-efficiency and C-efficiency

This forum is for posts that specifically focus on Ngene.

Moderators: Andrew Collins, Michiel Bliemer, johnr

Output method for D-efficiency and C-efficiency

Postby CMA » Mon Jul 12, 2021 1:27 pm

I would greatly appreciate if you could help me as there are things that I don't know.
I run the syntax and D-error = 0.058002 and D-optimality = Undefined.
How can I modify syntax to output the results of D-efficiency and C-efficiency?

Code: Select all
Design
;alts = alt1*, alt2*
;rows = 100
;eff = (mnl,d)
;alg = mfederov(candidates = NgeneDataset.csv,stop=total(10000 iterations))
;model:
U(alt1) = b1 * A[0,1] + b2 * B[0,1] + b3 * C[0,1] + b4 * D[0,1] +b5 * E[0,1] + b6 * F[0,1] + b7 * G[0,1] + b8 * H[0,1] + b9 * I[0,1] + b10 * J[0,1,2]/
U(alt2) = b1 * A + b2 * B + b3 * C + b4 * D +b5 * E + b6 * F + b7 * G + b8 * H + b9 * I + b10 * J
$
CMA
 
Posts: 34
Joined: Mon Jun 14, 2021 3:42 pm

Re: Output method for D-efficiency and C-efficiency

Postby Michiel Bliemer » Mon Jul 12, 2021 2:51 pm

1. D-optimality is undefined because you are not generating an orthogonal design; the D-optimality percentage is typically only defined when using optimal orthogonal designs, i.e. when using ;orth = ood.
2. C-error is the D-error of a ratio of parameters. You can optimise for the C-error by using the ;wtp command, see page 99 of the Ngene manual.

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

Re: Output method for D-efficiency and C-efficiency

Postby CMA » Mon Jul 12, 2021 4:54 pm

Thank you for your quick response.
1. I learned that D-efficiency cannot be output when using the Federov algorithm.
2. I modified the program learning from the manual page 99, WTP(wtp1) estimate is "NaN" and WTP(wtp1) n is 0, what is wrong?

Code: Select all
Design
;alts = alt1*, alt2*
;rows = 100
;eff = (mnl,d)
;wtp = wtp1(b1,b2,b3,b4,b5,b6,b7,b8,b9/b10)
;alg = mfederov(candidates = NgeneDataset.csv,stop=total(10000 iterations))
;model:
U(alt1) = b1 * A[0,1] + b2 * B[0,1] + b3 * C[0,1] + b4 * D[0,1] +b5 * E[0,1] + b6 * F[0,1] + b7 * G[0,1] + b8 * H[0,1] + b9 * I[0,1] + b10 * J[0,1,2]/
U(alt2) = b1 * A + b2 * B + b3 * C + b4 * D +b5 * E + b6 * F + b7 * G + b8 * H + b9 * I + b10 * J
$
CMA
 
Posts: 34
Joined: Mon Jun 14, 2021 3:42 pm

Re: Output method for D-efficiency and C-efficiency

Postby Michiel Bliemer » Wed Jul 14, 2021 2:17 pm

There is no issue with D-optimality and the modified Federov algorithm. If you just use ;alg = mfederov (without the candidate set) then Ngene will compute a D-optimal percentage. There may be some specific structure in the candidate set that does not allow its computations. Note that this percentage has no meaning for non-orthogonal designs, so it can simply be ignored.

WTP values divide by b10 in your example, but the prior of b10 is set to 0. Clearly, it is not possible to divide by 0 so the C-error is not defined in your case, you need to provide reliable priors close to their true values, e.g. parameter estimates from a pilot study.

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

Re: Output method for D-efficiency and C-efficiency

Postby CMA » Thu Jul 15, 2021 12:54 pm

Thank you for all your help.
Sorry for repeating myself, but I still have some questions.

1. I'm thinking of using the Fedorov algorithm from Efficient Designs, but is it common to use D-error to evaluate it? In the study I found, it was evaluated by C-efficiency. If it can be rated by D-error, is it safe to say that it is good if it is less than 1?
2. I could not find in the manual how to set the prior distribution. Could you please tell me how to set up the prior distribution, even if it is just an example?

Best Regards.
CMA
 
Posts: 34
Joined: Mon Jun 14, 2021 3:42 pm

Re: Output method for D-efficiency and C-efficiency

Postby Michiel Bliemer » Thu Jul 15, 2021 1:51 pm

1. The D-error is the most common measure for efficiency evaluation. The C-error is not common, I would say less than 1% of the applications, the vast majority (at least 90% I think) uses the D-error. Note that a good D-error value is case-specific, but always the lower the better. These values will generally be smaller than 1, values larger than 1 are often suspicious. D-optimality in optimal orthogonal designs are expressed as a percentage since for these designs it is known a-priori what the best D-error value is.

2. See for example Section 7.2.2 in the Ngene manual. If b1 has a prior value of 0.1 you would use b1[0.1] in your syntax. You currently have not specified any priors and therefore it generates a warning in the output log screen and defaults the priors to zero.

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

Re: Output method for D-efficiency and C-efficiency

Postby CMA » Thu Aug 29, 2024 10:07 am

It’s been a while since I last asked, so I’d like to ask a question.
Is it still true that D-error values will generally be smaller than 1, and values larger than 1 are often suspicious?
For example, if there are three designs with D-error of less than 0.1, 0.5, and 0.9, which one is considered superior?
CMA
 
Posts: 34
Joined: Mon Jun 14, 2021 3:42 pm

Re: Output method for D-efficiency and C-efficiency

Postby Michiel Bliemer » Thu Aug 29, 2024 1:14 pm

D-errors are usually smaller than 1 and will usually only exceed one if there are a lot of dummy coded variables, or if there is an identification issue.

If there are 3 designs for EXACTLY THE SAME MODEL (i.e., the same utility functions, the same coding, the same levels, the same model type, the same priors) then the design with the smallest D-error is best. If there are any difference in the model (e.g. different priors or different coding) then the D-errors are no longer comparable.

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


Return to Choice experiments - Ngene

Who is online

Users browsing this forum: Google [Bot] and 23 guests

cron