constrReduce: Impose constraints on a QCA solution

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

Description

To impose constraints on a QCA solution and returns a new QCA solution.

Usage

1
2
3
constrReduce(object, exclude = NULL, include = NULL,necessary = NULL)

excludeCSA(object, csa) 

Arguments

object

An object of class "QCA".

exclude

A data frame, each row represent one configuration.

include

A data frame, each row represent one configuration.

necessary

A list, specifying the necessary conditions.

csa

an object returned by CSA.

Details

constrReduce allows you to include a set of configurations to the a solution, or exclude a set of configurations from a solution, then return a new solution.

excludeCSA conducts Boolean minimization by freely including other remainders except those in condictory simplifying assumptions and thoese excluded in the first place (idExclude component of the object).

The difference between constrReduce and excludeCSA mainly lies in how to deal with other remainders when imposing constraints on a QCA solution. constrReduce does not include further remainders, while excludeCSA does.

Sometime, you may encounter contraditory simplifying assumptions. In that case, you may want to exclude the CSAs to attain a more reasonable solution. In this case, excludeCSA is the most suitable way to go, which can make QCA easier. However, it does not guarantee a single final solution, in particular when there are multiple solutions to both positive and negative outcome.

Sometimes, you may attain a solution without including all the remainders, latter you may want to include a small number of remainders in order to get a intermediate solution. You may include raminders in Boolean minimization, but some of the simplifying assumptions (see SA) are not feasible. You might want to exclude these unjustified simplifying assumptions without search for further simplifying assumptions. If you attain a solution without including remainders, you may want to include easy counterfactuals (justifiable remainders) to attain an intermediate solution. In either case, constrReduce is the most suitable way to go. See the example section on Ragin (2008: chapter 9) on this usage.

Usually, the exclude and include argument should repsent a set of configurations. In these case, there should be no '-9' in the data frame. However, it is NOT wrong to include -9 in the data frame. When there is -9, it means a multiple configurations because -9 denotes "dont' care".

Value

For constrReduce, it is an object of class "QCA". It is esentailly a list of 11 components. See reduce for more details. The only difference is the call componenet.

Author(s)

Rongggui HUANG

References

Ragin, Charles C. 2008. "Redesigning social inquiry: fuzzy sets and beyond." Chapter 9. Chicago: University of Chicago Press.

See Also

reduce and CSA

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
example(HuangGui2009)
newSol <- excludeCSA(ans2[2],CSA(ans1,ans2[2]))
## ans2 has 3 solutions, only the 3rd has not CSA.
identical(newSol$solutions, ans2[3]$solutions)
## they are the same.

## Use easy counterfactuals to get an intermediate solution (Ragin 2008:chapter 9)
comp <- reduce(Stokke,"success",c("advice","commitment","shadow","inconvenience",
              "reverberation"),explain="positive")
pars <- reduce(Stokke,"success",c("advice","commitment","shadow","inconvenience",
              "reverberation"),explain="positive",remaind="include")
sa <- SA(pars)
## determins easy counterfactuals
## method 1 is to manually construct the easy counterfactuals
easy1 <- rbind(
c(1,-9,1,-9,1), # ADVICE*SHADOW*REVERBERATION
c(1,1,1,0,-9), # ADVICE*COMMITMENT*SHADOW*inconvenience
c(1,-9,-9,0,-9) # ADVICE*inconvenience
)
easy1 <- as.data.frame(easy1)
constrReduce(comp,include=easy1)
## method 2 uses implicantsToDF faciliates such construction
## Not run: 
imp <- "ADVICE*SHADOW*REVERBERATION+
ADVICE*COMMITMENT*SHADOW*inconvenience+
ADVICE*inconvenience"
easy2 <- implicantsToDF(imp, 
          conditions=c("advice","commitment","shadow",'inconvenience',"reverberation"))
constrReduce(comp,include=easy2)

## End(Not run)
## end of Ragin (2009:chapter 9) example

QCA3 documentation built on May 2, 2019, 4:49 p.m.