makeFuzzy {cna} | R Documentation |
Fuzzifying crisp-set data
Description
The makeFuzzy
function fuzzifies crisp-set data to a customizable degree.
Usage
makeFuzzy(x, fuzzvalues = c(0, 0.05, 0.1), ...)
Arguments
x |
Data frame, matrix, or |
fuzzvalues |
Numeric vector of values from the interval [0,1]. |
... |
Additional arguments are passed to |
Details
In combination with allCombs
, full.ct
and selectCases
, makeFuzzy
is useful for simulating fuzzy-set data, which are needed for inverse search trials benchmarking the output of cna
. makeFuzzy
transforms a data frame or configTable
x
consisting of crisp-set (binary) factors into a fuzzy-set configTable
by adding values selected at random from the argument fuzzvalues
to the 0's and subtracting them from the 1's in x
. fuzzvalues
is a numeric vector of values from the interval [0,1].
selectCases
can be used before and selectCases1
after the fuzzification to select those configurations that are compatible with a given data generating causal structure (see examples below).
Value
A configTable
of type "fs".
See Also
selectCases
, allCombs
, full.ct
, configTable
, cna
, ct2df
, condition
Examples
# Fuzzify a crisp-set (binary) 6x3 matrix with default fuzzvalues.
X <- matrix(sample(0:1, 18, replace = TRUE), 6)
makeFuzzy(X)
# ... and with customized fuzzvalues.
makeFuzzy(X, fuzzvalues = 0:5/10)
makeFuzzy(X, fuzzvalues = seq(0, 0.45, 0.01))
# First, generate crisp-set data comprising all configurations of 5 binary factors that
# are compatible with the causal chain (A*b + a*B <-> C)*(C*d + c*D <-> E) and,
# second, fuzzify those crisp-set data.
dat1 <- full.ct(5)
dat2 <- selectCases("(A*b + a*B <-> C)*(C*d + c*D <-> E)", dat1)
(dat3 <- makeFuzzy(dat2, fuzzvalues = seq(0, 0.45, 0.01)))
condition("(A*b + a*B <-> C)*(C*d + c*D <-> E)", dat3)
# Inverse search for the data generating causal structure A*b + a*B + C*D <-> E from
# fuzzy-set data with non-perfect consistency and coverage scores.
dat1 <- full.ct(5)
set.seed(55)
dat2 <- makeFuzzy(dat1, fuzzvalues = 0:4/10)
dat3 <- selectCases1("A*b + a*B + C*D <-> E", con = .8, cov = .8, dat2)
cna(dat3, outcome = "E", con = .8, cov = .8)