This repository contains the R Shiny source code behind the companion web app for the paper. It is meant as an educational source overview for readers who want to see how the publication workflow is implemented and what happens in the background.
- Live web app: https://shiny.drdiscipulus.de/conjoint_app/
- Paper: https://doi.org/10.1177/10422587231184071
- Desktop app: https://github.com/drdiscipulus/conjoint_desktop_app
The repository is not intended as an active-development project or as a release channel. It intentionally keeps only the files needed to run the Shiny app, the public demo data, and documentation.
The app supports two conjoint-related workflows:
- Generate full and fractional factorial designs for conjoint experiments.
- Run the test-retest reliability workflow described in the accompanying paper: Test-Retest Reliability in Metric Conjoint Experiments: A New Workflow to Evaluate Confidence in Model Results.
app.Ris the entry point. It loads packages, sources helper files, defines the Shiny navbar, and starts the app.ui/contains the tab layouts and explanatory screens shown in the browser.server/contains the tab-specific server logic for factorial design generation and test-retest reliability analysis.R/contains focused helpers for upload validation, temporary session files, result exports, labels, UI components, alias diagnostics, and interaction coverage checks.functions_factorial.R,functions_reliability.R, andcustom_corr_plot.Rcontain the older workflow-specific statistical and plotting helpers that the app still sources directly.scripts/run_app.Ris a small launcher for running the app from the command line.demo_data.csvanddemo_data.xlsxare public sample files for trying the reliability workflow.
Install the required R packages before running the app:
install.packages(c(
"shiny", "shinyjs", "shinycssloaders", "bslib",
"tidyverse", "reactable", "FrF2", "DoE.base", "broom", "psych",
"sandwich", "lmtest", "parameters", "plotly", "viridis", "vroom",
"openxlsx", "prismatic"
))This repository documents dependencies but does not pin them with renv.
Rscript scripts/run_app.RFrom R, the same app can be started with:
shiny::runApp(".")Reliability uploads must be .csv or .xlsx files with exactly one table. The
required columns are:
respondentroundprofiledv- at least two attribute columns named with the prefix
att_
The round, profile, dv, and att_ columns must be numeric or cleanly
coercible to numeric. The round column must contain exactly rounds 1 and
2.
Current upload limits:
- maximum file size: 5 MB
- maximum rows: 25,000
- maximum columns: 250
After a successful reliability analysis, the app can export:
- an XLSX workbook with reliability, slope-difference, and pooled-regression
tables in three sheets:
Reliability table,Slope Difference, andPooled Regression, - a ZIP archive with the same three result tables as separate CSV files.
Plots can be downloaded from the Plotly toolbar in the app.
Uploaded data and generated result files are processed in a session-specific temporary directory. The app registers cleanup at session end and removes session-generated files on reset. User-provided filenames are used only for display/format checks, not for internal paths.
This repository is maintained occasionally and conservatively. The statistical workflow should remain stable unless a specific bug is identified.
If you use the app, source code, or workflow in research or teaching, please cite the article:
Schueler, J., Anderson, B. S., Murnieks, C. Y., Baum, M., & Kuesshauer, A. (2024). Test-Retest Reliability in Metric Conjoint Experiments: A New Workflow to Evaluate Confidence in Model Results. Entrepreneurship Theory and Practice, 48(2), 742-757. https://doi.org/10.1177/10422587231184071
Machine-readable citation metadata are available in CITATION.cff.
This project is licensed under the GNU General Public License v3.0. See
LICENSE.
R Shiny app written by Jens Schueler.