Converts a conjoint_design() into one forced-choice item per task:
each respondent receives a fresh independent profile draw at administration
and is asked to pick one by label.
Arguments
- design
A
conjoint_design()object.- question
Question text shown above each task's profiles.
Value
A panel_instrument whose items are task-level choice items
(ids task_1, task_2, ...; options "Profile 1", "Profile 2",
...). Each item carries the attribute levels used for its respondent-level
draws, and the instrument's $conjoint field carries the design metadata
for conjoint_amce().
Details
Only option order is randomized; item order stays fixed so the task ids remain interpretable. Attribute order inside each profile description follows the design's column order. The profiles recorded in the design are not reused across respondents.
Examples
set.seed(110)
panel <- panel_from_margins(list(group = c(A = .5, B = .5)), n = 4)
design <- conjoint_design(
list(economy = c("weak", "strong"), taxes = c("lower", "higher")),
n_tasks = 3)
instrument <- conjoint_instrument(design, "Which candidate do you prefer?")
instrument
cfg <- LLMR::llm_config("groq", "openai/gpt-oss-20b")
if (FALSE) { # \dontrun{
panel_administer(panel, instrument, cfg)
} # }