Description Usage Arguments Details Value Relevant Level Multiclass Implementation Author(s) References See Also Examples

These functions calculate the `spec()`

(specificity) of a measurement system
compared to a reference result (the "truth" or gold standard).
Highly related functions are `sens()`

, `ppv()`

, and `npv()`

.

1 2 3 4 5 6 7 8 9 10 |

`data` |
Either a |

`...` |
Not currently used. |

`truth` |
The column identifier for the true class results
(that is a |

`estimate` |
The column identifier for the predicted class
results (that is also |

`estimator` |
One of: |

`na_rm` |
A |

The specificity measures the proportion of negatives that are correctly identified as negatives.

When the denominator of the calculation is `0`

, specificity is undefined.
This happens when both `# true_negative = 0`

and `# false_positive = 0`

are true, which mean that there were no true negatives. When computing binary
specificity, a `NA`

value will be returned with a warning. When computing
multiclass specificity, the individual `NA`

values will be removed, and the
computation will procede, with a warning.

A `tibble`

with columns `.metric`

, `.estimator`

,
and `.estimate`

and 1 row of values.

For grouped data frames, the number of rows returned will be the same as the number of groups.

For `spec_vec()`

, a single `numeric`

value (or `NA`

).

There is no common convention on which factor level should
automatically be considered the "event" or "positive" result.
In `yardstick`

, the default is to use the *first* level. To
change this, a global option called `yardstick.event_first`

is
set to `TRUE`

when the package is loaded. This can be changed
to `FALSE`

if the *last* level of the factor is considered the
level of interest by running: `options(yardstick.event_first = FALSE)`

.
For multiclass extensions involving one-vs-all
comparisons (such as macro averaging), this option is ignored and
the "one" level is always the relevant result.

Macro, micro, and macro-weighted averaging is available for this metric.
The default is to select macro averaging if a `truth`

factor with more
than 2 levels is provided. Otherwise, a standard binary calculation is done.
See `vignette("multiclass", "yardstick")`

for more information.

Suppose a 2x2 table with notation:

Reference | ||

Predicted | Positive | Negative |

Positive | A | B |

Negative | C | D |

The formulas used here are:

*Sensitivity = A/(A+C)*

*Specificity = D/(B+D)*

*Prevalence = (A+C)/(A+B+C+D)*

*PPV = (Sensitivity * Prevalence) / ((Sensitivity * Prevalence) + ((1-Specificity) * (1-Prevalence)))*

*NPV = (Specificity * (1-Prevalence)) / (((1-Sensitivity) * Prevalence) + ((Specificity) * (1-Prevalence)))*

See the references for discussions of the statistics.

Max Kuhn

Altman, D.G., Bland, J.M. (1994) “Diagnostic tests 1:
sensitivity and specificity,” *British Medical Journal*,
vol 308, 1552.

Other class metrics:
`accuracy()`

,
`bal_accuracy()`

,
`detection_prevalence()`

,
`f_meas()`

,
`j_index()`

,
`kap()`

,
`mcc()`

,
`npv()`

,
`ppv()`

,
`precision()`

,
`recall()`

,
`sens()`

Other sensitivity metrics:
`npv()`

,
`ppv()`

,
`sens()`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ```
# Two class
data("two_class_example")
spec(two_class_example, truth, predicted)
# Multiclass
library(dplyr)
data(hpc_cv)
hpc_cv %>%
filter(Resample == "Fold01") %>%
spec(obs, pred)
# Groups are respected
hpc_cv %>%
group_by(Resample) %>%
spec(obs, pred)
# Weighted macro averaging
hpc_cv %>%
group_by(Resample) %>%
spec(obs, pred, estimator = "macro_weighted")
# Vector version
spec_vec(two_class_example$truth, two_class_example$predicted)
# Making Class2 the "relevant" level
options(yardstick.event_first = FALSE)
spec_vec(two_class_example$truth, two_class_example$predicted)
options(yardstick.event_first = TRUE)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.