I'm trying to generate a partial profile with 60 rows in 10 blocks for a DCE pilot.
I initially created a candidate set with 9000 rows, where I had applied my reject rule criteria to restrict the combinations in the candidate set. I then restricted this dataset so that only the records that had 3 overlapping attributes were included, and this brought it down to around 2200 rows.
Using the candidate set of 2200 rows, when I try to generate my pilot data from this, Ngene is unable to produce a valid design. Is there something wrong in my script (included below), or is Ngene unable to find appropriate scenarios due to the restrictions I set in my reject criteria when creating my candidate set? Or could it be due to two of my attributes having 8-10 levels?
I initially tried adding level balancing but this produced no results and when I stopped the execution, I had the error:
- however this was with the candidate set with 2200 rows, so I'm not sure why the row count didn't match.[Modified Fedorov] ERROR: Unable to find a design that satisfies the specified attribute level frequency constraints. You may need to relax some attribute level constraints, combinatorial constraints (if specified), or dominance checks. The candidate set has 1886 rows
When no level balance is included and I run the script, I immediately get a single evaluation response with an MNL D-Error of "Undefined", and all of the subsequent evaluations are reported as invalid designs (the counter rapidly ticks up about 50 evaluations per second). This is my script:
- Code: Select all
Design
;alts = optA*, optB*, neither
;rows = 60
;block = 10
;eff = (mnl,d)
;alg = mfederov(candidates=candidate_set.csv)
;model:
U(optA) = b1.dummy[0.000001|0.000002|0.000003|0.000004|0.000005|0.000006|0.000007|0.000008|0.000009] * meds[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+ b2.dummy[0.000001|0.000002|0.000003|0.000004|0.000005|0.000006|0.000007] * support[0, 1, 2, 3, 4, 5, 6, 7]
+ b3.dummy[0.000001] * contact[0, 1]
+ b4.dummy[0.000001|0.000002|0.000003|0.000004] * distance[0, 1, 2, 3, 4]
+ b5.dummy[0.000001|0.000002] * addition[0, 1, 2]
+ b6.dummy[0.000001|0.000002] * tools[0, 1, 2]
+ b7.dummy[0.000001|0.000002|0.000003] * cost[0, 1, 2, 3]
/
U(optB) = b1 * meds
+ b2 * support
+ b3 * contact
+ b4 * distance
+ b5 * addition
+ b6 * tools
+ b7 * cost
$