Animated plots illustrating fuzzy-set calibration in Qualitative Comparative Analysis.
The code for producing the plots in this file is included in this repository.
Direct calibration of fuzzy sets is useful when the base variable is continuous. I use a hypothetical variable A
here for illustrating some elements of direct calibration.
The variables are calibrated into fuzzy-set membership values using the default settings of the calibrate()
function of the QCA
package. They correspond to how Ragin introduces direct calibration in chapters 4 and 5 in his 2008 book (Ragin, Charles C. (2008): Redesigning Social Inquiry. Chicago: Chicago University Press). In the plots below, the horizontal lines represent the three membership values and, thus, classes of cases.
- top, purple line: full membership / inclusion (0.95 for calibration reasons, see
idm
option incalibrate()
function); - middle, blue line: crossover point (0.5)
- bottom, orange line: full non-membership / exclusion (0.05 for calibration reasons).
Each horizontal line crosses a vertical line of the same color (intersections with lines of a different color don't matter). The vertical lines are anchored at the hypothetical variable values used for calibrating the variable:
- right, purple line: full membership (70);
- middle, blue line: crossover point: (50);
- left, orange line: full non-membership (25)
The shape of the curve shows that direct calibration translates variable values into set membership values using a logistic link function by default.
What happens when one decides to fix a given anchor at a higher or lower level than the original value? The intuition might be that moving one anchor changes the set membership values of all cases. However, this is only correct for the crossover anchor.
The next plot shows that the recalibration of the upper anchor only affects the membership values of the members of A
, but not of the non-members (for convenience, I use A
for the variable and the set). The crossover anchor shields the non-members from a recalibrated upper anchor. This implication of shifting the upper anchor directly follows from how direct calibration works, which is described in detail in chapters 4 and 5 of Ragin's 2008 book.
The gray line in this and the next two plots marks the originally chosen anchor.
The reverse then holds when one recalibrates the lower anchor. Now the crossover anchor shields the members of A
from a recalibrated lower anchor.
This implies that the membership values of all cases are affected when one moves the shield, that is the crossover anchor is recalibrated.
- base (R Core Team 2018)
- dplyr (Wickham et al. 2019)
- gganimate (Pedersen and Robinson 2019)
- ggplot2 (Wickham 2016)
- grateful (Rodriguez-Sanchez 2018)
- QCA (Dusa 2019)
- tibble (Müller and Wickham 2019)
- tidyr (Wickham and Henry 2018)
Dusa, Adrian. 2019. QCA with R. A Comprehensive Resource. Cham, Switzerland: Springer International Publishing.
Müller, Kirill, and Hadley Wickham. 2019. tibble: Simple Data Frames. https://CRAN.R-project.org/package=tibble.
Pedersen, Thomas Lin, and David Robinson. 2019. gganimate: A Grammar of Animated Graphics. https://CRAN.R-project.org/package=gganimate.
R Core Team. 2018. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.
Rodriguez-Sanchez, Francisco. 2018. grateful: Facilitate Citation of R Packages. https://github.com/Pakillo/grateful.
Wickham, Hadley. 2016. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. http://ggplot2.org.
Wickham, Hadley, and Lionel Henry. 2018. tidyr: Easily Tidy Data with ’Spread()’ and ’Gather()’ Functions. https://CRAN.R-project.org/package=tidyr.
Wickham, Hadley, Romain François, Lionel Henry, and Kirill Müller. 2019. dplyr: A Grammar of Data Manipulation. https://CRAN.R-project.org/package=dplyr.