`FitCbmRoc.Rd`

Fit the CBM-predicted ROC curve for specified modality and reader

`FitCbmRoc(dataset, trt = 1, rdr = 1)`

- dataset
The dataset containing the data

- trt
The desired modality, default is 1

- rdr
The desired reader, default is 1

A list with the following elements:

- mu
The mean of the visible diseased distribution (the non-diseased) has zero mean

- alpha
The proportion of diseased cases where the disease is visible

- zetas
The cutoffs, zetas or thresholds

- AUC
The AUC of the fitted ROC curve

- StdAUC
The standard deviation of AUC

- NLLIni
The initial value of negative LL

- NLLFin
The final value of negative LL

- ChisqrFitStats
The chisquare goodness of fit results

- covMat
The covariance matrix of the parameters

- fittedPlot
A ggplot2 object containing the fitted operating characteristic along with the empirical operating points. Use

`print()`

to display the object

In CBM ratings from diseased cases are sampled from a mixture distribution
with two components: (1) distributed normal with mean \(mu\) and unit
variance with integrated area \(alpha\), and (2) from a unit-normal
distribution with integrated area \(1-alpha\). Ratings for non-diseased
cases are sampled from a unit-normal distribution. The
`ChisqrFitStats`

consists of a list containing the chi-square value,
the p-value and the degrees of freedom.

This algorithm is very robust, especially compared to the binormal model.

Dorfman DD, Berbaum KS (2000) A contaminated binormal model for ROC data: Part II. A formal model, Acad Radiol, 7:6, 427--437.

```
# \donttest{
## CPU time 8.7 sec on Ubuntu (#13)
## Test with included ROC data
retFit <- FitCbmRoc(dataset02);## print(retFit$fittedPlot)
## Test with included degenerate ROC data (yes! CBM can fit such data)
retFit <- FitCbmRoc(datasetDegenerate);## print(retFit$fittedPlot)
## Test with single interior point data
fp <- c(rep(1,7), rep(2, 3))
tp <- c(rep(1,5), rep(2, 5))
dataset <- Df2RJafrocDataset(fp, tp)
retFit <- FitCbmRoc(dataset);## print(retFit$fittedPlot)
## Test with two interior data points
fp <- c(rep(1,7), rep(2, 5), rep(3, 3))
tp <- c(rep(1,3), rep(2, 5), rep(3, 7))
dataset <- Df2RJafrocDataset(fp, tp)
retFit <- FitCbmRoc(dataset);
## print(retFit$fittedPlot)
## Test with included ROC data (some bins have zero counts)
retFit <- FitCbmRoc(dataset02, 2, 1);## print(retFit$fittedPlot)
## Test with TONY data for which chisqr can be calculated
ds <- DfFroc2Roc(dataset01)
retFit <- FitCbmRoc(ds, 2, 3);## print(retFit$fittedPlot)
retFit$ChisqrFitStats
#> $chisq
#> [1] 1.449787
#>
#> $pVal
#> [1] 0.4843762
#>
#> $df
#> [1] 2
#>
# }
```