Skewness in multi-value QCA

20 views
Skip to first unread message

Alexander Strelkov

unread,
May 24, 2026, 6:01:10 PMMay 24
to QCA with R
Dear members of the Google group, good evening
    I am running a small mvQCA project and need your advice.
Trying to check skewness for the calibrated dataframe and receiving this message: " The dataframe/set you have provided contains uncalibrated values (outside the range 0-1) or non-numeric values. Please use a subset of your dataframe or provide a dataframe or set that contains only calibrated data. "
Attaching a screenshot below,
Skew.check function works perfectly for the variables which a crisp and have two values, but is not applicable for other variables with 3 values (0-1-2). Apparently there is a function mv2cs but can't locate it either.

Any advice on how to run skewness check (and if it even makes sense conceptually?). 
Much obliged, 
Alexander
calibrated dataframe.png

Breno Marisguia

unread,
May 25, 2026, 5:42:10 PMMay 25
to QCA with R

Hey Alexander!

SetMethods::skew.check() only works for fuzzy and crisp sets

On a different note, are the multi-value calibrations REALLY relevant, theoretically and empirically? I checked your data, and assuming your outcome is WIN and you use all other conditions, you’ve got 1284 logical remainders to work through. I couldn’t even use `QCA::findRows()` or run a dry parsimonious solution without QCA exploding


```
Error in minimize(input = tt, include = "?", details = TRUE, show.cases = TRUE) :
 'R_Realloc' could not re-allocate memory (0 bytes)
```

Maybe consider using crisp calibration?

Breno

Adrian Dușa

unread,
May 27, 2026, 1:19:27 AMMay 27
to Breno Marisguia, QCA with R, Alexander Strelkov
Hi Bruno,

That error is odd, package QCA should be more than capable of dealing with 8 conditions, be them multi-value (I tested the minimization algorithm up to 100 conditions and it still works).
Could you please send a reproducible example?

Best,
Adrian


--
You received this message because you are subscribed to the Google Groups "QCA with R" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qcawithr+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/qcawithr/197d571f-5673-487d-9c4f-ac7a850fc8f2n%40googlegroups.com.

Breno Marisguia

unread,
May 27, 2026, 10:49:07 AMMay 27
to QCA with R
Sure! Here you go: https://qcatest.netlify.app/

Adrian Dușa

unread,
May 28, 2026, 4:45:07 AMMay 28
to Breno Marisguia, QCA with R
Thanks, Bruno.
This works in MacOS with the latest CRAN version, but it crashes indeed on Windows.

However, the bug seems to have been already resolved in the latest dev version 3.25.1 (pushed about a week ago), so please do:

install.packages("QCA", repos = "https://dusadrian.r-universe.dev")

And a solution will be computed.

Best,
Adrian

Ingo Rohlfing

unread,
May 28, 2026, 5:20:36 AMMay 28
to QCA with R
On the initial question of checking skewness for multivalue sets. This should be relatively to do manually. Maybe there is a simpler way, but this does the job of counting the frequency of values by set and the percentage of this value by set.

library(dplyr)
library(tidyr)
set.seed(1108)
mv_data <- data.frame(A = rbinom(n = 10, size = 2, prob = 0.5),
                      B = rbinom(n = 10, size = 2, prob = 0.5),
                      Y = rbinom(n = 10, size = 2, prob = 0.5))
mv_data

mv_data |>
  tidyr::pivot_longer(cols = c(A, B, Y), names_to = "set", values_to = "value") |>
  count(set, value) |>
  group_by(set) |>
  mutate(percent = n / sum(n)) |>
  ungroup()

Best

Ingo

Adrian Dușa

unread,
May 28, 2026, 8:46:58 AMMay 28
to Ingo Rohlfing, QCA with R
Nice.
I wonder though, what could be wrong with:

lapply(mv_data, function(x) proportions(table(x)))

It is a way shorter method to get those percentages, in base R, without the need of those horrendous tideverse dependencies...

Best,
Adrian


--
You received this message because you are subscribed to the Google Groups "QCA with R" group.
To unsubscribe from this group and stop receiving emails from it, send an email to qcawithr+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages