coherence {cna} R Documentation

## Calculate the coherence of complex solution formulas

### Description

Calculates the coherence measure of complex solution formulas (csf).

### Usage

```coherence(x, ...)
## Default S3 method:
coherence(x, ct, type, ..., tt)
```

### Arguments

 `x` Character vector specifying an asf or csf. `ct` Data frame or `configTable`. `type` Character vector specifying the type of `x`: `"auto"` (automatic detection; default), `"cs"` (crisp-set), `"mv"` (multi-value), or `"fs"` (fuzzy-set). `...` Arguments passed to methods. `tt` Argument `tt` is deprecated in `coherence()`; use `x` instead.

### Details

Coherence is a measure for model fit that is custom-built for complex solution formulas (csf). It measures the degree to which the atomic solution formulas (asf) combined in a csf cohere, i.e. are instantiated together in `x` rather than independently of one another. More concretely, coherence is the ratio of the number of cases satisfying all asf contained in a csf to the number of cases satisfying at least one asf in the csf. For example, if the csf contains the three asf asf1, asf2, asf3, coherence amounts to | asf1 * asf2 * asf3 | / | asf1 + asf2 + asf3 |, where |...| expresses the cardinality of the set of cases in `x` instantiating the corresponding expression. For asf, `coherence` returns 1. For boolean conditions (see `condition`), the coherence measure is not defined and `coherence` hence returns `NA`. For multiple csf that do not have a factor in common, `coherence` returns the minimum of the separate coherence scores.

### Value

Numeric vector of coherence values to which `cond` is appended as a "names" attribute. If `cond` is a csf "asf1*asf2*asf3" composed of asf that do not have a factor in common, the csf is rendered with commas in the "names" attribute: "asf1, asf2, asf3".

`cna`, `condition`, `selectCases`, `allCombs`, `full.ct`, `condTbl`

### Examples

```# Perfect coherence.
dat1 <- selectCases("(A*b <-> C)*(C + D <-> E)")
coherence("(A*b <-> C)*(C + D <-> E)", dat1)
csf(cna(dat1, details = "coherence"))

# Non-perfect coherence.
dat2 <- selectCases("(a*B <-> C)*(C + D <-> E)*(F*g <-> H)")
dat3 <- rbind(ct2df(dat2), c(0,1,0,1,1,1,0,1))
coherence("(a*B <-> C)*(C + D <-> E)*(F*g <-> H)", dat3)
csf(cna(dat3, con = .88, details = "coherence"))
```

[Package cna version 3.2.0 Index]