# import data
setwd("/Applications/QCAR/Datafiles")
QCAcongress <- read.csv("replicationdata.csv", row.names = "case", sep =";", dec=".", header=TRUE)
View(QCAcongress)
# install packages
install.packages(c("lattice", "directlabels", "QCA", "SetMethods", "QCAtools"), dependencies = TRUE)
# load packages
library(lattice); library(directlabels); library(QCA);library(SetMethods); library(QCAtools)
########### CALIBRATION ########################
##outcome assertiveness; conditions divgov, divgov2, nothreat rest on non-numeric considerations, see appendix for calibration of raw data
# calibrate discontent
QCAcongress$discontent <- NA
QCAcongress$discontent[QCAcongress$rawdiscontent <= 0.40] <- 1
QCAcongress$discontent[QCAcongress$rawdiscontent > 0.40 & QCAcongress$rawdiscontent <= 0.50] <- .75
QCAcongress$discontent[QCAcongress$rawdiscontent > 0.50 & QCAcongress$rawdiscontent <= 0.60] <- .25
QCAcongress$discontent[QCAcongress$rawdiscontent > 0.60] <- 0
QCAcongress$discontent
# calibrate casualties, casualties are represented in thousends
QCAcongress$casualties <- NA
QCAcongress$casualties[QCAcongress$rawcasualties < 0.001] <- 0
QCAcongress$casualties[QCAcongress$rawcasualties > 0 & QCAcongress$rawcasualties <= 0.010] <- .25
QCAcongress$casualties[QCAcongress$rawcasualties > 0.010 & QCAcongress$rawcasualties <= 0.100] <- .75
QCAcongress$casualties[QCAcongress$rawcasualties > 0.100] <- 1
QCAcongress$casualties
# alternative calibration of casualties, for robustness check
QCAcongress$casualties2 <- NA
QCAcongress$casualties2[QCAcongress$rawcasualties < 0.010] <- 0
QCAcongress$casualties2[QCAcongress$rawcasualties > 0.010 & QCAcongress$rawcasualties <= 0.100] <- .25
QCAcongress$casualties2[QCAcongress$rawcasualties > 0.100 & QCAcongress$rawcasualties <= 1.000] <- .75
QCAcongress$casualties2[QCAcongress$rawcasualties > 1.000] <- 1
QCAcongress$casualties2
# alternative calibration of casualties, for robustness check
QCAcongress$casualties3 <- NA
QCAcongress$casualties3[QCAcongress$rawcasualties < 0.001] <- 0
QCAcongress$casualties3[QCAcongress$rawcasualties > 0.000 & QCAcongress$rawcasualties <= 0.010] <- .75
QCAcongress$casualties3[QCAcongress$rawcasualties > 0.010] <- 1
QCAcongress$casualties3
###### SKEWNESS CHECK ###########
skewassertiveness <- as.numeric(QCAcongress$assertiveness > 0.5)
sum(skewassertiveness)
prop.table(table(skewassertiveness))
skewassertiveness <- as.numeric(QCAcongress$assertiveness < 0.25)
sum(skewassertiveness)
prop.table(table(skewassertiveness))
skewassertiveness <- as.numeric(QCAcongress$assertiveness > 0.75)
sum(skewassertiveness)
prop.table(table(skewassertiveness))
skewdivgov <- as.numeric(QCAcongress$divgov > 0.5)
sum(skewdivgov)
prop.table(table(skewdivgov))
skewdivgov <- as.numeric(QCAcongress$divgov < 0.25)
sum(skewdivgov)
prop.table(table(skewdivgov))
skewdivgov <- as.numeric(QCAcongress$divgov > 0.75)
sum(skewdivgov)
prop.table(table(skewdivgov))
skewnothreat <- as.numeric(QCAcongress$nothreat > 0.5)
sum(skewnothreat)
prop.table(table(skewnothreat))
skewnothreat <- as.numeric(QCAcongress$nothreat < 0.25)
sum(skewnothreat)
prop.table(table(skewnothreat))
skewnothreat <- as.numeric(QCAcongress$nothreat > 0.75)
sum(skewnothreat)
prop.table(table(skewnothreat))
skewdiscontent <- as.numeric(QCAcongress$discontent > 0.5)
sum(skewdiscontent)
prop.table(table(skewdiscontent))
skewdiscontent <- as.numeric(QCAcongress$discontent < 0.25)
sum(skewdiscontent)
prop.table(table(skewdiscontent))
skewdiscontent <- as.numeric(QCAcongress$discontent > 0.75)
sum(skewdiscontent)
prop.table(table(skewdiscontent))
skewcasualties <- as.numeric(QCAcongress$casualties > 0.5)
sum(skewcasualties)
prop.table(table(skewcasualties))
skewcasualties <- as.numeric(QCAcongress$casualties < 0.25)
sum(skewcasualties)
prop.table(table(skewcasualties))
skewcasualties <- as.numeric(QCAcongress$casualties > 0.75)
sum(skewcasualties)
prop.table(table(skewcasualties))
########### NECESSITY ANALYSIS #############
## Delete raw columns from data frame
QCAcongress <- QCAcongress[,-3]
QCAcongress <- QCAcongress[,-3]
## checking for single necessary conditions for outcome assertiveness
# pof with conditions present / absent
conds <- subset(QCAcongress, select = c("discontent", "casualties", "divgov", "nothreat"))
pof(conds, assertiveness, QCAcongress, relation = "nec")
pof(1-conds, assertiveness, QCAcongress, relation = "nec")
## check for single necessary conditions for non-outcome non-assertiveness (X.assertiveness)
# with conditions present / absent
pof(conds, X.assertiveness, QCAcongress, relation = "nec")
pof(1-conds, X.assertiveness, QCAcongress, relation = "nec")
########### TRUTH TABLE #############
## truth table construction for outcome assertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttAssertiveness <- truthTable(data=QCAcongress, outcome = "assertiveness", conditions = "discontent, casualties, divgov, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttAssertiveness
## truth table construction for outcome nonassertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttNonAssertiveness <- truthTable(data=QCAcongress, outcome = "X.assertiveness", conditions = "discontent, casualties, divgov, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttNonAssertiveness
########### SUFFICIENCY ANALYSIS Outcome ###########
### Conservative solution ###
# with row dominance
csassertiveness.1a <- minimize(ttAssertiveness, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csassertiveness.1a
csassertiveness.1a$PIchart
# without row dominance and all possible solution models
csassertiveness.1b <- minimize(ttAssertiveness, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csassertiveness.1b
csassertiveness.1b$PIchart
### Most Parsimonious Solution ###
# with row dominance
psassertiveness.1a <- minimize(ttAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psassertiveness.1a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.1a$PIchart
psassertiveness.1a$SA
psassertiveness.1a$PIs
# without row dominance
psassertiveness.1b <- minimize(ttAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psassertiveness.1b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.1b$PIchart
psassertiveness.1b$SA
psassertiveness.1b$PIs
### Intermediate Solution ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isassertiveness.1a <- minimize(ttAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.1a
isassertiveness.1a$SA
isassertiveness.1a$i.sol
# without row dominance
isassertiveness.1b <- minimize(ttAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.1b
isassertiveness.1b$SA
isassertiveness.1b$i.sol
########### SUFFICIENCY ANALYSIS Non-Outcome ###############
### Conservative solution ###
# with row dominance
csnonassertiveness.1a <- minimize(ttNonAssertiveness, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csnonassertiveness.1a
csnonassertiveness.1a$PIchart
# without row dominance and all possible solution models
csnonassertiveness.1b <- minimize(ttNonAssertiveness, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csnonassertiveness.1b
csnonassertiveness.1b$PIchart
### Most Parsimonious Solution ###
# with row dominance
psnonassertiveness.1a <- minimize(ttNonAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psnonassertiveness.1a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.1a$PIchart
psnonassertiveness.1a$SA
psnonassertiveness.1a$PIs
# without row dominance
psnonassertiveness.1b <- minimize(ttNonAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psnonassertiveness.1b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.1b$PIchart
psnonassertiveness.1b$SA
psnonassertiveness.1b$PIs
### Intermediate Solution ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isnonassertiveness.1a <- minimize(ttNonAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.1a
isnonassertiveness.1a$SA
isnonassertiveness.1a$i.sol
# without row dominance
isnonassertiveness.1b <- minimize(ttNonAssertiveness, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.1b
isnonassertiveness.1b$SA
isnonassertiveness.1b$i.sol
###Enhanced Standard analysis in order to detect untainable assumptions
SAmpoutcome <- psassertiveness.1a$SA$M1
ECSAisoutcome <- isassertiveness.1a$i.sol$C1P1$EC
DCSAisoutcome <- isassertiveness.1a$i.sol$C1P1$DC
SAmpoutnoncome <- psnonassertiveness.1a$SA$M1
ECSAisnonoutcome <- isnonassertiveness.1a$i.sol$C1P1$EC
DCSAisnonoutcome <- isnonassertiveness.1a$i.sol$C1P1$DC
intersect(rownames(SAmpoutcome), rownames(SAmpoutnoncome))
intersect(rownames(ECSAisoutcome), rownames(ECSAisnonoutcome))
### Plot intermediate solution
term1 <- fuzzyand(QCAcongress$nothreat, QCAcongress$divgov)
term2 <- fuzzyand(QCAcongress$nothreat, QCAcongress$casualties, QCAcongress$discontent)
solutionassertiveness <- pmax(term1, term2)
XYplot(solutionassertiveness, QCAcongress$assertiveness, QCAcongress, relation = "sufficiency", mguides = TRUE, jitter = TRUE,xlab = "overall solution", ylab = "assertiveness", cex = 0.6)
term3 <- fuzzyand(1 - QCAcongress$nothreat, 1- QCAcongress$discontent)
term4 <- fuzzyand(1 - QCAcongress$nothreat, 1 - QCAcongress$divgov)
solutionnonassertiveness <- pmax(term3, term4)
XYplot(solutionnonassertiveness, QCAcongress$X.assertiveness, QCAcongress, relation = "suf", mguides = TRUE, jitter = TRUE,xlab = "overall solution", ylab = "non-assertiveness", cex = 0.6)
############# ROBUSTNESS CHECK ##############
##### Standard analysis with alternative calibration for casualties (casualties2)
#### checking for single necessary conditions for outcome assertiveness
### pof with conditions present / absent
condsAlt1 <- subset(QCAcongress, select = c("discontent", "casualties2", "divgov", "nothreat"))
pof(condsAlt1, assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt1, assertiveness, QCAcongress, relation = "nec")
### checking for single necessary conditions for non-outcome non-assertiveness (X.assertiveness)
### pof with conditions present / absent
pof(condsAlt1, X.assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt1, X.assertiveness, QCAcongress, relation = "nec")
### suffiency analysis ###
### truth table construction for outcome assertiveness
## create basic truth table to display all cases; incl.cut is set at 0.8
ttAssertivenessAlt1 <- truthTable(data=QCAcongress, outcome = "assertiveness", conditions = "discontent, casualties2, divgov, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttAssertivenessAlt1
### truth table construction for outcome nonassertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttNonAssertivenessAlt1 <- truthTable(data=QCAcongress, outcome = "X.assertiveness", conditions = "discontent, casualties2, divgov, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttNonAssertivenessAlt1
### Conservative solution, outcome: assertiveness ###
# with row dominance
csassertiveness.2a <- minimize(ttAssertivenessAlt1, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csassertiveness.2a
csassertiveness.2a$PIchart
# without row dominance and all possible solution models
csassertiveness.2b <- minimize(ttAssertivenessAlt1, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csassertiveness.2b
csassertiveness.2b$PIchart
### Most Parsimonious Solution, outcome: assertiveness ###
# with row dominance
psassertiveness.2a <- minimize(ttAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psassertiveness.2a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.2a$PIchart
psassertiveness.2a$SA
psassertiveness.2a$PIs
# without row dominance
psassertiveness.2b <- minimize(ttAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psassertiveness.2b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.2b$PIchart
psassertiveness.2b$SA
psassertiveness.2b$PIs
### Intermediate Solution, outcome: assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isassertiveness.2a <- minimize(ttAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.2a
isassertiveness.2a$SA
isassertiveness.2a$i.sol
# without row dominance
isassertiveness.2b <- minimize(ttAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.2b
isassertiveness.2b$SA
isassertiveness.2b$i.sol
### Conservative solution, outcome: non-assertiveness ###
# with row dominance
csnonassertiveness.2a <- minimize(ttNonAssertivenessAlt1, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csnonassertiveness.2a
csnonassertiveness.2a$PIchart
# without row dominance and all possible solution models
csnonassertiveness.2b <- minimize(ttNonAssertivenessAlt1, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csnonassertiveness.2b
csnonassertiveness.2b$PIchart
### Most Parsimonious Solution, outcome: non-assertiveness ###
# with row dominance
psnonassertiveness.2a <- minimize(ttNonAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psnonassertiveness.2a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.2a$PIchart
psnonassertiveness.2a$SA
psnonassertiveness.2a$PIs
# without row dominance
psnonassertiveness.2b <- minimize(ttNonAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psnonassertiveness.2b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.2b$PIchart
psnonassertiveness.2b$SA
psnonassertiveness.2b$PIs
### Intermediate Solution, outcome: non-assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isnonassertiveness.2a <- minimize(ttNonAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.2a
isnonassertiveness.2a$SA
isnonassertiveness.2a$i.sol
# without row dominance
isnonassertiveness.2b <- minimize(ttNonAssertivenessAlt1, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.2b
isnonassertiveness.2b$SA
isnonassertiveness.2b$i.sol
##### Standard analysis with alternative calibration for divgov (divgov2)
#### checking for single necessary conditions for outcome assertiveness
# pof with conditions present / absent
condsAlt2 <- subset(QCAcongress, select = c("discontent", "casualties", "divgov2", "nothreat"))
pof(condsAlt2, assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt2, assertiveness, QCAcongress, relation = "nec")
#### checking for single necessary conditions for non-outcome non-assertiveness (X.assertiveness)
# with conditions present / absent
pof(condsAlt2, X.assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt2, X.assertiveness, QCAcongress, relation = "nec")
### sufficiency analysis ###
## truth table construction for outcome assertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttAssertivenessAlt2 <- truthTable(data=QCAcongress, outcome = "assertiveness", conditions = "discontent, casualties, divgov2, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttAssertivenessAlt2
## truth table construction for outcome nonassertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttNonAssertivenessAlt2 <- truthTable(data=QCAcongress, outcome = "X.assertiveness", conditions = "discontent, casualties, divgov2, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttNonAssertivenessAlt2
### Conservative solution, outcome: assertiveness ###
# with row dominance
csassertiveness.3a <- minimize(ttAssertivenessAlt2, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csassertiveness.3a
csassertiveness.3a$PIchart
# without row dominance and all possible solution models
csassertiveness.3b <- minimize(ttAssertivenessAlt2, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csassertiveness.3b
csassertiveness.3b$PIchart
### Most Parsimonious Solution, outcome: assertiveness ###
# with row dominance
psassertiveness.3a <- minimize(ttAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psassertiveness.3a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.3a$PIchart
psassertiveness.3a$SA
psassertiveness.3a$PIs
# without row dominance
psassertiveness.3b <- minimize(ttAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psassertiveness.3b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.3b$PIchart
psassertiveness.3b$SA
psassertiveness.3b$PIs
### Intermediate Solution, outcome: assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isassertiveness.3a <- minimize(ttAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.3a
isassertiveness.3a$SA
isassertiveness.3a$i.sol
# without row dominance
isassertiveness.3b <- minimize(ttAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.3b
isassertiveness.3b$SA
isassertiveness.3b$i.sol
### Conservative solution, outcome: non-assertiveness ###
# with row dominance
csnonassertiveness.3a <- minimize(ttNonAssertivenessAlt2, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csnonassertiveness.3a
csnonassertiveness.3a$PIchart
# without row dominance and all possible solution models
csnonassertiveness.3b <- minimize(ttNonAssertivenessAlt2, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csnonassertiveness.3b
csnonassertiveness.3b$PIchart
### Most Parsimonious Solution, outcome: non-assertiveness ###
# with row dominance
psnonassertiveness.3a <- minimize(ttNonAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psnonassertiveness.3a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.3a$PIchart
psnonassertiveness.3a$SA
psnonassertiveness.3a$PIs
# without row dominance
psnonassertiveness.3b <- minimize(ttNonAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psnonassertiveness.3b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.3b$PIchart
psnonassertiveness.3b$SA
psnonassertiveness.3b$PIs
### Intermediate Solution, outcome: non-assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isnonassertiveness.3a <- minimize(ttNonAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.3a
isnonassertiveness.3a$SA
isnonassertiveness.3a$i.sol
# without row dominance
isnonassertiveness.3b <- minimize(ttNonAssertivenessAlt2, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.3b
isnonassertiveness.3b$SA
isnonassertiveness.3b$i.sol
##### Standard analysis with alternative calibration for casualties (casualties2) and divided government (divgov2)
#### checking for single necessary conditions for outcome assertiveness
## pof with conditions present / absent
condsAlt3 <- subset(QCAcongress, select = c("discontent", "casualties2", "divgov2", "nothreat"))
pof(condsAlt3, assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt3, assertiveness, QCAcongress, relation = "nec")
#### checking for single necessary conditions for non-outcome non-assertiveness (X.assertiveness)
# with conditions present / absent
pof(condsAlt3, X.assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt3, X.assertiveness, QCAcongress, relation = "nec")
## truth table construction for outcome assertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttAssertivenessAlt3 <- truthTable(data=QCAcongress, outcome = "assertiveness", conditions = "discontent, casualties2, divgov2, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttAssertivenessAlt3
## truth table construction for outcome nonassertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttNonAssertivenessAlt3 <- truthTable(data=QCAcongress, outcome = "X.assertiveness", conditions = "discontent, casualties2, divgov2, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttNonAssertivenessAlt3
### Conservative solution, outcome: assertiveness ###
# with row dominance
csassertiveness.4a <- minimize(ttAssertivenessAlt3, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csassertiveness.4a
csassertiveness.4a$PIchart
# without row dominance and all possible solution models
csassertiveness.4b <- minimize(ttAssertivenessAlt3, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csassertiveness.4b
csassertiveness.4b$PIchart
### Most Parsimonious Solution, outcome: assertiveness ###
# with row dominance
psassertiveness.4a <- minimize(ttAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psassertiveness.4a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.4a$PIchart
psassertiveness.4a$SA
psassertiveness.4a$PIs
# without row dominance
psassertiveness.4b <- minimize(ttAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psassertiveness.4b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.4b$PIchart
psassertiveness.4b$SA
psassertiveness.4b$PIs
### Intermediate Solution, outcome: assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isassertiveness.4a <- minimize(ttAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.4a
isassertiveness.4a$SA
isassertiveness.4a$i.sol
# without row dominance
isassertiveness.4b <- minimize(ttAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.4b
isassertiveness.4b$SA
isassertiveness.4b$i.sol
### Conservative solution, outcome: non-assertiveness ###
# with row dominance
csnonassertiveness.4a <- minimize(ttNonAssertivenessAlt3, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csnonassertiveness.4a
csnonassertiveness.4a$PIchart
# without row dominance and all possible solution models
csnonassertiveness.4b <- minimize(ttNonAssertivenessAlt3, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csnonassertiveness.4b
csnonassertiveness.4b$PIchart
### Most Parsimonious Solution, outcome: non-assertiveness ###
# with row dominance
psnonassertiveness.4a <- minimize(ttNonAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psnonassertiveness.4a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.4a$PIchart
psnonassertiveness.4a$SA
psnonassertiveness.4a$PIs
# without row dominance
psnonassertiveness.4b <- minimize(ttNonAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psnonassertiveness.4b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.4b$PIchart
psnonassertiveness.4b$SA
psnonassertiveness.4b$PIs
### Intermediate Solution, outcome: non-assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isnonassertiveness.4a <- minimize(ttNonAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.4a
isnonassertiveness.4a$SA
isnonassertiveness.4a$i.sol
# without row dominance
isnonassertiveness.4b <- minimize(ttNonAssertivenessAlt3, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.4b
isnonassertiveness.4b$SA
isnonassertiveness.4b$i.sol
##### Standard analysis with alternative calibration for casualties (casualties3)
#### checking for single necessary conditions for outcome assertiveness
## pof with conditions present / absent
condsAlt4 <- subset(QCAcongress, select = c("discontent", "casualties3", "divgov", "nothreat"))
pof(condsAlt4, assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt4, assertiveness, QCAcongress, relation = "nec")
# XY-plot suggests that casualties3 is a necessary but trivial condition for assertiveness
XYplot(QCAcongress$casualties3, QCAcongress$assertiveness, data = QCAcongress, jitter = TRUE, relation = "necessity")
#### checking for single necessary conditions for non-outcome non-assertiveness (X.assertiveness)
# with conditions present / absent
pof(condsAlt4, X.assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt4, X.assertiveness, QCAcongress, relation = "nec")
## truth table construction for outcome assertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttAssertivenessAlt4 <- truthTable(data=QCAcongress, outcome = "assertiveness", conditions = "discontent, casualties3, divgov, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttAssertivenessAlt4
## truth table construction for outcome non-assertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttNonAssertivenessAlt4 <- truthTable(data=QCAcongress, outcome = "X.assertiveness", conditions = "discontent, casualties3, divgov, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttNonAssertivenessAlt4
### Conservative solution, outcome: assertiveness ###
# with row dominance
csassertiveness.5a <- minimize(ttAssertivenessAlt4, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csassertiveness.5a
csassertiveness.5a$PIchart
# without row dominance and all possible solution models
csassertiveness.5b <- minimize(ttAssertivenessAlt4, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csassertiveness.5b
csassertiveness.5b$PIchart
### Most Parsimonious Solution, outcome: assertiveness ###
# with row dominance
psassertiveness.5a <- minimize(ttAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psassertiveness.5a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.5a$PIchart
psassertiveness.5a$SA
psassertiveness.5a$PIs
# without row dominance
psassertiveness.5b <- minimize(ttAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psassertiveness.5b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.5b$PIchart
psassertiveness.5b$SA
psassertiveness.5b$PIs
### Intermediate Solution, outcome: assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isassertiveness.5a <- minimize(ttAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.5a
isassertiveness.5a$SA
isassertiveness.5a$i.sol
# without row dominance
isassertiveness.5b <- minimize(ttAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.5b
isassertiveness.5b$SA
isassertiveness.5b$i.sol
### Conservative solution, outcome: non-assertiveness ###
# with row dominance
csnonassertiveness.5a <- minimize(ttNonAssertivenessAlt4, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csnonassertiveness.5a
csnonassertiveness.5a$PIchart
# without row dominance and all possible solution models
csnonassertiveness.5b <- minimize(ttNonAssertivenessAlt4, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csnonassertiveness.5b
csnonassertiveness.5b$PIchart
### Most Parsimonious Solution, outcome: non-assertiveness ###
# with row dominance
psnonassertiveness.5a <- minimize(ttNonAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psnonassertiveness.5a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.5a$PIchart
psnonassertiveness.5a$SA
psnonassertiveness.5a$PIs
# without row dominance
psnonassertiveness.5b <- minimize(ttNonAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psnonassertiveness.5b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.5b$PIchart
psnonassertiveness.5b$SA
psnonassertiveness.5b$PIs
### Intermediate Solution, outcome: non-assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isnonassertiveness.5a <- minimize(ttNonAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.5a
isnonassertiveness.5a$SA
isnonassertiveness.5a$i.sol
# without row dominance
isnonassertiveness.5b <- minimize(ttNonAssertivenessAlt4, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.5b
isnonassertiveness.5b$SA
isnonassertiveness.5b$i.sol
##### Standard analysis with alternative calibration for casualties (casualties3) and divgov (divgov2)
#### checking for single necessary conditions for outcome assertiveness
## pof with conditions present / absent
condsAlt5 <- subset(QCAcongress, select = c("discontent", "casualties3", "divgov2", "nothreat"))
pof(condsAlt5, assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt5, assertiveness, QCAcongress, relation = "nec")
# XY-plot suggests that casualties3 is a necessary but trivial condition for assertiveness
XYplot(QCAcongress$casualties3, QCAcongress$assertiveness, data = QCAcongress, jitter = TRUE, relation = "necessity")
#### checking for single necessary conditions for non-outcome non-assertiveness (X.assertiveness)
# with conditions present / absent
pof(condsAlt5, X.assertiveness, QCAcongress, relation = "nec")
pof(1-condsAlt5, X.assertiveness, QCAcongress, relation = "nec")
## truth table construction for outcome assertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttAssertivenessAlt5 <- truthTable(data=QCAcongress, outcome = "assertiveness", conditions = "discontent, casualties3, divgov2, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttAssertivenessAlt5
## truth table construction for outcome non-assertiveness
# create basic truth table to display all cases; incl.cut is set at 0.8
ttNonAssertivenessAlt5 <- truthTable(data=QCAcongress, outcome = "X.assertiveness", conditions = "discontent, casualties3, divgov2, nothreat", incl.cut=0.8, sort.by="incl, n", complete=TRUE, show.cases=TRUE)
ttNonAssertivenessAlt5
### Conservative solution, outcome: assertiveness ###
# with row dominance
csassertiveness.6a <- minimize(ttAssertivenessAlt5, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csassertiveness.6a
csassertiveness.6a$PIchart
# without row dominance and all possible solution models
csassertiveness.6b <- minimize(ttAssertivenessAlt5, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csassertiveness.6b
csassertiveness.6b$PIchart
### Most Parsimonious Solution, outcome: assertiveness ###
# with row dominance
psassertiveness.6a <- minimize(ttAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psassertiveness.6a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.6a$PIchart
psassertiveness.6a$SA
psassertiveness.6a$PIs
# without row dominance
psassertiveness.6b <- minimize(ttAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psassertiveness.6b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psassertiveness.6b$PIchart
psassertiveness.6b$SA
psassertiveness.6b$PIs
### Intermediate Solution, outcome: assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isassertiveness.6a <- minimize(ttAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.6a
isassertiveness.6a$SA
isassertiveness.6a$i.sol
# without row dominance
isassertiveness.6b <- minimize(ttAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "1,1,1,1", use.tilde = TRUE)
isassertiveness.6b
isassertiveness.6b$SA
isassertiveness.6b$i.sol
### Conservative solution, outcome: non-assertiveness ###
# with row dominance
csnonassertiveness.6a <- minimize(ttNonAssertivenessAlt5, details=TRUE, show.cases=TRUE, row.dom=TRUE, all.sol=FALSE, use.tilde=TRUE)
csnonassertiveness.6a
csnonassertiveness.6a$PIchart
# without row dominance and all possible solution models
csnonassertiveness.6b <- minimize(ttNonAssertivenessAlt5, details=TRUE, show.cases=TRUE, row.dom=FALSE, all.sol=TRUE, use.tilde=TRUE)
csnonassertiveness.6b
csnonassertiveness.6b$PIchart
### Most Parsimonious Solution, outcome: non-assertiveness ###
# with row dominance
psnonassertiveness.6a <- minimize(ttNonAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, use.tilde = TRUE)
psnonassertiveness.6a
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.6a$PIchart
psnonassertiveness.6a$SA
psnonassertiveness.6a$PIs
# without row dominance
psnonassertiveness.6b <- minimize(ttNonAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, use.tilde = TRUE)
psnonassertiveness.6b
# display simplifying assumptions, prime implicants and PIchart behind the most parsimonious solution
psnonassertiveness.6b$PIchart
psnonassertiveness.6b$SA
psnonassertiveness.6b$PIs
### Intermediate Solution, outcome: non-assertiveness ###
# Standard analysis for the intermediate solution; based on theoretical expectations. Directions are inserted in the same rank order as in the construction of the truth table
isnonassertiveness.6a <- minimize(ttNonAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = TRUE, all.sol = FALSE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.6a
isnonassertiveness.6a$SA
isnonassertiveness.6a$i.sol
# without row dominance
isnonassertiveness.6b <- minimize(ttNonAssertivenessAlt5, include = "?", details = TRUE, show.cases = TRUE, row.dom = FALSE, all.sol = TRUE, dir.exp = "0,0,0,0", use.tilde = TRUE)
isnonassertiveness.6b
isnonassertiveness.6b$SA
isnonassertiveness.6b$i.sol