findOutcomes: Identify the factors that can possibly be modeled as outcomes...

View source: R/findOutcomes.R

findOutcomesR 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 data.frame or configTable.

con, cov

Numeric scalars between 0 and 1 specifying consistency and coverage thresholds.

rm.dup.factors

Logical; defaults to FALSE. If TRUE, all but the first of a set of factors with identical values in x are removed.

rm.const.factors

Logical; defaults to FALSE. If TRUE, factors with constant values in x are removed.

...

Additional arguments passed to conCovOpt and configTable, for instance approx or case.cutoff.

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) 

cnaOpt documentation built on July 8, 2022, 5:06 p.m.

Related to findOutcomes in cnaOpt...