findOutcomes {cnaOpt} | R Documentation |
Identify the factors that can possibly be modeled as outcomes prior to running CNA
Description
Prior to running CNA (or any other configurational comparative method), findOutcomes
identifies those factors in data x
that can be modeled as outcomes relative to specified consistency and coverage thresholds con
and cov
.
Usage
findOutcomes(x, con = 1, cov = 1,
rm.dup.factors = FALSE, rm.const.factors = FALSE, ...)
Arguments
x |
A |
con , cov |
Numeric scalars between 0 and 1 specifying consistency and coverage thresholds. |
rm.dup.factors |
Logical; defaults to |
rm.const.factors |
Logical; defaults to |
... |
Additional arguments passed to |
Details
findOutcomes
first runs conCovOpt
to find the con-cov optima for all factors in x
and then applies selectMax
to select those factors with con-cov optima meeting the consistency and coverage thresholds specified in con
and cov
.
In case of crisp-set and multi-value data, an actual model (asf) meeting the specified con
and cov
thresholds is guaranteed to exist for every factor value with an entry TRUE
in the outcome
column. The function DNFbuild
can be used to build these models. The same does not hold for fuzzy-set data. In case of fuzzy-set data, an entry TRUE
in the outcome
column simply means that the existence of a model reaching the specified con
and cov
thresholds cannot be excluded prior to an actual application of cna
.
Value
A data.frame.
See Also
conCovOpt
, selectMax
, selectCases
, DNFbuild
, full.ct
Examples
# Crisp-set data.
findOutcomes(d.educate)
findOutcomes(d.educate, con = 0.75, cov = 0.75)
x <- configTable(d.performance[,1:8], frequency = d.performance$frequency)
findOutcomes(x, con = .7, cov = .7) # too computationally demanding
# Approximate by passing approx = TRUE to conCovOpt().
findOutcomes(x, con = .7, cov = .7, approx = TRUE)
# Approximate by passing a case cutoff to configTable().
findOutcomes(x, con = .7, cov = .7, case.cutoff = 10)
# A causal chain.
target1 <- "(A + B <-> C)*(C + D <-> E)"
dat1 <- selectCases(target1)
findOutcomes(dat1)
# A causal cycle.
target2 <- "(A + Y1 <-> B)*(B + Y2 <-> A)*(A + Y3 <-> C)"
dat2 <- selectCases(target2, full.ct(target2))
findOutcomes(dat2)
# Multi-value data.
findOutcomes(d.pban) # no possible outcomes at con = cov = 1
findOutcomes(d.pban, con = 0.8)
findOutcomes(d.pban, con = 0.8, cov= 0.8)
# Fuzzy-set data.
findOutcomes(d.jobsecurity) # no possible outcomes at con = cov = 1
findOutcomes(d.jobsecurity, con = 0.86)