Learn R Programming

QCApro (version 1.1-1)

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 = "suf", 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".

Contributors

Dusa, Adrian
: programming

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 the superSubset function (coms), prime implicants returned by the eQMC function (pims), or any other compound set.

The function also accepts a matrix of implicants with the level representation of created by the mintermMatrix function, or even a corresponding vector of implicant matrix line numbers.

The argument outcome specifies the outcome to be analyzed, either in curly-bracket notation (e.g., O{value}) if the outcome is from a multivalent (or a bivalent) factor, or in upper-case notation if the outcome is from a bivalent factor (e.g., O as a short-cut for O{1}). Outcomes from multivalent crisp-set factors always require curly-bracket notation. Outcomes must be single levels of factors not simultaneously passed to exo.facs.

The logical argument neg.out controls whether outcome is to be analyzed or its negation. If outcome is a level from a multivalent factor, neg.out = TRUE causes the disjunction of all remaining levels to become the outcome to be analyzed.

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 factors. 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. DOI: 10.1111/j.1475-6765.2010.01933.x.

Hartmann, Christof, and Joerg Kemmerzell. 2010. “Understanding Variations in Party Bans in Africa.” Democratization 17 (4):642-65. DOI: 10.1080/13510347.2010.491189.

Krook, Mona Lena. 2010. “Women's Representation in Parliament: A Qualitative Comparative Analysis.” Political Studies 58 (5):886-908. DOI: 10.1111/j.1467-9248.2010.00833.x.

See Also

eQMC

Examples

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

# solution with details
KRO <- eQMC(d.represent, outcome = "WNP", incl.cut1 = 0.9, 
            details = TRUE)
KRO

# exact binomial tests of sufficiency inclusion
pof(KRO$pims, outcome = "WNP", d.represent, inf.test = c("binom", 0.1), 
    incl.cut1 = 0.75, incl.cut0 = 0.5)

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

# solution with details
EMM.sol <- eQMC(d.jobsecurity, outcome = "JSR", incl.cut1 = 0.9, 
                details = TRUE)
EMM.sol

# are the model prime implicants also sufficient for the negation 
# of the outcome?
pof(EMM.sol$pims, outcome = "JSR", d.jobsecurity, neg.out = TRUE)

# are the negations of the model prime implicants also sufficient 
# for the outcome?
pof(1 - EMM.sol$pims, outcome = "JSR", d.jobsecurity)

# 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
mat <- matrix(c(-1,-1,-1, 1, 0, 1, 
                 1, 0, 1,-1, 1, 0), nrow = 2, byrow = TRUE)

pof(mat, outcome = "JSR", d.jobsecurity)

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


# mv-data from Hartmann and Kemmerzell (2010)
#-------------------------------------------
data(d.partybans)
head(d.partybans)

# parameters of fit for several mv-expressions
expr <- c("C{1}", "F{2}", "T{2}", "T{1}*V{0}")
dat <- data.frame(ifelse(d.partybans$C == 1, 1, 0),
                  ifelse(d.partybans$F == 2, 1, 0),
                  ifelse(d.partybans$T == 2, 1, 0), 
                  ifelse(d.partybans$T == 1 & d.partybans$V == 0, 1, 0))
colnames(dat) <- expr                        

pof(dat, outcome = "PB{1}", d.partybans)

# miscellaneous
#--------------
# 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