R/tsqca_fiss_core.R
compute_fiss_core.RdTakes an existing threshold-sweep result object (produced by
otSweep, ctSweepS, ctSweepM,
or dtSweep) and augments it with Fiss (2011)
core/peripheral classification.
compute_fiss_core(result, conditions = NULL)The original result object with an additional
$fiss_core slot: a named list keyed by threshold (character),
each entry containing:
parsim_expression — parsimonious solution expression
interm_expression — intermediate solution expression
classification — data frame with columns
term_idx, term_expr, condition,
status, type
The classification requires that:
The sweep was run with include = "?" (to allow parsimonious
computation)
return_details = TRUE was used (truth tables must be stored)
dir.exp was specified (i.e., the sweep produced intermediate
solutions — core/peripheral is only meaningful when comparing
parsimonious vs intermediate)
For each threshold in the result, this function:
Retrieves the intermediate solution already stored in
result$details.
Re-runs QCA::minimize() on the same truth table with
dir.exp = NULL to obtain the parsimonious solution.
Compares the two solutions: conditions appearing in both are core; conditions appearing only in the intermediate solution are peripheral.
Fiss, P. C. (2011). Building better causal theories: A fuzzy set approach to typologies in organization research. Academy of Management Journal, 54(2), 393-420.
if (FALSE) { # \dontrun{
library(ThSQCA)
data(sample_data)
# Step 1: Run intermediate sweep (dir.exp required)
res <- otSweep(
dat = sample_data,
outcome = "Y",
conditions = c("X1", "X2", "X3"),
sweep_range = 6:8,
thrX = c(X1 = 7, X2 = 7, X3 = 7),
include = "?",
dir.exp = c(1, 1, 1),
return_details = TRUE
)
# Step 2: Augment with Fiss core/peripheral classification
res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3"))
# Step 3: Generate Fiss-style chart
cat(generate_fiss_chart(res_fiss, symbol_set = "unicode"))
} # }