ambiguity: Analyze the Degree of Ambiguity across Research Design...

Description Usage Arguments Details Value Contributors (alphabetical) Author(s) References See Also Examples

Description

This evaluation function computes the degree of ambiguity across variations of a reference design. It has initially been programmed for Baumgartner and Thiem (2015).

Usage

1
2
3
ambiguity(data, outcome = c(""), neg.out = c(FALSE), exo.facs = c(""),
          tuples = c(), incl.cut1 = c(1), incl.cut0 = c(1), sol.type = c("ps"), 
          row.dom = c(FALSE), min.dis = c(FALSE))

Arguments

data

A set of configurational data as processable by the eQMC function.

outcome

A character vector of outcomes.

neg.out

A logical vector specifying whether to negate outcomes.

exo.facs

A character vector with the names of the exogenous factors.

tuples

A numeric vector of tuples of exogenous factors to be created from exof.cols.

incl.cut1

The minimum sufficiency inclusion score for an output function value of "1".

incl.cut0

The maximum sufficiency inclusion score for an output function value of "0".

sol.type

A character vector specifying the solution types to be generated.

row.dom

A logical vector imposing row dominance as a constraint on the solution to eliminate dominated inessential prime implicants.

min.dis

A logical vector imposing minimal disjunctivity as a constraint on the solution to eliminate models with more prime implicants than the model(s) with the fewest prime implicants.

Details

Model ambiguities are a common feature of configurational data analysis, although their extent often remains hidden because of confirmatory model selection or the use of computer programmes that cannot reveal their extent (Baumgartner and Thiem 2015; Thiem 2014)

This evaluation function computes the degree of ambiguity across variations of a reference design by recording the number of models for each design solution. It has initially been programmed for Baumgartner and Thiem (2015).

The argument data requires a set of configurational data as processable by the eQMC function.

The argument outcome is a character vector, specifying the outcome(s) 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 can be single levels of factors not simultaneously passed to exo.facs. At least one outcome has to be specified.

The argument neg.out requires a logical vector of length one or two, whose values, which must not be duplicated, specify whether to negate the outcomes determined by outcome. If an element in outcome is a level from a multivalent factor, neg.out = TRUE makes the disjunction of all remaining levels the outcome. Possible values for neg.out include FALSE, TRUE, FALSE, TRUE and TRUE, FALSE.

The argument exo.facs is a character vector with the names of the exogenous factors. If omitted, all factors in data are used except that/those of the outcome/s given in outcome. and tuples specifies a numeric vector of tuples of exogenous factors to be created from exo.facs.

Minterms with an inclusion score of at least incl.cut1 are coded positive (OUT = "1"), minterms with an inclusion score below incl.cut1 but with at least incl.cut0 are coded as a contradiction (OUT = "C"), and minterms with an inclusion score below incl.cut0 are coded negative (OUT = "0"). If incl.cut0 is not explicitly changed, it is set equal to incl.cut1.

The argument sol.type requires a character vector specifying the solution types to be generated. For example, c("ps", "cs") means parsimonious and conservative solution type.

The argument row.dom requires a logical vector, and controls whether the principle of row dominance is imposed as a constraint on the solution. An inessential prime implicant P dominates another Q if all configurations covered by Q are also covered by P, but they are not interchangeable (cf. McCluskey 1956, 1425; McCluskey 1965, 164-152). If row dominance is operative, models that contain dominated prime implicants will not be returned.

The argument min.dis requires a logical vector, and controls whether the principle of minimal disjunctivity is imposed as a constraint on the solution (McCluskey 1965, 12-126). If minimal disjunctivity is operative, models that contain more than the number of prime implicants of the model(s) with the fewest prime implicants will not be returned.

Value

A list with the following two main components:

tuples

A list of all tuples of exogenous factors of the respective size taken from all factors given in exo.facs.

n.models

A list of matrices giving the number of models in each solution for each design. The coding of labels has the following structure: O.1234, where O is the outcome, 1 specifies the value at the respective index of the argument neg.out, 2 the value at the respective common index of the arguments incl.cut1 and incl.cut0, 3 the value at the respective index of the argument sol.type, and 4 the value at the respective common index of the arguments row.dom and min.dis.

Contributors (alphabetical)

Thiem, Alrik : development, documentation, programming, testing

Author(s)

Alrik Thiem (Personal Website; ResearchGate Website)

References

Baumgartner, Michael, and Alrik Thiem. 2015. “Model Ambiguities in Configurational Comparative Research.” Sociological Methods & Research. Advance online publication. DOI: 10.1177/0049124115610351.

McCluskey, Edward J. 1956. “Minimization of Boolean Functions.” Bell Systems Technical Journal 35 (6):1417-44. DOI: 10.1002/j.1538-7305.1956.tb03835.x.

McCluskey, Edward J. 1965. Introduction to the Theory of Switching Circuits. Princeton: Princeton University Press.

Thiem, Alrik. 2014. “Navigating the Complexities of Qualitative Comparative Analysis: Case Numbers, Necessity Relations, and Model Ambiguities.” Evaluation Review 38 (6):487-513. DOI: 10.1177/0193841x14550863.

See Also

eQMC

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
## Not run: 
# load dataset
data(d.tumorscreen)

# designs: outcomes HPF and LPF; all 3 to 5-tuples of exogenous factors
designs <- ambiguity(d.tumorscreen, outcome = c("HPF", "LPF"), 
  neg.out = c(FALSE, TRUE), tuples = 3:5)

# share of solutions with ambiguities
mapply(function (x) round(colSums((x > 1)) / nrow(x), 2), designs$n.models)

## End(Not run)

AlrikThiem/QCApro documentation built on May 5, 2019, 4:55 a.m.