ui.nonpar: Function for the determination of an inconclusive interval...

Description Usage Arguments Details Value References Examples

View source: R/ui.nonpar.R

Description

This function uses a non-parametric approach to determine an interval around the intersection of the two distributions of individuals without (0) and with (1) the targeted condition. The Uncertain Interval is generally defined as an interval below and above the intersection, where the densities of the two distributions of patients with and without the targeted condition are about equal. These test scores are considered as inconclusive for the decision for or against the targeted condition. The interval is restricted both by a maximum UI.Se of the test scores within the uncertain interval (UI.Se) and by a maximum specificity of the test scores within the uncertain interval (UI.Sp).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ui.nonpar(
  ref,
  test,
  UI.Se = 0.55,
  UI.Sp = 0.55,
  intersection = NULL,
  return.first = T,
  select = c("nearest", "limited"),
  direction = c("auto", "<", ">")
)

Arguments

ref

The reference standard. A column in a data frame or a vector indicating the classification by the reference test. The reference standard must be coded either as 0 (absence of the condition) or 1 (presence of the condition)

test

The index test or test under evaluation. A column in a dataset or vector indicating the test results in a continuous scale.

UI.Se

(default = .55). The sensitivity of the test scores within the uncertain interval is either limited to this value or is the nearest to this value. A value <= .5 is useless.

UI.Sp

(default = .55). The specificity of the test scores within the uncertain interval is either limited to this value or is the nearest to this value. A value <= .5 is useless.

intersection

(default = NULL) When NULL, the intersection is calculated with get.intersection, which uses the kernel density method to obtain the intersection. When another value is assigned to this parameter, this value is used instead.

return.first

(default = TRUE) Return only the widest possible interval, given the restrictions. When FALSE all calculated intervals with their sensitivity and specificity are returned. NOTE: This function does not always find a suitable interval and can return a vector of NULL values.

select

(default = 'nearest') If 'nearest', sensitivity and specificity of the uncertain interval are nearest UI.Se and UI.Sp respectively. When 'limited' the solutions have an uncertain interval with a sensitivity and specificity limited by UI.Se and UI.Sp respectively.

direction

Default = 'auto'. Direction when comparing controls with cases. Often, the controls have lower values than the cases (direction = '<'). When 'auto', mean comparison is used to determine the direction.

Details

This function can be used for a test without a defined distribution of the continuous test scores. The Uncertain Interval is generally defined as an interval below and above the intersection, where the densities of the two distributions of patients with and without the targeted condition are about equal. This function uses for the definition of the uncertain interval a sensitivity and specificity of the uncertain test scores below a desired value (default .55).

This essentially non-parametric function finds the best possible solution for a sample. This function can be used for test with continuous scores or for test with about twenty or more ordered test scores. The Uncertain Interval is defined as an interval below and above the intersection, with a sensitivity and specificity nearby or below a desired value (default .55).

In its core, the ui.nonpar function is non-parametric, but it uses the gaussian kernel for estimating the intersection between the two distributions. Always check whether your results are within reason. If the results are unsatisfactory, first check on the intersection. The density function allows for other approximations than gaussian. Another estimate can be obtained by using a more suitable kernel in the density function. The parameter intersection can be used to assign the new estimate to the uncertain.interval method.

Furthermore, only a single intersection is assumed (or a second intersection where the overlap is negligible). It should be noted that in most cases, a test with more than one intersection with non-negligible overlap is problematic and difficult to apply.

The Uncertain interval method is developed for continuous distributions, although it can be applied to ordered tests with distinguishable distributions. When a test is used with less than 20 discernible values, a warning is issued. The method may work satisfactorily, but results should always be checked carefully.

In general, when estimating decision thresholds, a sample of sufficient size should be used. It is recommended to use at least a sample of 100 patients with the targeted condition, and a 'healthy' sample (without the targeted condition) of the same size or larger.

The Uncertain interval method is not always capable to deliver results, especially when select == 'limited'. Clearly, when there is no overlap between the two distributions, there cannot be an uncertain interval. A very small interval of overlap can also limit the possibilities to find a solution. When there is no solution found, a vector of NA values is returned.

Value

A data.frame of

cp.l

Lower bound of the Uncertain interval.

cp.h

Upper bound of the Uncertain interval.

FN

Count of false negatives within the Uncertain interval.

TP

Count of true positives within the Uncertain interval.

TN

Count of true negatives within the Uncertain interval.

FP

Count of false positives within the Uncertain interval.

UI.Se

Sensitivity of the test scores within the Uncertain interval.

UI.Sp

Specificity of the test scores within the Uncertain interval.

Only a single row is returned when parameter return.first = TRUE (default).

References

Landsheer, J. A. (2016). Interval of Uncertainty: An Alternative Approach for the Determination of Decision Thresholds, with an Illustrative Application for the Prediction of Prostate Cancer. PloS One, 11(11), e0166007.

Landsheer, J. A. (2018). The Clinical Relevance of Methods for Handling Inconclusive Medical Test Results: Quantification of Uncertainty in Medical Decision-Making and Screening. Diagnostics, 8(2), 32. https://doi.org/10.3390/diagnostics8020032

Examples

1
2
3
4
5
6
7
8
9
# A simple test model
set.seed(1)
ref=c(rep(0,500), rep(1,500))
test=c(rnorm(500,0,1), rnorm(500,1,1))
ui.nonpar(ref, test, select='limited')

ref = c(rep(0,20), rep(1,20))
test= c(rnorm(20), rnorm(20, mean=1))
ui.nonpar(ref, test)

UncertainInterval documentation built on March 3, 2021, 1:10 a.m.