# makeFuzzy: Fuzzifying crisp-set data In cna: Causal Modeling with Coincidence Analysis

## Description

The `makeFuzzy` function fuzzifies crisp-set data to a customizable degree.

## Usage

 `1` ```makeFuzzy(x, fuzzvalues = c(0, 0.05, 0.1), ...) ```

## Arguments

 `x` Data frame, matrix, or `configTable` featuring crisp-set (binary) factors with values 1 and 0 only. `fuzzvalues` Numeric vector of values from the interval [0,1]. `...` Additional arguments are passed to `configTable`.

## 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".

`selectCases`, `allCombs`, `full.ct`, `configTable`, `cna`, `ct2df`, `condition`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23``` ```# 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) ```