Conjoint survey designs are spreading across the social sciences due to their unusual capacity to estimate many quantities of interest from a single randomized experiment. Projoint is general-purpose software for the design, implementation, and analysis of conjoint surveys. Its easy-to-use components include a drag-and-drop web-based application for survey design and an R package for analysis.
We created this software for our forthcoming article in the American Journal of Political Science that shows how to correct measurement error in conjoint surveys,ⓘ and so Projoint makes that easy too. This correction is essential because conjoint’s ability to mirror complicated real-world choices,ⓘ often generates substantial measurement error and, without corrections, can lead to substantial bias.
We intend for Projoint to be the easiest and fastest way to design, field, and analyze conjoint surveys. Take the 6 steps below and you should be all set.
🚀 Six Easy Steps
1. Install the development version from GitHub
Open R (or install R if you do not have it), and run the following command in your coding environment.
devtools::install_github("yhoriuchi/projoint")
2. Design your survey
Online surveys are frequently written with an online software called Qualtrics. Using our web tool, called the Projoint Survey Designer, you don’t need to learn how to write a survey in Qualtrics.
- Use the Projoint Survey Designer and export surveys formatted for Qualtrics.
- Follow the step-by-step guide to learn how to set up your Qualtrics survey.
3. Field your survey
- Using the .QSF file export from the Projoint Survey Designer, load your survey into Qualtrics.
- Log into your Qualtrics account.
- Click “Create a new project”
- Under “From scratch” select “Survey” and then “Get started”
- Enter a name and under “How do you want to start your survey” select “Import a QSF file”
- Click “Choose file” and select your .QSF file.
- Click “Create project”
- You are free to field your Qualtrics survey through online vendors.
- When you are done fielding your survey, you will now need to export your data from Qualtrics to R.
- Click “Download Data”.
- Choose CSV format.
- Critically, select “Use choice text” rather than coded values.
4. Read the results into R and wrangle your data into structured form
- Load your survey responses into R:
library(projoint)
dat <- read_Qualtrics("your_file.csv")
- 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.
5. Analyze and visualize important Quantities of Interest
- Estimate Marginal Means (MMs) or Average Marginal Component Effects (AMCEs) with correction for measurement error:
Note: The following example illustrates a
profile_level
analysis. This approach is common in social science and useful as an initial diagnostic, but we encourage researchers to considerchoice_level
analysis (the default for.structure
). See Choice-Level Analysis. Detailed steps of analysis appear in the step-by-step guide.
- Visualize your results easily:
plot(output)
- Estimate additional quantities of interest and explore subgroup comparisons using choice-level analysis.
- 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 the marginal means (MMs) or average marginal component effects (AMCEs).
6. Explore additional quantities and compare subgroups
- Go beyond standard profile-level summaries.
- Use choice-level analysis to:
- Directly compare trade-offs (e.g., low housing cost vs. low crime).
- Collapse multiple levels (e.g., city vs. suburban preferences).
- Estimate subgroup differences (e.g., Democrats vs. Republicans).
- Directly compare trade-offs (e.g., low housing cost vs. low crime).
- See detailed examples in the Explore and Compare Further vignette.
📦 Upcoming Features
- Weighted estimation for features and respondents
- Support for non-binary outcomes (ratings, rankings)
Contact
For comments and suggestions, please open an issue on the GitHub repository.✨ Thank you for using projoint! ✨