This is one of the most flexible functions in the QCA package. Depending on
particular situations, its arguments can be provided in various formats which are
automatically recognized and treated accordingly.When specified as a data frame, the argument setms
contains any kind
of set membership scores:
- calibrated causal conditions from the original data,
- membership scores from the resulting combinations (component coms
)
of function superSubset()
,
- prime implicant membership scores (component pims
) from function
eqmcc()
,
- any other, custom created combinations of set memberships.
When specified as a matrix, setms
contains the crisp causal combinations
similar to those found in the truth table. If some of the causal conditions have
been minimized, they can be replaced by the numerical value -1
(see
examples section). The number of columns in the matrix should be equal to the number
of causal conditions in the original data
.
More generally, setms
can be a numerical vector of line numbers from the
implicant matrix (see function createMatrix()
), which are automatically
transformed into their corresponding set membership scores.
Starting with version 2.1, setms
can also be a string expression,
written in sum of products (SOP) form.
For all situation when setms
is something else than a data frame, it
requires the original data
to generate the set memberships.
If a string, the argument outcome
is the name of the column from the
original data
, to be explained (it is a good practice advice to provide
using upper case letters, although it will nevertheless be converted to upper case
letters, by default).
If the outcome column is multi-value, the argument outcome
should use
the standard curly-bracket notation X{value}
. Multiple values are
allowed, separated by a comma (for example X{1,2}
). Negation of the
outcome can also be performed using the tilde ~
operator, for example
~X{1,2}
, which is interpreted as: "all values in X except 1 and 2" and
it becomes the new outcome to be explained.
The argument outcome
can also be a numerical vector of set membership
values, either directly from the original data frame, or a recoded version (if
originally multi-value).
The argument inf.test
provides the possibility to perform statistical
inference tests, comparing the calculated inclusion score with a pair of thresholds
(ic1
and ic0
) specified in the argument incl.cut
.
Currently, it can only perform binomial tests ("binom"
), which means that
data should only be provided as binary crisp (not multivalue, not fuzzy).
If the critical significance level is not provided, the default level of 0.05
is taken.
The resulting object will contain the calculated p-values (pval1 and pval0) from two
separate, one-tailed tests with the alternative hypothesis that the true inclusion
score is:
- greater than ic1
(the inclusion cutoff for an output value of 1)
- greater than ic0
(the inclusion cutoff for an output value of 0)
It should be noted that statistical tests are performing well only when the number
of cases is large, otherwise they are usually not significant.
The argument add
complements the standard measures of inclusion, coverage
and PRI with other, established measures that are under testing implementation, or
candidate measures that await their recognition as standard.
One such example of an established measure is ron
, suggested by
Schneider & Wagemann's (2012) relevance of necessity formula.
Starting with version 2.0, this function also accepts and recognize negation of both
setms
and outcome
using the Boolean subtraction from 1.
If the names of the conditions are provided via an optional (undocumented) argument
conditions
, the colnames of the setms
object are negated
using deMorgan()
.
Starting with version 2.1, the logical argument neg.out
is deprecated,
but backwards compatible. neg.out = TRUE
and a tilde ~
in
the outcome name don't cancel each other out, either one (or even both) signaling if
the outcome
should be negated.
When argument setms
is a SOP expression, it is the only place where the
everything (including the outcome
) can be negated using lower case letters,
with or without a tilde. Lower case letters and a tilde does cancel each other out, for
example ~X
is interpreted as x
, while ~x
is
interpreted as X
.