Skip to contents

Random profile pairs (or k-tuples) over the supplied attributes, the design for a forced-choice conjoint. Profiles are sampled uniformly and independently per attribute; set a seed beforehand for a reproducible design (the function never sets one).

Usage

conjoint_design(attributes, n_tasks = 5L, profiles_per_task = 2L)

Arguments

attributes

Named list of level vectors.

n_tasks

Tasks per respondent.

profiles_per_task

Profiles shown per task (default 2).

Value

A tibble: task, profile, one column per attribute, carrying the original attribute list in attr(x, "attributes"). Render it into forced-choice items with conjoint_instrument() and estimate with amce() after administration. Profiles within a task are guaranteed distinct (a forced choice between identical profiles measures nothing); when the attribute space is too small to allow distinct profiles, duplicates remain and a warning says so.

Examples

set.seed(110)
conjoint_design(
  list(price = c("$10", "$20"), speed = c("slow", "fast")),
  n_tasks = 4)