Description Usage Arguments Details Value Author(s) References See Also Examples
To impose constraints on a QCA solution and returns a new QCA solution.
1 2 3 | constrReduce(object, exclude = NULL, include = NULL,necessary = NULL)
excludeCSA(object, csa)
|
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 |
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".
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.
Rongggui HUANG
Ragin, Charles C. 2008. "Redesigning social inquiry: fuzzy sets and beyond." Chapter 9. Chicago: University of Chicago Press.
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
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.