Design and Analyze Choice-Based Conjoint Experiments

Design and evaluate choice-based conjoint survey experiments. Generate a variety of survey designs, including random designs, frequency-based designs, and D-optimal designs, as well as "labeled" designs (also known as "alternative-specific designs"), designs with "no choice" options, and designs with dominant alternatives removed. Conveniently inspect and compare designs using a variety of metrics, including design balance, overlap, and D-error, and simulate choice data for a survey design either randomly or according to a utility model defined by user-provided prior parameters. Conduct a power analysis for a given survey design by estimating the same model on different subsets of the data to simulate different sample sizes. Bayesian D-efficient designs using the 'cea' and 'modfed' methods are obtained using the 'idefix' package by Traets et al (2020) . Choice simulation and model estimation in power analyses are handled using the 'logitr' package by Helveston (2023) .


cbcTools cbcTools package logo: blue hexagonal badge with 'cbcTools' text and three bullet points representing choice options

CRANstatus metacrandownloads

This package provides functions for generating and inspecting survey designs for choice-based conjoint (CBC) survey experiments in R. Each function in the package begins with cbc_ and supports a step in the following process for designing and analyzing survey experiments:

Workflow diagram showing the six-step cbcTools process: Generate Profiles (cbc_profiles) -> Create Priors (cbc_priors) -> Generate Design (cbc_design) -> Inspect Design (cbc_inspect) -> Simulate Choices (cbc_choices) -> Assess Power (cbc_power) Workflow diagram showing the six-step cbcTools process: Generate Profiles (cbc_profiles) -> Create Priors (cbc_priors) -> Generate Design (cbc_design) -> Inspect Design (cbc_inspect) -> Simulate Choices (cbc_choices) -> Assess Power (cbc_power)

After installing the package, got to the Getting Started page to learn how to use the package.

Installation

You can install the latest version of {cbcTools} from CRAN:

install.packages("cbcTools")

or you can install the development version of {cbcTools} from GitHub:

# install.packages("pak")
pak::pak("jhelvy/cbcTools")

Load the package with:

library(cbcTools)

Alternatives

The cbcTools package is an open-source alternative to commercial design software such as Ngene and Sawtooth Software. Other open-source conjoint experiment design packages include idefix and spdesign.

Author, Version, and License Information

Citation Information

If you use this package for in a publication, I would greatly appreciate it if you cited it - you can get the citation by typing citation("cbcTools") into R:

citation("cbcTools")
#> To cite cbcTools in publications use:
#> 
#>   Helveston JP (2025). _cbcTools: Design and Analyze Choice-Based
#>   Conjoint Experiments_. R package,
#>   <https://jhelvy.github.io/cbcTools/>.
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Manual{,
#>     title = {{cbcTools}: Design and Analyze Choice-Based Conjoint Experiments},
#>     author = {John Paul Helveston},
#>     year = {2025},
#>     note = {R package},
#>     url = {https://jhelvy.github.io/cbcTools/},
#>   }

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("cbcTools")

0.7.1 by John Helveston, a year ago


https://github.com/jhelvy/cbcTools, https://jhelvy.github.io/cbcTools/


Report a bug at https://github.com/jhelvy/cbcTools/issues


Browse source code at https://github.com/cran/cbcTools


Authors: John Helveston [cre, aut, cph] (ORCID:


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports fastDummies, ggplot2, idefix, logitr, parallel, randtoolbox, rlang, tools, stats, utils

Suggests here, knitr, testthat, tibble


See at CRAN