50% off | Unlimited Data & AI Learning
Get 50% off unlimited learning

QCA (version 3.3)

intersection: Intersect expressions

Description

This function takes two or more QCA expressions (combinations of conjunctions and disjunctions) or even entire minimization objects, and finds their intersection.

Usage

intersection(..., snames = "", use.tilde = FALSE, noflevels)

Arguments

...

One or more expressions, combined with / or minimization objects of class "qca".

snames

A string containing the sets' names, separated by commas.

use.tilde

Logical, use tilde to negate bivalent conditions.

noflevels

Numerical vector containing the number of levels for each set.

Details

The initial aim of this function was to provide a software implementation of the intersection examples presented by Ragin (1987: 144-147). That type of example can also be performed with the function sop(), while this function is now mainly used in conjunction with the modelFit() function, to assess the intersection between theory and a QCA model.

Irrespective of the input type (character expressions and / or minimiation objects), this function is now a wrapper to the main sop() function (which only accepts character expressions).

It can deal with any kind of expressions, but multivalent crisp conditions need additional information about their number of levels, via the argument noflevels.

The expressions can be formulated in terms of either lower case - upper case notation for the absence and the presence of the causal condition, or use the tilde notation (see examples below). Usage of either of these is automatically detected, as long as all expressions use the same notation.

If the snames argument is provided, the result is sorted according to the order of the causal conditions (set names) in the original dataset, otherwise it sorts the causal conditions in alphabetical order.

For minimzation objects of class "qca", the number of levels, and the set names are automatically detected.

References

Ragin, Charles C. 1987. The Comparative Method: Moving beyond Qualitative and Quantitative Strategies. Berkeley: University of California Press.

Examples

Run this code
# NOT RUN {
# using minimization objects
data(LF)
ttLF <- truthTable(LF, outcome = "SURV", incl.cut = 0.8)

pLF <- minimize(ttLF, include = "?")


# for example the intersection between the parsimonious model and
# a theoretical expectation

intersection(pLF, "DEV*STB")

# E1: (DEV*ind + URB*STB)*DEV*STB
#   I1: DEV*ind*STB + DEV*URB*STB


# negating the model
intersection(negate(pLF), "DEV*STB")

# E1: (dev*urb + dev*stb + urb*IND + IND*stb)*DEV*STB
#   I1: DEV*IND*STB*urb


# -----
# in Ragin's (1987) book, the equation E = SG + LW is the result
# of the Boolean minimization for the ethnic political mobilization.

# intersecting the reactive ethnicity perspective (R = lw)
# with the equation E (page 144)
intersection("lw", "SG + LW", snames = "S, L, W, G")

# E1: lw(SG + LW)
#   I1: SlwG


# resources for size and wealth (C = SW) with E (page 145)
intersection("SW", "SG + LW", snames = "S, L, W, G")

# E1: SW(SG + LW)
#   I1: SWG + SLW


# and factorized
factorize(intersection("SW", "SG + LW", snames = "S, L, W, G"))

# M1: SWG + SLW 
#   F1: SW(G + L)


# developmental perspective (D = Lg) and E (page 146)
intersection("Lg", "SG + LW", snames = "S, L, W, G")

# E1: Lg(SG + LW)
#   I1: LWg
# }

Run the code above in your browser using DataLab