Skip to contents

R-CMD-check CRAN Status Downloads

🛠️ The One-Stop Conjoint Shop: projoint


projoint is a general-purpose R package for conjoint analysis. It produces more reliable estimates of the quantities of interest based on questions explicitly about survey respondents’ choices between two options.

Understand how projoint structures conjoint data
  • The projoint package can organize survey data into two levels:
    • Choice-level (RECOMMENDED): Each choice respondents make between profiles
    • Profile-level: Each profile shown to respondents, including its attributes and levels
  • Learn more about data structure requirements
Understand how projoint corrects measurement error bias
  • Traditional conjoint analyses assume perfect reliability in respondent choices. However, respondents often make mistakes or respond inconsistently. projoint introduces a correction for this measurement error:
    • It estimates an Inter-Rater Reliability (IRR) metric based on repeated tasks.
    • It adjusts Marginal Means (MMs) and Average Marginal Component Effects (AMCEs) accordingly.
    • The correction ensures more accurate inference, especially when response instability is nontrivial.
  • Learn more about the correction methodology

🔧 Installation

Install the development version from GitHub
devtools::install_github("yhoriuchi/projoint")

🚀 Quick Start

Design your survey correctly
Read the results into R
  • Load your survey responses into R:
library(projoint)
dat <- read_Qualtrics("your_file.csv")
  • Follow the step-by-step guide to learn how to read survey data from Qualtrics for conjoint analysis.
Wrangle the data into structured form
  • Prepare the data for analysis:
dat <- reshape_projoint(
  .dataframe = dat,
  .outcomes = c(paste0("choice", 1:8), "choice1_repeated_flipped")
)
  • Follow the step-by-step guide to learn how to read and reshape data for conjoint analysis.
Analyze with automatic measurement error correction
  • Estimate Marginal Means (MMs) or Average Marginal Component Effects (AMCEs) with correction for measurement error:
output <- projoint(dat)
print(output)
summary(output)
  • Follow the step-by-step guide to learn how to estimate and correct marginal means (MMs) or average marginal component effects (AMCEs), including predicting IRR if necessary.
Visualize your results
  • Visualize your results easily:
plot(output)
  • Follow the step-by-step guide to learn how to visualize the marginal means (MMs) or average marginal component effects (AMCEs).
Explore and compare further
  • Estimate additional quantities of interest and explore subgroup comparisons using choice-level analysis.
  • Follow the step-by-step guide to learn how to estimate under-investigated quantities of interest and compare subgroups using choice-level analysis.

📘 Methodological Background

📋 Notes & Limitations

  • Supports binary forced-choice outcomes only (for now).
  • Package is under active development.

📦 Upcoming Features

  • Weighted estimation for features and respondents
  • Support for non-binary outcomes (ratings, rankings)

✨ Thank you for using projoint! ✨