Skip to contents

Overview

braQCA is an R package that provides bootstrapped robustness tools for Qualitative Comparative Analysis (QCA). QCA is a set-theoretic, case-oriented method widely used in political science, sociology, and comparative policy research to identify combinations of conditions sufficient or necessary for an outcome. A persistent challenge in QCA is that its truth table algorithm can return non-trivial solutions even when applied to purely random data — meaning researchers may inadvertently identify patterns that are artifacts of chance rather than genuine causal structures.

braQCA addresses this problem directly through two complementary tools:

  • baQCA() — tests whether a completed QCA solution is robust to randomness by estimating the probability that the researcher’s data and parameters would yield a non-trivial result by chance alone.
  • brQCA() — provides data-driven recommendations for consistency score and configurational n thresholds needed to attain desired levels of statistical confidence in a given QCA application.

Together, these tools function as a hypothesis testing framework for QCA, producing output analogous to a p-value that researchers can use to assess and report the robustness of their findings.

The methodology is detailed in:

Gibson, C. Ben and Burrel Vann Jr. 2025. “A Bootstrapped Robustness Assessment for Qualitative Comparative Analysis.” Journal of Mathematical Sociology 40(3): 147–174. doi:10.1080/0022250X.2025.2496154

Installation


Install the released version from CRAN:

Then load the package:

braQCA depends on the QCA package. If it is not yet installed, install it first:

Functions


Function Description
baQCA() Bootstrapped Assessment — tests the robustness of a completed QCA model object to randomness, returning a probability (analogous to a p-value) and confidence interval
brQCA() Bootstrapped Recommendation — scans combinations of consistency score (inclcut) and configurational n (ncut) thresholds, reporting which combinations attain standard significance levels (.10, .05, .01, .001)
summary.baQCAtest() Summarizes the results of a baQCA() assessment
sim.brQCA() Internal simulation engine used by brQCA() to calculate bootstrapped recommendations
conf.table() Internal function that uses logistic regression to compute the output table for brQCA()

Examples


Step 1 — Prepare data and run a QCA model

library(QCA)
library(braQCA)

data(rallies)

# Select causal conditions
P <- rallies$P
R <- rallies$R
C <- rallies$C
U <- rallies$U

qca.data <- data.frame(P, R, C, U)
rownames(qca.data) <- rownames(rallies)

# Build truth table
truth <- truthTable(qca.data, outcome = "P", sort.by = "incl",
                    incl.cut1 = 0.7, show.cases = TRUE)
truth

# Minimize the truth table
mod1 <- minimize(truth, details = TRUE, show.cases = TRUE)
mod1

Step 2 — Bootstrapped Assessment (baQCA)

# Test robustness of the solution (use sim=2000 for production; sim=5 for quick testing)
baQCA(mod1, sim = 5)

The function returns the estimated probability that the data and chosen parameters would yield a random result, along with a confidence interval. A low value (e.g., < .05) indicates the solution is unlikely to be an artifact of chance.

Step 3 — Bootstrapped Recommendation (brQCA)

qca.data <- rallies[, 8:13]

# Get parameter recommendations (use higher sim for production)
brQCA(qca.data, outcome = "P", ncut = 5, sim = 1)

This returns a table showing which combinations of inclcut and ncut achieve significance thresholds of .10, .05, .01, and .001 — helping researchers select defensible parameters before finalizing their QCA model.

Included Datasets


rallies — McVeigh et al. (2014) Tea Party Data

This dataset is an abbreviated version of the data used by McVeigh et al. (2014), covering all 67 counties in Florida, drawn from the American Community Survey (2005–2009). It is the primary demonstration dataset for braQCA.

Dimensions: 67 observations × 13 variables

Variable Type Description
tprallies Continuous Number of Tea Party rallies in county, 2009–2010
reppct2008 Continuous Percent voting Republican (McCain) in 2008
dempct2008 Continuous Percent voting Democrat (Obama) in 2008
pctBA25 Continuous Percent of residents aged 25+ with a bachelor’s degree
pctunemp Continuous Percent unemployed
pctevang Continuous Percent belonging to an Evangelical denomination
pctblack Continuous Percent identifying as Black
P Binary 1 if county had at least one Tea Party rally; 0 otherwise
R Binary 1 if county majority voted Republican in 2008; 0 otherwise
C Binary 1 if percent with bachelor’s degree was at or above Florida average; 0 otherwise
U Binary 1 if percent unemployed was at or above Florida average; 0 otherwise
E Binary 1 if percent Evangelical was at or above Florida average; 0 otherwise
B Binary 1 if percent Black was at or above Florida average; 0 otherwise

Dependencies


braQCA imports from the QCA package and uses dplyr, stats, and related utilities for simulation and table construction.