Learn R Programming

QCA (version 1.1-3)

pof: Compute Set-Relational Parameters of Fit

Description

This function computes inclusion (consistency) and coverage scores.

Usage

pof(setms, outcome, data, neg.out = FALSE, relation = "nec",
    inf.test = "", incl.cut1 = 0.75, incl.cut0 = 0.5, ...)

is.pof(x)

Arguments

setms
A data frame of set membership scores, or a matrix of implicants, or a vector of implicant matrix line numbers.
outcome
The name of the outcome.
data
The working data set.
neg.out
Logical, use negation of outcome.
relation
The set relation to outcome, either "nec" or "suf".
inf.test
The inference-statistical test to be performed (currently only "binom" for bivalent and multivalent crisp-set variables).
incl.cut1
The upper inclusion cut-off against which the empirical inclusion score is tested if inf.test = "binom".
incl.cut0
The lower inclusion cut-off against which the empirical inclusion score is tested if inf.test = "binom".
...
Other arguments (not used in this function).
x
An object of class "pof".

Details

The argument setms specifies a data frame of set membership scores, where set refers to any kind of set, including simple sets, combinations returned by superSubset() (coms), prime implicants returned by eqmcc() (pims) or any other compound set. The function also accepts a matrix of implicants with the value representation of createMatrix(), or even a corresponding vector of implicant matrix line numbers. The argument outcome specifies the outcome to be explained. Outcomes from multivalent variables require curly-bracket notation (X{value}). The logical argument neg.out controls whether outcome is to be explained or its negation. If outcome is from a multivalent variable, neg.out = TRUE has the effect that the union of all remaining values becomes the new outcome to be explained. The argument inf.test provides functionality for adjudicating between rival hypotheses on the basis of inference-statistical tests. Currently, only an exact binomial test ("binom") is available, which requires the data to contain only bivalent or multivalent crisp set variables. Two one-tailed tests are performed. The null hypothesis with respect to incl.cut1 is that the empirical inclusion score of each element in setms is not lower than the upper critical inclusion cut-off provided in incl.cut1. The null hypothesis with respect to incl.cut0 is that the empirical inclusion score of each element in setms is not higher than the lower critical inclusion cut-off provided in incl.cut0.

References

Emmenegger, Patrick. 2011. Job Security Regulations in Western Democracies: A Fuzzy Set Analysis. European Journal of Political Research 50 (3):336-64. Krook, Mona Lena. 2010. Women's Representation in Parliament: A Qualitative Comparative Analysis. Political Studies 58 (5):886-908.

See Also

eqmcc, superSubset

Examples

Run this code
# csQCA using Krook (2010)
#-------------------------
data(d.Kro)
head(d.Kro)

# first also compute negations
x.1 <- d.Kro[, 1:5]
x.2 <- 1 - x.1
names(x.2) <- tolower(names(x.1))
x <- cbind(x.1, x.2)
 
# necessity parameters of fit for all conditions
pof(x, outcome = "WNP", d.Kro)

# for the negated outcome
pof(x, outcome = "WNP", d.Kro, neg.out = TRUE)

# sufficiency parameters of fit
pof(x, outcome = "WNP", d.Kro, relation = "suf") 

# for the negated outcome
pof(x, outcome = "WNP", d.Kro, neg.out = TRUE, relation = "suf")

# exact binomial tests of sufficiency and necessity inclusion
pof(x.1, outcome = "WNP", d.Kro, relation = "suf", inf.test = "binom",
  incl.cut1 = 0.75, incl.cut0 = 0.5)

pof(x.1, outcome = "WNP", d.Kro, inf.test = "binom", incl.cut1 = 0.75,
  incl.cut0 = 0.5)

# fsQCA using Emmenegger (2011)
#------------------------------
data(d.Emm)
head(d.Emm)

# first test for minimally necessary combinations with superSubset(), 
# then check whether these combinations are also necessary for the 
# negation of the outcome
Emm.nr <- superSubset(d.Emm, outcome = "JSR", incl.cut = 0.965, 
  cov.cut = 0.6)
Emm.nr

pof(Emm.nr$coms, outcome = "JSR", d.Emm, neg.out = TRUE) 

# first derive the conservative solution, then check whether the 
# negations of the prime implicants are also sufficient for the outcome 
Emm.sc <- eqmcc(d.Emm, outcome = "JSR", incl.cut1 = 0.9, details = TRUE)
Emm.sc

pof(1 - Emm.sc$pims, outcome = "JSR", d.Emm, relation = "suf")

# parameters of fit for matrix of implicants;
# "-1" is the placeholder for an eliminated variable;
# e.g.: R*p*V and S*c*L*P*v
#      "S"  "C"  "L"  "R"  "P"  "V"
#     [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]   -1   -1   -1    1    0    1
#[2,]    1    0    1   -1    1    0
confs <- matrix(c(-1,-1,-1, 1, 0, 1, 
                   1, 0, 1,-1, 1, 0), nrow = 2, byrow = TRUE)

pof(confs, outcome = "JSR", d.Emm, relation = "suf")

# or even vectors of line numbers from the implicant matrix
pof(c(43, 57), "JSR", d.Emm, relation = "suf")

# parameters of fit for a data frame
x <- data.frame(A = c(1,1,1,0,1), B = c(1,1,1,0,1),
                C = c(0,1,0,0,1), D = c(0,0,1,0,1),
                O = c(1,1,1,0,1))

pof(x[, -5], outcome = "O", x)

# for a single column from that data frame
pof(x$A, x$O)

# for multiple columns from that data frame
pof(x[, 1:2], outcome = "O", x)

Run the code above in your browser using DataLab